FYI: TS client script

From: Alex K. Angelopoulos [MVP] (aka-at-mvps-dot-org)
Date: 08/06/04

  • Next message: Vera Noest [MVP]: "Re: Windows 200 Server and XP Licenses"
    Date: Fri, 6 Aug 2004 17:08:40 -0500
    
    

    [crossposted to micwin2000.termserv.clients, windows.terminal_services, and
    .windowsnt.terminalserver.client]
    [Followup set to windows.terminal_services]

    I've attached (and embedded below for the attachment-challenged) a WSH
    script for connecting to terminal servers; it just offers alternate behavior
    from the mstsc client. Note that due to security restrictions it can not
    configure any of the SecuredSettings values such as StartProgram and
    WorkDir.

    I'm working on an alternate version that will dynamically create an HTA and
    use it for the connection; this should allow almost total control over
    client parameters.

    (Needs a valid msrdp.ocx version installed; if you can use a web connection
    for TS on the machine running the script, you've got this already).
    <?xml version="1.0" encoding="ISO-8859-1" ?>
    <job id="main">
    <version value="1.0" year="2004" month="8" day="6"/>
    <runtime>
    <description><![CDATA[
    Name: msrdpx.wsf

    Description:
    Wrapper for the RDP client embedded in msrdp.ocx.

    Always connects with 128-bit encryption (will TRY lower encryption if
    necessary, e.g. connecting to a 56-bit encryption server).

    By default, devices do NOT start connected to prevent prompts. This can be
    modified in the source by changing individual Redirectxxx_Default constants
    to True.

    The script looks up HKCU\msrdp.msrdp to determine the last installed RDP OCX
    version so it can get an accurate CLSID. Note that if a disabled OCX version
    was last installed, the connection will not work.

    Exit errorlevels:
    0 Script ran successfully
    1 Generic compile or runtime script error
    2 No server was specified on the commandline
    3 the web control class was not found; it may not be installed.
    4 No CLSID found for the control. It probably was installed but removed
    incorrectly.

    ]]></description>
    <example><![CDATA[
    To simply see the control version and exit:
     msrdpx /V
    To connect to a remote system:
     msrdpx server-name-or-ip
    To connect to a remote system with username and password:
     msrdpx server myName myPassword
    Connect to 192.168.0.2 without redirecting printers, com ports, drives, or
    smart cards:
     msrdpx 192.168.0.2 /LPT- /COM- /DRIVE- /CARD- /RDPDR-
    Connect to DC01 using 24-bit color and a 330x440 window with identically
    sized desktop; disable the mouse while we're at it:
     msrdpx DC01 /COLOR:24 /H:330 /W:440 /MOUSE-

    Revision and Release History:
    Most of these notes may disappear since this is the "alpha" release.
    2004-08-06
      "Final Beta" MR&D TS forum release (http://x220.win2ktest.com)
    ]]></example>
    <named name="C" helpstring="Connect to server console. This has no effect on
    NT4/2000 terminal servers, since the architecture does not allow console
    connection." type="simple" required="false"/>
    <named name="COLOR" helpstring="color depth of the connection. Note that you
    CANNOT force a higher color depth than the server supports due to version or
    policy. Legitimate values are 8, 15, 16, 24. Defaults to 8-bit depth."
    type="string" required="false"/>
    <named name="D" helpstring="Set domain for the connection." type="string"
    required="false"/>
    <named name="Trace" helpstring="Turns on execution tracing." type="string"
    required="false"/>
    <named name="PORT" helpstring="Server port for connection. If not specified,
    defaults to 3389." type="string" required="false"/>
    <named name="H" helpstring="Set height in pixels of the control; if not
    specified, defaults to 600." type="string" required="false"/>
    <named name="HD" helpstring="Set height in pixels of the desktop; if not
    specified, defaults to the control's height." type="string"
    required="false"/>
    <named name="W" helpstring="Set width in pixels of the control; if not
    specified, defaults to 800." type="string" required="false"/>
    <named name="WD" helpstring="Set width in pixels of the desktop; if not
    specified, defaults to the control's width." type="string"
    required="false"/>
    <named name="Q" helpstring="Quiet mode. At present, this just prevents
    automatic display of help text if arguments are invalid, and suppresses exit
    error message boxes if executing from WScript.exe. Exit errorlevel is not
    affected by this." type="string" required="false"/>
    <named name="T" helpstring="Set titlebar text for the control. If not
    specified, defaults to the address of the target system." type="string"
    required="false"/>
    <named name="V" helpstring="Display control version and then exit."
    type="boolean" required="false"/>
    <named name="ENC" helpstring="EncryptionEnabled; default is True."
    type="boolean" required="false"/>
    <named name="WINKEY" helpstring="EnableWindowsKey; default is True."
    type="boolean" required="false"/>
    <named name="MOUSE" helpstring="EnableMouse; default is True."
    type="boolean" required="false"/>
    <named name="RDPDR" helpstring="Enable RDPDR (opposite of DisableRdpdr);
    default is True." type="boolean" required="false"/>
    <named name="CAD" helpstring="Control+Alt+Delete is not required to get the
    logon screen. Default is True." type="boolean" required="false"/>
    <named name="RECONNECT" helpstring="EnableAutoReconnect; default is True."
    type="boolean" required="false"/>
    <named name="DRIVE" helpstring="RedirectDrives; default is False."
    type="boolean" required="false"/>
    <named name="COM" helpstring="RedirectPorts; default is False."
    type="boolean" required="false"/>
    <named name="LPT" helpstring="RedirectPrinters; default is False."
    type="boolean" required="false"/>
    <named name="CARD" helpstring="RedirectSmartCards; default is False."
    type="boolean" required="false"/>
    <named name="GRAB" helpstring="GrabFocusOnConnect; default is True."
    type="boolean" required="false"/>
    <unnamed name="server" helpstring="server to connect to." many="false"
    required="1"/>
    <unnamed name="username" helpstring="Username for the remote connection."
    many="false" required="0"/>
    <unnamed name="password" helpstring="Password for the connection. WARNING -
    this password will be transmitted as CLEAR TEXT. It is thus inherently
    insecure. If the remote system does not allow password specification, then
    you must still enter it dynamically after connecting." many="false"
    required="0"/>
    </runtime>
    <script language="VBScript"><![CDATA[
    Option Explicit

    ' =======================================================================
    ' Generic Initialization
    ' =======================================================================
    dim m_Index: m_Index = 0
    Const error_NoServer = 2
    Const error_ProgidNotFound = 3
    Const error_ClsidNotFound = 4
    Const Default_Height = 600
    Const Default_Width = 800
    Const Default_ColorDepth = 8
    Const RedirectComPorts_Default = False
    Const RedirectPrinters_Default = False
    Const RedirectSmartCards_Default = False
    Const Redirect_Drives = False
    Const Control_ProgID = "msrdp.msrdp"
    Const Default_Port = 3389

    ' =======================================================================
    ' Control Initialization
    ' =======================================================================
    Dim m_Tracing, m_TraceStream
    m_Tracing = ArgSimple("TRACE")
    If m_Tracing Then Set m_TraceStream = GetTraceStream()

    Dim m_Quiet: m_Quiet = ArgSimple("Q")

    Trace "checking to see if progid " & Control_ProgID & " is on system."
    If Not IsRegistryClassName(Control_ProgID) Then
     CriticalErrorExit error_ProgidNotFound, _
      "The programmatic identifier string " & Control_ProgID _
      & " was not found in the registry. The web client msrdp.ocx must " _
       & "be installed to use this script.", False
    End If

    Trace "checking for clsid using progid " & Control_ProgID
    Dim controlClsId
    controlClsId = GetClsIdFromProgid(Control_ProgID)
    If controlClsId = False Then
     CriticalErrorExit error_ControlNotFound, _
     "Could not find a CLSID for the control. Reinstall the web client.", _
      False
    End If
    controlClsId = TrimCurlyBraces(controlClsId)

    Trace "Found client control CLSID value of: " & controlClsId

    If ArgSimple("V") Then
     WScript.Echo CreateObject(Control_ProgID).Version
     WScript.Quit 0
    End If

    Dim uargs: Set uargs = WScript.Arguments.UnNamed
    If uargs.Count = 0 Then
     If not m_Quiet Then WScript.Arguments.ShowUsage
     WScript.Quit error_NoServer
    End If
    Trace "possible server parameter found on commandline."

    ' set up an Internet Explorer instance in one step...
    Dim ie: Set ie = BrowserContainer()
    Trace "IE container successfully created."

    ' Insert control and set up scale...
    Dim body: Set body = ie.document.body
    Dim control: set control = ie.document.createElement("object")
    control.classId = "clsid:" & controlClsId
    control.id = "msrdp"
    Dim param: Set param = ie.document.createElement("param")
    param.name = "StartProgram"
    param.value = "C:\winnt\notepad.exe"
    control.appendChild param
    Set control = body.appendChild(control)
    Trace "Inserted control into IE."
    SizeContainer ie, control, ArgLong("W", Default_Width), _
     ArgLong("H", Default_Height)
    ' Can specify a separate desktop height and width; if not specified,
    ' defaults to the values used for the control height and width
    control.DesktopHeight = ArgLong("HD", ArgLong("H", Default_Height) )
    control.DesktopWidth = ArgLong("HW", ArgLong("W", Default_Width) )
    Trace "Control dimensions set to " _
     & control.DesktopHeight & "," & control.DesktopWidth
    Dim color
    color = ArgStringInList("COLOR", Array(8, 15, 16, 24, 32),
    Default_ColorDepth)
    If VarType(color) = vbEmpty Then color = Default_ColorDepth
    control.ColorDepth = color
    Trace "Color bit depth is " & color
    ' Set up generic details
    ie.document.Title = ArgString("T", uargs(0))
    control.Server = uargs(0)
    Trace "Server is " & control.Server
    If uargs.Count > 1 Then
     control.UserName = uargs(1)
     Trace "Username supplied: " & control.UserName
    End If
    If ArgSimple("D") Then
     control.Domain = ArgString("D")
     Trace "Domain supplied: " & control.Domain
    End If

    ' Set up shell-related parameters...
    With control.AdvancedSettings3
     If uargs.Count > 2 Then .ClearTextPassword = uargs(2)
     .ConnectToServerConsole = ArgSimple("C")
     .RDPPort = ArgLong("PORT", Default_Port)
     Trace "RDPPort is: " & .RDPPort
     .EnableWindowsKey = Abs(ArgBoolean("WINKEY", True))
     Trace "EnableWindowsKey is: " & .EnableWindowsKey
     .EnableMouse = Abs(ArgBoolean("MOUSE", True))
     Trace "EnableMouse is: " & .EnableMouse
     .DisableCtrlAltDel = Abs(ArgBoolean("CAD", True))
     Trace "DisableCtrlAltDel is: " & .DisableCtrlAltDel
     .EnableAutoReconnect = ArgBoolean("RECONNECT", True)
     Trace "EnableAutoReconnect is: " & .EnableAutoReconnect
     .GrabFocusOnConnect = ArgBoolean("GRAB", True)
     Trace "GrabFocusOnConnect is: " & .GrabFocusOnConnect
     .RedirectDrives = ArgBoolean("DRIVE", Redirect_Drives)
     Trace "RedirectDrives is: " & .RedirectDrives
     .RedirectPorts = ArgBoolean("COM", RedirectComPorts_Default)
     Trace "RedirectPorts is: " & .RedirectPorts
     .RedirectPrinters = ArgBoolean("LPT", RedirectPrinters_Default)
     Trace "RedirectPrinters is: " & .RedirectPrinters
     .RedirectSmartCards = ArgBoolean("CARD", RedirectSmartCards_Default)
     Trace "RedirectSmartCards is: " & .RedirectSmartCards
    End With
     Trace "CipherStrength: " & control.CipherStrength

    ' Now we try the secured settings
    Trace "Secured Settings Status: " & control.SecuredSettingsEnabled

    if control.SecuredSettingsEnabled then
     ' None of these currently work with my control version from script;
     ' they are not implemented for that reason...
     Dim sec: Set sec = control.SecuredSettings
     If ArgSimple("PROGRAM") Then sec.StartProgram = ArgString("PROGRAM")
     If ArgSimple("DIR") Then sec.WorkDir = ArgString("DIR")
     If ArgSimple("AUD") Then sec.AudioRedirectionMode = ArgLong("AUD")
     If ArgSimple("FS") Then sec.FullScreen = ArgLong("FS")
     If ArgSimple("KEY") Then sec.KeyboardHookMode = ArgLong("KEY")
    end if

    'Dim script: set script = ie.document.createElement("script")
    'script.Language = "VBScript"
    'script.defer = true
    'script.text = "MsgBox msrdp.SecuredSettingsEnabled"
    'body.fireEvent "foo"
    'Set script = body.appendChild(script)

    ' =======================================================================
    ' Begin Main Processing Loop
    ' =======================================================================

    control.ConnectingText = "Connecting to " & control.Server _
     & " at " & Now()
    ie.Visible = True
    Trace "About to connect."
    control.Connect
    Trace "Connect called."

    Trace "Exiting script."
    ' =======================================================================
    ' Wrappers for various bits of the control configuration process.
    ' =======================================================================

    Function BrowserContainer()
     ' Creates a browser window ready for use as a control container.
     ' USES WScript.Sleep - DO NOT USE IN MSHTA!
     ' + navigate to about:blank and wait for it to settle;
     ' + Remove all chrome and margins;
     ' + return a HIDDEN IE instance ready to roll.
     Dim ie: set ie = CreateObject _
      ("InternetExplorer.Application")
     ie.navigate "about:blank"
     Do While ie.ReadyState <> 4
      WScript.Sleep 50
     Loop
     ie.MenuBar = False
     ie.AddressBar = False
     ie.StatusBar = False
     ie.Resizable = False
     ie.ToolBar = 0
     ie.document.body.scroll = "no"
     ie.document.body.topMargin = 0
     ie.document.body.bottomMargin = 0
     ie.document.body.leftMargin = 0
     ie.document.body.rightMargin = 0
     Set BrowserContainer = ie
    End Function

    Sub SizeContainer(ByVal ie, ByVal ctl, ByVal width, ByVal height)
     ' Given a resized control, sets IE window to match...
     ctl.width = width
     ctl.height = height
     ie.width = ie.width + ctl.width _
      - ie.document.body.clientWidth
     ie.height = ie.height + ctl.height _
      - ie.document.body.clientHeight
    End Sub

    ' =======================================================================
    ' Control check routines
    ' =======================================================================

    Function IsRegistryClassName(Byval s)
     ' Takes a string s; returns true if HKCR\%s%\ exists
     IsRegistryClassName = False
     Dim WshShell: Set WshShell = CreateObject("WScript.Shell")
     On Error Resume Next
     WshShell.RegRead "HKCR\" & s & "\"
     If Err.Number = 0 Then
      IsRegistryClassName = True
     ElseIf InStr(1, Err.Description, "Unable", vbTextCompare) Then
      ' The key was found, but the default value is empty; this is OK.
      IsRegistryClassName = True
     End If
    End Function

    Function GetClsIdFromProgid(ByVal progId)
     ' Given a programmatic identifier string, find the clsid
     ' for the class.
     ' useful for getting clsid for a reg
     ' Uses WshShell's RegRead method; this is weak, but allows
     ' accommodation to Win9x/NT4 systems with that may have
     ' WSH but no WMI.
     Dim WshShell: Set WshShell = CreateObject("WScript.Shell")
     On Error Resume Next
     GetClsIdFromProgid = WshShell.RegRead _
      ("HKCR\" & progId & "\CLSID\")
     If Err.Number = 0 Then Exit Function
     ' If we're here, there IS no CLSID subkey; need to find CurVer.
     Err.Clear
     Dim curVer: curVer = WshShell.RegRead _
      ("HKCR\" & progId & "\CurVer\")
     GetClsIdFromProgid = WshShell.RegRead _
      ("HKCR\" & curVer & "\CLSID\")
     If Err.Number = 0 Then Exit Function
     ' We have nothing. Call it a day, return false.
     GetClsIdFromProgid = False
    End Function

    Function TrimCurlyBraces(ByVal s)
     ' Like the name says. Removes "{" if found at the beginning of s,
     ' removes "}" if found at the end.
     s = Trim(s)
     If Left(s, 1) = "{" Then s = Mid(s, 2)
     If Right(s, 1) = "}" Then s = Left(s, Len(s) - 1)
     TrimCurlyBraces = s
    End Function

    ' =======================================================================
    ' Argument Parsing Helper Routines
    ' =======================================================================

    Function ArgString(ByVal argName, ByVal defaultValue)
     ' If a string named argument was specified on the script's
     ' commandline, return it. If it wasn't, return a default value.
     if WScript.Arguments.Named.Exists(argName) Then
      ArgString = WScript.Arguments.Named(argName)
     Else
      ArgString = defaultValue
     End If
    End Function

    Function ArgLong(ByVal argName, ByVal defaultValue)
     ' If a string named argument coercible to long was specified on the
     ' script's commandline, return it. If it wasn't, return a default value.
     If WScript.Arguments.Named.Exists(argName) Then
      On Error Resume Next
      ArgLong = CLng( WScript.Arguments.Named(argName) )
      If Err.Number <> 0 Then
       AbortWithReason 3, "argument /" & argName _
        & " needs a numeric value supplied."
      End If
     Else
      ArgLong = defaultValue
     End If
    End Function

    Function ArgLongRanged(ByVal argName, ByVal defaultValue, _
     ByVal floor, ByVal ceiling)
     ' If a string named argument coercible to long was specified on the
     ' script's commandline, return it. If it wasn't, return a default value.
     ArgLongRanged = ArgLong( argName, defaultValue)
     If ArgLongRanged < floor or ArgLongRanged > ceiling Then
      AbortWithReason 5, "argument /" & argName _
        & " needs a value in the range " & floor & " through " & ceiling
     End If
    End Function

    Function ArgSimple(ByVal argName)
     ' If a simple argument was specified on the script's commandline,
     ' return true. If it wasn't, return false.
     if WScript.Arguments.Named.Exists(argName) Then
      ArgSimple = True
     Else
      ArgSimple = false
     End If
    End Function

    Function ArgBoolean(ByVal argName, ByVal defaultValue)
     ' Get an optional boolean named argument if it exists;
     ' if it does not exist, return the default value.
     if WScript.Arguments.Named.Exists(argName) Then
      If VarType(WScript.Arguments.Named(argName)) = Empty Then
       ArgBoolean = defaultValue
      Else
       ArgBoolean = CBool(WScript.Arguments.Named(argName))
      End If
     Else
      ArgBoolean = defaultValue
     End If
    End Function

    Function ArgTriState(ByVal argName, ByVal defaultValue)
     ' Interprets a Boolean argument as a tristate value.
     ' If not specified, 0 is returned; /argName- is -1;
     ' and /argName+ is +1. The defaultValue is used if
     ' the argument name is specified without a value.
     ArgTriState = defaultValue
     If Not WScript.Arguments.Named.Exists(argName) Then Exit Function
     Select Case WScript.Arguments.Named(argName)
      Case True ArgTriState = -1
      Case False ArgTriState = 0
      Case Empty ArgTriState = -2
     End Select
    End Function

    Function ArgSwitch(ByVal argNames)
     ' Given an array of argNames, checks to see which was supplied.
     ' If none are found, or multiple matches are found, returns Empty.
     dim argName
     ArgSwitch = Empty
     For Each argName in argNames
      If WScript.Arguments.Named.Exists(argName) Then
       If ArgSwitch = Empty Then
        ArgSwitch = argName
       Else
        ArgSwitch = Empty
        Exit Function
       End If
      End If
     Next
    End Function

    Function ArgStringInList(ByVal argName, Byval values, byVal defaultValue)
     ' Given an argument name argName, ensures that a supplied value is
     ' in the list.
     ' If no value is specified, returns the defaultValue.
     ' If a non-list value is supplied, returns vbEmpty.
     If WScript.Arguments.Named.Exists(argName) Then
      Dim arg: arg = WScript.Arguments.Named(argName)
      For i = 0 to UBound(values)
       If LCase(values(i) ) = LCase(arg) Then
        ArgStringInList = arg
        Exit Function
       End If
      Next
      ' If we got here, was not a match.
      ArgStringInList = Empty
     Else
      ArgStringInList = defaultValue
     End If
    End Function

    ' =======================================================================
    ' Host and Tracing Routines
    ' =======================================================================

    '********************************************************************
    '*
    '* Function HostIsCScript()
    '* Purpose: Determines which program is used to run this script.
    '* Input: None
    '* Output: True if cscript.exe was used to run the script.
    '*
    '********************************************************************
    Function HostIsCScript()
     ' Minor modifications to simplify (use of native WSH properties);
     ' No longer attempts to quit since it won't work anyway if a true
     ' non-WSH host is used...
     Dim fso: Set fso = CreateObject("Scripting.FileSystemObject")
     HostIsCScript = False
     On Error Resume Next
     ' Non-WSH hosts will ensure that baseName is empty
     Dim baseName: baseName = LCase( fso.GetBaseName(WScript.FullName) )
     If baseName = "cscript" Then HostIsCScript = True
    End Function

    Function GetTraceStream()
     ' Returns an output stream for tracing. If console-hosted,
     ' this is stderr; if not, this is a file in the same directory as
     ' the script, with an identical base name + log. The file will be
     ' opened for appending.
     ' RETURNS: a TextStream opened for appending.
     ' DEPENDENCIES: Function HostIsCScript(), FSO, WScript
     If HostIsCScript() Then
      Set GetTraceStream = WScript.StdErr
     Else
      Dim fso: Set fso = CreateObject("Scripting.FileSystemObject")
      Dim script
      script = fso.GetAbsolutePathName(WScript.ScriptFullName)
      Dim logFile
      logFile = fso.BuildPath(fso.GetParentFolderName(script), _
       fso.GetBaseName(script) & ".log")
      Set GetTraceStream = fso.OpenTextFile(logFile, 8, True, -2)
     End If
    End Function

    Sub Trace(ByVal s)
     ' Writes trace output if tracing is on.
     ' Depends on global variables m_Tracing (Boolean) and
     ' m_TraceStream (a TextStream object).
     If m_Tracing Then m_TraceStream.WriteLine "[" & Time & "]: " & s
    End Sub

    Sub CriticalErrorExit(ByVal errorLevel, ByVal message, ByVal showHelp)
     ' If we have a critical error and cannot proceed, users need
     ' visible feedback even when running with the GUI host.
     ' This routine tries to wrap up everything. It sets an exit errorlevel
     ' for automated processing.
     ' We will display an error message but this is UGLY right now; it uses
     ' WScript.Echo to ensure it works for both console and gui. It can be
     ' suppressed if in quiet mode, (m_Quiet).
     ' This is ugly because it means we are coupled via 3 explicit arguments
     ' and we have hidden coupling from m_Quiet...
     If HostIsCScript Then
      WScript.StdErr.WriteLine message
     Else
      Trace message
      If Not m_Quiet Then WScript.Echo message
     End If
     If showHelp and Not m_Quiet Then WScript.Arguments.ShowUsage
     WScript.Quit errorLevel
    End Sub

    ]]></script>
    </job>

    begin 666 msrdpx.wsf.txt
    M/#]X;6P@=F5R<VEO;CTB,2XP(B!E;F-O9&EN9STB25-/+3@X-3DM,2(@/SX-
    M"CQJ;V(@:60](FUA:6XB/@T*/'9E<G-I;VX@=F%L=64](C$N,"(@>65A<CTB
    M,C P-"(@;6]N=&@](C@B(&1A>3TB-B(O/@T*/')U;G1I;64^#0H\9&5S8W)I
    M<'1I;VX^/"%;0T1!5$%;#0I.86UE.B!M<W)D<'@N=W-F#0H-"D1E<V-R:7!T
    M:6]N.@T*5W)A<'!E<B!F;W(@=&AE(%)$4"!C;&EE;G0@96UB961D960@:6X@
    M;7-R9' N;V-X+@T*#0I!;'=A>7,@8V]N;F5C=',@=VET:" Q,C@M8FET(&5N
    M8W)Y<'1I;VX@*'=I;&P@5%)9(&QO=V5R(&5N8W)Y<'1I;VX@:68@;F5C97-S
    M87)Y+"!E+F<N(&-O;FYE8W1I;F<@=&\@82 U-BUB:70@96YC<GEP=&EO;B!S
    M97)V97(I+@T*#0I">2!D969A=6QT+"!D979I8V5S(&1O($Y/5"!S=&%R="!C
    M;VYN96-T960@=&\@<')E=F5N="!P<F]M<'1S+B!4:&ES(&-A;B!B92!M;V1I
    M9FEE9"!I;B!T:&4@<V]U<F-E(&)Y(&-H86YG:6YG(&EN9&EV:61U86P@4F5D
    M:7)E8W1X>'A?1&5F875L="!C;VYS=&%N=',@=&\@5')U92X-"@T*5&AE('-C
    M<FEP="!L;V]K<R!U<"!(2T-57&US<F1P+FUS<F1P('1O(&1E=&5R;6EN92!T
    M:&4@;&%S="!I;G-T86QL960@4D10($]#6"!V97)S:6]N('-O(&ET(&-A;B!G
    M970@86X@86-C=7)A=&4@0TQ3240N($YO=&4@=&AA="!I9B!A(&1I<V%B;&5D
    M($]#6"!V97)S:6]N('=A<R!L87-T(&EN<W1A;&QE9"P@=&AE(&-O;FYE8W1I
    M;VX@=VEL;"!N;W0@=V]R:RX-"@T*17AI="!E<G)O<FQE=F5L<SH-"C @4V-R
    M:7!T(')A;B!S=6-C97-S9G5L;'D-"C$@1V5N97)I8R!C;VUP:6QE(&]R(')U
    M;G1I;64@<V-R:7!T(&5R<F]R#0HR($YO('-E<G9E<B!W87,@<W!E8VEF:65D
    M(&]N('1H92!C;VUM86YD;&EN90T*,R!T:&4@=V5B(&-O;G1R;VP@8VQA<W,@
    M=V%S(&YO="!F;W5N9#L@:70@;6%Y(&YO="!B92!I;G-T86QL960N#0HT($YO
    M($-,4TE$(&9O=6YD(&9O<B!T:&4@8V]N=')O;"X@270@<')O8F%B;'D@=V%S
    M(&EN<W1A;&QE9"!B=70@<F5M;W9E9"!I;F-O<G)E8W1L>2X-"@T*#0I=73X\
    M+V1E<V-R:7!T:6]N/@T*/&5X86UP;&4^/"%;0T1!5$%;#0I4;R!S:6UP;'D@
    M<V5E('1H92!C;VYT<F]L('9E<G-I;VX@86YD(&5X:70Z#0H);7-R9'!X("]6
    M#0I4;R!C;VYN96-T('1O(&$@<F5M;W1E('-Y<W1E;3H-"@EM<W)D<'@@<V5R
    M=F5R+6YA;64M;W(M:7 -"E1O(&-O;FYE8W0@=&\@82!R96UO=&4@<WES=&5M
    M('=I=&@@=7-E<FYA;64@86YD('!A<W-W;W)D.@T*"6US<F1P>"!S97)V97(@
    M;7E.86UE(&UY4&%S<W=O<F0-"D-O;FYE8W0@=&\@,3DR+C$V."XP+C(@=VET
    M:&]U="!R961I<F5C=&EN9R!P<FEN=&5R<RP@8V]M('!O<G1S+"!D<FEV97,L
    M(&]R('-M87)T(&-A<F1S.@T*"6US<F1P>" Q.3(N,38X+C N,B O3%!4+2 O
    M0T]-+2 O1%))5D4M("]#05)$+2 O4D101%(M#0I#;VYN96-T('1O($1#,#$@
    M=7-I;F<@,C0M8FET(&-O;&]R(&%N9"!A(#,S,'@T-# @=VEN9&]W('=I=&@@
    M:61E;G1I8V%L;'D@<VEZ960@9&5S:W1O<#L@9&ES86)L92!T:&4@;6]U<V4@
    M=VAI;&4@=V4G<F4@870@:70Z#0H);7-R9'!X($1#,#$@+T-/3$]2.C(T("](
    M.C,S," O5SHT-# @+TU/55-%+0T*#0I2979I<VEO;B!A;F0@4F5L96%S92!(
    M:7-T;W)Y.@T*36]S="!O9B!T:&5S92!N;W1E<R!M87D@9&ES87!P96%R('-I
    M;F-E('1H:7,@:7,@=&AE(")A;'!H82(@<F5L96%S92X-"C(P,#0M,#@M,#8-
    M"B @(D9I;F%L($)E=&$B($U2)D0@5%,@9F]R=6T@<F5L96%S92 H:'1T<#HO
    M+W@R,C N=VEN,FMT97-T+F-O;2D-"EU=/CPO97AA;7!L93X-"CQN86UE9"!N
    M86UE/2)#(B!H96QP<W1R:6YG/2)#;VYN96-T('1O('-E<G9E<B!C;VYS;VQE
    M+B!4:&ES(&AA<R!N;R!E9F9E8W0@;VX@3E0T+S(P,# @=&5R;6EN86P@<V5R
    M=F5R<RP@<VEN8V4@=&AE(&%R8VAI=&5C='5R92!D;V5S(&YO="!A;&QO=R!C
    M;VYS;VQE(&-O;FYE8W1I;VXN(B!T>7!E/2)S:6UP;&4B(')E<75I<F5D/2)F
    M86QS92(O/@T*/&YA;65D(&YA;64](D-/3$]2(B!H96QP<W1R:6YG/2)C;VQO
    M<B!D97!T:"!O9B!T:&4@8V]N;F5C=&EO;BX@3F]T92!T:&%T('EO=2!#04Y.
    M3U0@9F]R8V4@82!H:6=H97(@8V]L;W(@9&5P=&@@=&AA;B!T:&4@<V5R=F5R
    M('-U<'!O<G1S(&1U92!T;R!V97)S:6]N(&]R('!O;&EC>2X@3&5G:71I;6%T
    M92!V86QU97,@87)E(#@L(#$U+" Q-BP@,C0N($1E9F%U;'1S('1O(#@M8FET
    M(&1E<'1H+B(@='EP93TB<W1R:6YG(B!R97%U:7)E9#TB9F%L<V4B+SX-"CQN
    M86UE9"!N86UE/2)$(B!H96QP<W1R:6YG/2)3970@9&]M86EN(&9O<B!T:&4@
    M8V]N;F5C=&EO;BXB('1Y<&4](G-T<FEN9R(@<F5Q=6ER960](F9A;'-E(B\^
    M#0H\;F%M960@;F%M93TB5')A8V4B(&AE;'!S=')I;F<](E1U<FYS(&]N(&5X
    M96-U=&EO;B!T<F%C:6YG+B(@='EP93TB<W1R:6YG(B!R97%U:7)E9#TB9F%L
    M<V4B+SX-"CQN86UE9"!N86UE/2)03U)4(B!H96QP<W1R:6YG/2)397)V97(@
    M<&]R="!F;W(@8V]N;F5C=&EO;BX@268@;F]T('-P96-I9FEE9"P@9&5F875L
    M=',@=&\@,S,X.2XB('1Y<&4](G-T<FEN9R(@<F5Q=6ER960](F9A;'-E(B\^
    M#0H\;F%M960@;F%M93TB2"(@:&5L<'-T<FEN9STB4V5T(&AE:6=H="!I;B!P
    M:7AE;',@;V8@=&AE(&-O;G1R;VP[(&EF(&YO="!S<&5C:69I960L(&1E9F%U
    M;'1S('1O(#8P,"XB('1Y<&4](G-T<FEN9R(@<F5Q=6ER960](F9A;'-E(B\^
    M#0H\;F%M960@;F%M93TB2$0B(&AE;'!S=')I;F<](E-E="!H96EG:'0@:6X@
    M<&EX96QS(&]F('1H92!D97-K=&]P.R!I9B!N;W0@<W!E8VEF:65D+"!D969A
    M=6QT<R!T;R!T:&4@8V]N=')O;"=S(&AE:6=H="XB('1Y<&4](G-T<FEN9R(@
    M<F5Q=6ER960](F9A;'-E(B\^#0H\;F%M960@;F%M93TB5R(@:&5L<'-T<FEN
    M9STB4V5T('=I9'1H(&EN('!I>&5L<R!O9B!T:&4@8V]N=')O;#L@:68@;F]T
    M('-P96-I9FEE9"P@9&5F875L=',@=&\@.# P+B(@='EP93TB<W1R:6YG(B!R
    M97%U:7)E9#TB9F%L<V4B+SX-"CQN86UE9"!N86UE/2)71"(@:&5L<'-T<FEN
    M9STB4V5T('=I9'1H(&EN('!I>&5L<R!O9B!T:&4@9&5S:W1O<#L@:68@;F]T
    M('-P96-I9FEE9"P@9&5F875L=',@=&\@=&AE(&-O;G1R;VPG<R!W:61T:"XB
    M('1Y<&4](G-T<FEN9R(@<F5Q=6ER960](F9A;'-E(B\^#0H\;F%M960@;F%M
    M93TB42(@:&5L<'-T<FEN9STB475I970@;6]D92X@070@<')E<V5N="P@=&AI
    M<R!J=7-T('!R979E;G1S(&%U=&]M871I8R!D:7-P;&%Y(&]F(&AE;' @=&5X
    M="!I9B!A<F=U;65N=',@87)E(&EN=F%L:60L(&%N9"!S=7!P<F5S<V5S(&5X
    M:70@97)R;W(@;65S<V%G92!B;WAE<R!I9B!E>&5C=71I;F<@9G)O;2!74V-R
    M:7!T+F5X92X@17AI="!E<G)O<FQE=F5L(&ES(&YO="!A9F9E8W1E9"!B>2!T
    M:&ES+B(@='EP93TB<W1R:6YG(B!R97%U:7)E9#TB9F%L<V4B+SX-"CQN86UE
    M9"!N86UE/2)4(B!H96QP<W1R:6YG/2)3970@=&ET;&5B87(@=&5X="!F;W(@
    M=&AE(&-O;G1R;VPN($EF(&YO="!S<&5C:69I960L(&1E9F%U;'1S('1O('1H
    M92!A9&1R97-S(&]F('1H92!T87)G970@<WES=&5M+B(@='EP93TB<W1R:6YG
    M(B!R97%U:7)E9#TB9F%L<V4B+SX-"CQN86UE9"!N86UE/2)6(B!H96QP<W1R
    M:6YG/2)$:7-P;&%Y(&-O;G1R;VP@=F5R<VEO;B!A;F0@=&AE;B!E>&ET+B(@
    M='EP93TB8F]O;&5A;B(@<F5Q=6ER960](F9A;'-E(B\^#0H\;F%M960@;F%M
    M93TB14Y#(B!H96QP<W1R:6YG/2)%;F-R>7!T:6]N16YA8FQE9#L@9&5F875L
    M="!I<R!4<G5E+B(@='EP93TB8F]O;&5A;B(@<F5Q=6ER960](F9A;'-E(B\^
    M#0H\;F%M960@;F%M93TB5TE.2T59(B!H96QP<W1R:6YG/2)%;F%B;&57:6YD
    M;W=S2V5Y.R!D969A=6QT(&ES(%1R=64N(B!T>7!E/2)B;V]L96%N(B!R97%U
    M:7)E9#TB9F%L<V4B+SX-"CQN86UE9"!N86UE/2)-3U5312(@:&5L<'-T<FEN
    M9STB16YA8FQE36]U<V4[(&1E9F%U;'0@:7,@5')U92XB('1Y<&4](F)O;VQE
    M86XB(')E<75I<F5D/2)F86QS92(O/@T*/&YA;65D(&YA;64](E)$4$12(B!H
    M96QP<W1R:6YG/2)%;F%B;&4@4D101%(@*&]P<&]S:71E(&]F($1I<V%B;&52
    M9'!D<BD[(&1E9F%U;'0@:7,@5')U92XB('1Y<&4](F)O;VQE86XB(')E<75I
    M<F5D/2)F86QS92(O/@T*/&YA;65D(&YA;64](D-!1"(@:&5L<'-T<FEN9STB
    M0V]N=')O;"M!;'0K1&5L971E(&ES(&YO="!R97%U:7)E9"!T;R!G970@=&AE
    M(&QO9V]N('-C<F5E;BX@1&5F875L="!I<R!4<G5E+B(@='EP93TB8F]O;&5A
    M;B(@<F5Q=6ER960](F9A;'-E(B\^#0H\;F%M960@;F%M93TB4D5#3TY.14-4
    M(B!H96QP<W1R:6YG/2)%;F%B;&5!=71O4F5C;VYN96-T.R!D969A=6QT(&ES
    M(%1R=64N(B!T>7!E/2)B;V]L96%N(B!R97%U:7)E9#TB9F%L<V4B+SX-"CQN
    M86UE9"!N86UE/2)$4DE612(@:&5L<'-T<FEN9STB4F5D:7)E8W1$<FEV97,[
    M(&1E9F%U;'0@:7,@1F%L<V4N(B!T>7!E/2)B;V]L96%N(B!R97%U:7)E9#TB
    M9F%L<V4B+SX-"CQN86UE9"!N86UE/2)#3TTB(&AE;'!S=')I;F<](E)E9&ER
    M96-T4&]R=',[(&1E9F%U;'0@:7,@1F%L<V4N(B!T>7!E/2)B;V]L96%N(B!R
    M97%U:7)E9#TB9F%L<V4B+SX-"CQN86UE9"!N86UE/2),4%0B(&AE;'!S=')I
    M;F<](E)E9&ER96-T4')I;G1E<G,[(&1E9F%U;'0@:7,@1F%L<V4N(B!T>7!E
    M/2)B;V]L96%N(B!R97%U:7)E9#TB9F%L<V4B+SX-"CQN86UE9"!N86UE/2)#
    M05)$(B!H96QP<W1R:6YG/2)2961I<F5C=%-M87)T0V%R9',[(&1E9F%U;'0@
    M:7,@1F%L<V4N(B!T>7!E/2)B;V]L96%N(B!R97%U:7)E9#TB9F%L<V4B+SX-
    M"CQN86UE9"!N86UE/2)'4D%"(B!H96QP<W1R:6YG/2)'<F%B1F]C=7-/;D-O
    M;FYE8W0[(&1E9F%U;'0@:7,@5')U92XB('1Y<&4](F)O;VQE86XB(')E<75I
    M<F5D/2)F86QS92(O/@T*/'5N;F%M960@;F%M93TB<V5R=F5R(B!H96QP<W1R
    M:6YG/2)S97)V97(@=&\@8V]N;F5C="!T;RXB(&UA;GD](F9A;'-E(B!R97%U
    M:7)E9#TB,2(O/@T*/'5N;F%M960@;F%M93TB=7-E<FYA;64B(&AE;'!S=')I
    M;F<](E5S97)N86UE(&9O<B!T:&4@<F5M;W1E(&-O;FYE8W1I;VXN(B!M86YY
    M/2)F86QS92(@<F5Q=6ER960](C B+SX-"CQU;FYA;65D(&YA;64](G!A<W-W
    M;W)D(B!H96QP<W1R:6YG/2)087-S=V]R9"!F;W(@=&AE(&-O;FYE8W1I;VXN
    M(%=!4DY)3D<@+2!T:&ES('!A<W-W;W)D('=I;&P@8F4@=')A;G-M:71T960@
    M87,@0TQ%05(@5$585"X@270@:7,@=&AU<R!I;FAE<F5N=&QY(&EN<V5C=7)E
    M+B!)9B!T:&4@<F5M;W1E('-Y<W1E;2!D;V5S(&YO="!A;&QO=R!P87-S=V]R
    M9"!S<&5C:69I8V%T:6]N+"!T:&5N('EO=2!M=7-T('-T:6QL(&5N=&5R(&ET
    M(&1Y;F%M:6-A;&QY(&%F=&5R(&-O;FYE8W1I;F<N(B!M86YY/2)F86QS92(@
    M<F5Q=6ER960](C B+SX-"CPO<G5N=&EM93X-"CQS8W)I<'0@;&%N9W5A9V4]
    M(E9"4V-R:7!T(CX\(5M#1$%405L-"D]P=&EO;B!%>'!L:6-I= T*#0H-"@T*
    M)R ]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
    M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/0T*)R @($=E;F5R:6,@26YI
    M=&EA;&EZ871I;VX-"B<@/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
    M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T-"F1I
    M;2!M7TEN9&5X.B!M7TEN9&5X(#T@, T*0V]N<W0@97)R;W)?3F]397)V97(@
    M/2 R#0I#;VYS="!E<G)O<E]0<F]G:61.;W1&;W5N9" ](#,-"D-O;G-T(&5R
    M<F]R7T-L<VED3F]T1F]U;F0@/2 T#0I#;VYS="!$969A=6QT7TAE:6=H=" ]
    M(#8P, T*0V]N<W0@1&5F875L=%]7:61T:" ](#@P, T*0V]N<W0@1&5F875L
    M=%]#;VQO<D1E<'1H(#T@. T*0V]N<W0@4F5D:7)E8W1#;VU0;W)T<U]$969A
    M=6QT(#T@1F%L<V4-"D-O;G-T(%)E9&ER96-T4')I;G1E<G-?1&5F875L=" ]
    M($9A;'-E#0I#;VYS="!2961I<F5C=%-M87)T0V%R9'-?1&5F875L=" ]($9A
    M;'-E#0I#;VYS="!2961I<F5C=%]$<FEV97,@/2!&86QS90T*0V]N<W0@0V]N
    M=')O;%]0<F]G240@/2 B;7-R9' N;7-R9' B#0I#;VYS="!$969A=6QT7U!O
    M<G0@/2 S,S@Y#0H-"B<@/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
    M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T-"B<@
    M("!#;VYT<F]L($EN:71I86QI>F%T:6]N#0HG(#T]/3T]/3T]/3T]/3T]/3T]
    M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
    M/3T]/3T]/3T]#0I$:6T@;5]4<F%C:6YG+"!M7U1R86-E4W1R96%M#0IM7U1R
    M86-I;F<@/2!!<F=3:6UP;&4H(E1204-%(BD-"DEF(&U?5')A8VEN9R!4:&5N
    M(%-E="!M7U1R86-E4W1R96%M(#T@1V5T5')A8V53=')E86TH*0T*#0I$:6T@
    M;5]1=6EE=#H@;5]1=6EE=" ]($%R9U-I;7!L92@B42(I#0H-"E1R86-E(")C
    M:&5C:VEN9R!T;R!S964@:68@<')O9VED("(@)B!#;VYT<F]L7U!R;V=)1" F
    M("(@:7,@;VX@<WES=&5M+B(-"DEF($YO="!)<U)E9VES=')Y0VQA<W-.86UE
    M*$-O;G1R;VQ?4')O9TE$*2!4:&5N#0H)0W)I=&EC86Q%<G)O<D5X:70@97)R
    M;W)?4')O9VED3F]T1F]U;F0L(%\-"@D)(E1H92!P<F]G<F%M;6%T:6,@:61E
    M;G1I9FEE<B!S=')I;F<@(B F($-O;G1R;VQ?4')O9TE$(%\-"@D))B B('=A
    M<R!N;W0@9F]U;F0@:6X@=&AE(')E9VES=')Y+B!4:&4@=V5B(&-L:65N="!M
    M<W)D<"YO8W@@;75S=" B(%\-"@D@"28@(F)E(&EN<W1A;&QE9"!T;R!U<V4@
    M=&AI<R!S8W)I<'0N(BP@1F%L<V4-"D5N9"!)9@T*#0I4<F%C92 B8VAE8VMI
    M;F<@9F]R(&-L<VED('5S:6YG('!R;V=I9" B("8@0V]N=')O;%]0<F]G240-
    M"D1I;2!C;VYT<F]L0VQS260-"F-O;G1R;VQ#;'-)9" ]($=E=$-L<TED1G)O
    M;5!R;V=I9"A#;VYT<F]L7U!R;V=)1"D-"DEF(&-O;G1R;VQ#;'-)9" ]($9A
    M;'-E(%1H96X-"@E#<FET:6-A;$5R<F]R17AI="!E<G)O<E]#;VYT<F]L3F]T
    M1F]U;F0L(%\-"@DB0V]U;&0@;F]T(&9I;F0@82!#3%-)1"!F;W(@=&AE(&-O
    M;G1R;VPN(%)E:6YS=&%L;"!T:&4@=V5B(&-L:65N="XB+"!?#0H)($9A;'-E
    M#0I%;F0@268-"F-O;G1R;VQ#;'-)9" ](%1R:6U#=7)L>4)R86-E<RAC;VYT
    M<F]L0VQS260I#0H-"E1R86-E(")&;W5N9"!C;&EE;G0@8V]N=')O;"!#3%-)
    M1"!V86QU92!O9CH@(B F(&-O;G1R;VQ#;'-)9 T*#0I)9B!!<F=3:6UP;&4H
    M(E8B*2!4:&5N#0H)5U-C<FEP="Y%8VAO($-R96%T94]B:F5C="A#;VYT<F]L
    M7U!R;V=)1"DN5F5R<VEO;@T*"5=38W)I<'0N475I=" P#0I%;F0@268-"@T*
    M1&EM('5A<F=S.B!3970@=6%R9W,@/2!74V-R:7!T+D%R9W5M96YT<RY5;DYA
    M;65D#0I)9B!U87)G<RY#;W5N=" ](# @5&AE;@T*"4EF(&YO="!M7U%U:65T
    M(%1H96X@5U-C<FEP="Y!<F=U;65N=',N4VAO=U5S86=E#0H)5U-C<FEP="Y1
    M=6ET(&5R<F]R7TYO4V5R=F5R#0I%;F0@268-"E1R86-E(")P;W-S:6)L92!S
    M97)V97(@<&%R86UE=&5R(&9O=6YD(&]N(&-O;6UA;F1L:6YE+B(-"@T*)R!S
    M970@=7 @86X@26YT97)N970@17AP;&]R97(@:6YS=&%N8V4@:6X@;VYE('-T
    M97 N+BX-"D1I;2!I93H@4V5T(&EE(#T@0G)O=W-E<D-O;G1A:6YE<B@I#0I4
    M<F%C92 B244@8V]N=&%I;F5R('-U8V-E<W-F=6QL>2!C<F5A=&5D+B(-"@T*
    M)R!);G-E<G0@8V]N=')O;"!A;F0@<V5T('5P('-C86QE+BXN#0I$:6T@8F]D
    M>3H@4V5T(&)O9'D@/2!I92YD;V-U;65N="YB;V1Y#0I$:6T@8V]N=')O;#H@
    M<V5T(&-O;G1R;VP@/2!I92YD;V-U;65N="YC<F5A=&5%;&5M96YT*")O8FIE
    M8W0B*0T*8V]N=')O;"YC;&%S<TED(#T@(F-L<VED.B(@)B!C;VYT<F]L0VQS
    M260-"F-O;G1R;VPN:60@/2 B;7-R9' B#0I$:6T@<&%R86TZ(%-E="!P87)A
    M;2 ](&EE+F1O8W5M96YT+F-R96%T945L96UE;G0H(G!A<F%M(BD-"G!A<F%M
    M+FYA;64@/2 B4W1A<G10<F]G<F%M(@T*<&%R86TN=F%L=64@/2 B0SI<=VEN
    M;G1<;F]T97!A9"YE>&4B#0IC;VYT<F]L+F%P<&5N9$-H:6QD('!A<F%M#0I3
    M970@8V]N=')O;" ](&)O9'DN87!P96YD0VAI;&0H8V]N=')O;"D-"E1R86-E
    M("));G-E<G1E9"!C;VYT<F]L(&EN=&\@244N(@T*4VEZ94-O;G1A:6YE<B!I
    M92P@8V]N=')O;"P@07)G3&]N9R@B5R(L($1E9F%U;'1?5VED=&@I+"!?#0H)
    M07)G3&]N9R@B2"(L($1E9F%U;'1?2&5I9VAT*0T*)R!#86X@<W!E8VEF>2!A
    M('-E<&%R871E(&1E<VMT;W @:&5I9VAT(&%N9"!W:61T:#L@:68@;F]T('-P
    M96-I9FEE9"P-"B<@9&5F875L=',@=&\@=&AE('9A;'5E<R!U<V5D(&9O<B!T
    M:&4@8V]N=')O;"!H96EG:'0@86YD('=I9'1H#0IC;VYT<F]L+D1E<VMT;W!(
    M96EG:'0@/2!!<F=,;VYG*")(1"(L($%R9TQO;F<H(D@B+"!$969A=6QT7TAE
    M:6=H="D@*0T*8V]N=')O;"Y$97-K=&]P5VED=&@@/2!!<F=,;VYG*")(5R(L
    M($%R9TQO;F<H(E<B+"!$969A=6QT7U=I9'1H*2 I#0I4<F%C92 B0V]N=')O
    M;"!D:6UE;G-I;VYS('-E="!T;R B(%\-"@DF(&-O;G1R;VPN1&5S:W1O<$AE
    M:6=H=" F("(L(B F(&-O;G1R;VPN1&5S:W1O<%=I9'1H#0I$:6T@8V]L;W(-
    M"F-O;&]R(#T@07)G4W1R:6YG26Y,:7-T*")#3TQ/4B(L($%R<F%Y*#@L(#$U
    M+" Q-BP@,C0L(#,R*2P@1&5F875L=%]#;VQO<D1E<'1H*0T*268@5F%R5'EP
    M92AC;VQO<BD@/2!V8D5M<'1Y(%1H96X@8V]L;W(@/2!$969A=6QT7T-O;&]R
    M1&5P=&@-"F-O;G1R;VPN0V]L;W)$97!T:" ](&-O;&]R#0I4<F%C92 B0V]L
    M;W(@8FET(&1E<'1H(&ES("(@)B!C;VQO<@T*)R!3970@=7 @9V5N97)I8R!D
    M971A:6QS#0II92YD;V-U;65N="Y4:71L92 ]($%R9U-T<FEN9R@B5"(L('5A
    M<F=S*# I*0T*8V]N=')O;"Y397)V97(@/2!U87)G<R@P*0T*5')A8V4@(E-E
    M<G9E<B!I<R B("8@8V]N=')O;"Y397)V97(-"DEF('5A<F=S+D-O=6YT(#X@
    M,2!4:&5N#0H)8V]N=')O;"Y5<V5R3F%M92 ]('5A<F=S*#$I#0H)5')A8V4@
    M(E5S97)N86UE('-U<'!L:65D.B B("8@8V]N=')O;"Y5<V5R3F%M90T*16YD
    M($EF#0I)9B!!<F=3:6UP;&4H(D0B*2!4:&5N#0H)8V]N=')O;"Y$;VUA:6X@
    M/2!!<F=3=')I;F<H(D0B*0T*"51R86-E(")$;VUA:6X@<W5P<&QI960Z("(@
    M)B!C;VYT<F]L+D1O;6%I;@T*16YD($EF#0H-"@T*)R!3970@=7 @<VAE;&PM
    M<F5L871E9"!P87)A;65T97)S+BXN#0I7:71H(&-O;G1R;VPN061V86YC9613
    M971T:6YG<S,-"@E)9B!U87)G<RY#;W5N=" ^(#(@5&AE;B N0VQE87)497AT
    M4&%S<W=O<F0@/2!U87)G<R@R*0T*"2Y#;VYN96-T5&]397)V97)#;VYS;VQE
    M(#T@07)G4VEM<&QE*")#(BD-"@DN4D104&]R=" ]($%R9TQO;F<H(E!/4E0B
    M+"!$969A=6QT7U!O<G0I#0H)5')A8V4@(E)$4%!O<G0@:7,Z("(@)B N4D10
    M4&]R= T*"2Y%;F%B;&57:6YD;W=S2V5Y(#T@06)S*$%R9T)O;VQE86XH(E=)
    M3DM%62(L(%1R=64I*0T*"51R86-E(")%;F%B;&57:6YD;W=S2V5Y(&ES.B B
    M("8@+D5N86)L95=I;F1O=W-+97D-"@DN16YA8FQE36]U<V4@/2!!8G,H07)G
    M0F]O;&5A;B@B34]54T4B+"!4<G5E*2D-"@E4<F%C92 B16YA8FQE36]U<V4@
    M:7,Z("(@)B N16YA8FQE36]U<V4-"@DN1&ES86)L94-T<FQ!;'1$96P@/2!!
    M8G,H07)G0F]O;&5A;B@B0T%$(BP@5')U92DI#0H)5')A8V4@(D1I<V%B;&5#
    M=')L06QT1&5L(&ES.B B("8@+D1I<V%B;&5#=')L06QT1&5L#0H)+D5N86)L
    M94%U=&]296-O;FYE8W0@/2!!<F=";V]L96%N*")214-/3DY%0U0B+"!4<G5E
    M*0T*"51R86-E(")%;F%B;&5!=71O4F5C;VYN96-T(&ES.B B("8@+D5N86)L
    M94%U=&]296-O;FYE8W0-"@DN1W)A8D9O8W5S3VY#;VYN96-T(#T@07)G0F]O
    M;&5A;B@B1U)!0B(L(%1R=64I#0H)5')A8V4@(D=R86)&;V-U<T]N0V]N;F5C
    M="!I<SH@(B F("Y'<F%B1F]C=7-/;D-O;FYE8W0-"@DN4F5D:7)E8W1$<FEV
    M97,@/2!!<F=";V]L96%N*")$4DE612(L(%)E9&ER96-T7T1R:79E<RD-"@E4
    M<F%C92 B4F5D:7)E8W1$<FEV97,@:7,Z("(@)B N4F5D:7)E8W1$<FEV97,-
    M"@DN4F5D:7)E8W10;W)T<R ]($%R9T)O;VQE86XH(D-/32(L(%)E9&ER96-T
    M0V]M4&]R='-?1&5F875L="D-"@E4<F%C92 B4F5D:7)E8W10;W)T<R!I<SH@
    M(B F("Y2961I<F5C=%!O<G1S#0H)+E)E9&ER96-T4')I;G1E<G,@/2!!<F="
    M;V]L96%N*"),4%0B+"!2961I<F5C=%!R:6YT97)S7T1E9F%U;'0I#0H)5')A
    M8V4@(E)E9&ER96-T4')I;G1E<G,@:7,Z("(@)B N4F5D:7)E8W10<FEN=&5R
    M<PT*"2Y2961I<F5C=%-M87)T0V%R9',@/2!!<F=";V]L96%N*")#05)$(BP@
    M4F5D:7)E8W13;6%R=$-A<F1S7T1E9F%U;'0I#0H)5')A8V4@(E)E9&ER96-T
    M4VUA<G1#87)D<R!I<SH@(B F("Y2961I<F5C=%-M87)T0V%R9',-"D5N9"!7
    M:71H#0H)5')A8V4@(D-I<&AE<E-T<F5N9W1H.B B("8@8V]N=')O;"Y#:7!H
    M97)3=')E;F=T: T*#0HG($YO=R!W92!T<GD@=&AE('-E8W5R960@<V5T=&EN
    M9W,-"E1R86-E(")396-U<F5D(%-E='1I;F=S(%-T871U<SH@(B F(&-O;G1R
    M;VPN4V5C=7)E9%-E='1I;F=S16YA8FQE9 T*#0II9B!C;VYT<F]L+E-E8W5R
    M9613971T:6YG<T5N86)L960@=&AE;@T*"2<@3F]N92!O9B!T:&5S92!C=7)R
    M96YT;'D@=V]R:R!W:71H(&UY(&-O;G1R;VP@=F5R<VEO;B!F<F]M('-C<FEP
    M=#L-"@DG('1H97D@87)E(&YO="!I;7!L96UE;G1E9"!F;W(@=&AA="!R96%S
    M;VXN+BX-"@E$:6T@<V5C.B!3970@<V5C(#T@8V]N=')O;"Y396-U<F5D4V5T
    M=&EN9W,-"@E)9B!!<F=3:6UP;&4H(E!23T=204TB*2!4:&5N('-E8RY3=&%R
    M=%!R;V=R86T@/2!!<F=3=')I;F<H(E!23T=204TB*0T*"4EF($%R9U-I;7!L
    M92@B1$E2(BD@5&AE;B!S96,N5V]R:T1I<B ]($%R9U-T<FEN9R@B1$E2(BD-
    M"@E)9B!!<F=3:6UP;&4H(D%51"(I(%1H96X@<V5C+D%U9&EO4F5D:7)E8W1I
    M;VY-;V1E(#T@07)G3&]N9R@B055$(BD-"@E)9B!!<F=3:6UP;&4H(D93(BD@
    M5&AE;B!S96,N1G5L;%-C<F5E;B ]($%R9TQO;F<H(D93(BD-"@E)9B!!<F=3
    M:6UP;&4H(DM%62(I(%1H96X@<V5C+DME>6)O87)D2&]O:TUO9&4@/2!!<F=,
    M;VYG*")+15DB*0T*96YD(&EF#0H-"B=$:6T@<V-R:7!T.B!S970@<V-R:7!T
    M(#T@:64N9&]C=6UE;G0N8W)E871E16QE;65N="@B<V-R:7!T(BD-"B=S8W)I
    M<'0N3&%N9W5A9V4@/2 B5D)38W)I<'0B#0HG<V-R:7!T+F1E9F5R(#T@=')U
    M90T*)W-C<FEP="YT97AT(#T@(DUS9T)O>"!M<W)D<"Y396-U<F5D4V5T=&EN
    M9W-%;F%B;&5D(@T*)V)O9'DN9FER945V96YT(")F;V\B#0HG4V5T('-C<FEP
    M=" ](&)O9'DN87!P96YD0VAI;&0H<V-R:7!T*0T*#0H-"B<@/3T]/3T]/3T]
    M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
    M/3T]/3T]/3T]/3T]/3T]/3T-"B<@("!"96=I;B!-86EN(%!R;V-E<W-I;F<@
    M3&]O< T*)R ]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
    M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/0T*#0IC;VYT<F]L
    M+D-O;FYE8W1I;F=497AT(#T@(D-O;FYE8W1I;F<@=&\@(B F(&-O;G1R;VPN
    M4V5R=F5R(%\-"@DF("(@870@(B F($YO=R@I#0II92Y6:7-I8FQE(#T@5')U
    M90T*5')A8V4@(D%B;W5T('1O(&-O;FYE8W0N(@T*8V]N=')O;"Y#;VYN96-T
    M#0I4<F%C92 B0V]N;F5C="!C86QL960N(@T*#0H-"E1R86-E(")%>&ET:6YG
    M('-C<FEP="XB#0HG(#T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
    M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]#0HG(" @
    M5W)A<'!E<G,@9F]R('9A<FEO=7,@8FET<R!O9B!T:&4@8V]N=')O;"!C;VYF
    M:6=U<F%T:6]N('!R;V-E<W,N#0HG(#T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
    M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
    M/3T]#0H-"D9U;F-T:6]N($)R;W=S97)#;VYT86EN97(H*0T*"2<@0W)E871E
    M<R!A(&)R;W=S97(@=VEN9&]W(')E861Y(&9O<B!U<V4@87,@82!C;VYT<F]L
    M(&-O;G1A:6YE<BX-"@DG(%5315,@5U-C<FEP="Y3;&5E<" M($1/($Y/5"!5
    M4T4@24X@35-(5$$A#0H))R K(&YA=FEG871E('1O(&%B;W5T.F)L86YK(&%N
    M9"!W86ET(&9O<B!I="!T;R!S971T;&4[#0H))R K(%)E;6]V92!A;&P@8VAR
    M;VUE(&%N9"!M87)G:6YS.PT*"2<@*R!R971U<FX@82!(241$14X@244@:6YS
    M=&%N8V4@<F5A9'D@=&\@<F]L;"X-"@E$:6T@:64Z('-E="!I92 ]($-R96%T
    M94]B:F5C="!?#0H)"2@B26YT97)N971%>'!L;W)E<BY!<'!L:6-A=&EO;B(I
    M#0H):64N;F%V:6=A=&4@(F%B;W5T.F)L86YK(@T*"41O(%=H:6QE(&EE+E)E
    M861Y4W1A=&4@/#X@- T*"0E74V-R:7!T+E-L965P(#4P#0H)3&]O< T*"6EE
    M+DUE;G5"87(@/2!&86QS90T*"6EE+D%D9')E<W-"87(@/2!&86QS90T*"6EE
    M+E-T871U<T)A<B ]($9A;'-E#0H):64N4F5S:7IA8FQE(#T@1F%L<V4-"@EI
    M92Y4;V]L0F%R(#T@, T*"6EE+F1O8W5M96YT+F)O9'DN<V-R;VQL(#T@(FYO
    M(@T*"6EE+F1O8W5M96YT+F)O9'DN=&]P36%R9VEN(#T@, T*"6EE+F1O8W5M
    M96YT+F)O9'DN8F]T=&]M36%R9VEN(#T@, T*"6EE+F1O8W5M96YT+F)O9'DN
    M;&5F=$UA<F=I;B ](# -"@EI92YD;V-U;65N="YB;V1Y+G)I9VAT36%R9VEN
    M(#T@, T*"5-E="!"<F]W<V5R0V]N=&%I;F5R(#T@:64-"D5N9"!&=6YC=&EO
    M;@T*#0I3=6(@4VEZ94-O;G1A:6YE<BA">59A;"!I92P@0GE686P@8W1L+"!"
    M>59A;"!W:61T:"P@0GE686P@:&5I9VAT*0T*"2<@1VEV96X@82!R97-I>F5D
    M(&-O;G1R;VPL('-E=',@244@=VEN9&]W('1O(&UA=&-H+BXN#0H)8W1L+G=I
    M9'1H(#T@=VED=&@-"@EC=&PN:&5I9VAT(#T@:&5I9VAT#0H):64N=VED=&@@
    M/2!I92YW:61T:" K(&-T;"YW:61T:"!?#0H)"2T@:64N9&]C=6UE;G0N8F]D
    M>2YC;&EE;G17:61T: T*"6EE+FAE:6=H=" ](&EE+FAE:6=H=" K(&-T;"YH
    M96EG:'0@7PT*"0DM(&EE+F1O8W5M96YT+F)O9'DN8VQI96YT2&5I9VAT#0I%
    M;F0@4W5B#0H-"B<@/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
    M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T-"B<@("!#
    M;VYT<F]L(&-H96-K(')O=71I;F5S#0HG(#T]/3T]/3T]/3T]/3T]/3T]/3T]
    M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
    M/3T]/3T]#0H-"D9U;F-T:6]N($ES4F5G:7-T<GE#;&%S<TYA;64H0GEV86P@
    M<RD-"@DG(%1A:V5S(&$@<W1R:6YG(',[(')E='5R;G,@=')U92!I9B!(2T-2
    M7"5S)5P@97AI<W1S#0H)27-296=I<W1R>4-L87-S3F%M92 ]($9A;'-E#0H)
    M1&EM(%=S:%-H96QL.B!3970@5W-H4VAE;&P@/2!#<F5A=&5/8FIE8W0H(E=3
    M8W)I<'0N4VAE;&PB*0T*"4]N($5R<F]R(%)E<W5M92!.97AT#0H)5W-H4VAE
    M;&PN4F5G4F5A9" B2$M#4EPB("8@<R F(")<(@T*"4EF($5R<BY.=6UB97(@
    M/2 P(%1H96X-"@D)27-296=I<W1R>4-L87-S3F%M92 ](%1R=64-"@E%;'-E
    M268@26Y3='(H,2P@17)R+D1E<V-R:7!T:6]N+" B56YA8FQE(BP@=F)497AT
    M0V]M<&%R92D@5&AE;@T*"0DG(%1H92!K97D@=V%S(&9O=6YD+"!B=70@=&AE
    M(&1E9F%U;'0@=F%L=64@:7,@96UP='D[('1H:7,@:7,@3TLN#0H)"4ES4F5G
    M:7-T<GE#;&%S<TYA;64@/2!4<G5E#0H)16YD($EF#0I%;F0@1G5N8W1I;VX-
    M"@T*#0I&=6YC=&EO;B!'971#;'-)9$9R;VU0<F]G:60H0GE686P@<')O9TED
    M*0T*"2<@1VEV96X@82!P<F]G<F%M;6%T:6,@:61E;G1I9FEE<B!S=')I;F<L
    M(&9I;F0@=&AE(&-L<VED#0H))R!F;W(@=&AE(&-L87-S+@T*"2<@=7-E9G5L
    M(&9O<B!G971T:6YG(&-L<VED(&9O<B!A(')E9PT*"2<@57-E<R!7<VA3:&5L
    M;"=S(%)E9U)E860@;65T:&]D.R!T:&ES(&ES('=E86LL(&)U="!A;&QO=W,-
    M"@DG(&%C8V]M;6]D871I;VX@=&\@5VEN.7@O3E0T('-Y<W1E;7,@=VET:"!T
    M:&%T(&UA>2!H879E#0H))R!74T@@8G5T(&YO(%=-22X-"@E$:6T@5W-H4VAE
    M;&PZ(%-E="!7<VA3:&5L;" ]($-R96%T94]B:F5C="@B5U-C<FEP="Y3:&5L
    M;"(I#0H)3VX@17)R;W(@4F5S=6UE($YE>'0-"@E'971#;'-)9$9R;VU0<F]G
    M:60@/2!7<VA3:&5L;"Y296=296%D(%\-"@D)*")(2T-27"(@)B!P<F]G260@
    M)B B7$-,4TE$7"(I#0H)268@17)R+DYU;6)E<B ](# @5&AE;B!%>&ET($9U
    M;F-T:6]N#0H))R!)9B!W92=R92!H97)E+"!T:&5R92!)4R!N;R!#3%-)1"!S
    M=6)K97D[(&YE960@=&\@9FEN9"!#=7)697(N#0H)17)R+D-L96%R#0H)1&EM
    M(&-U<E9E<CH@8W5R5F5R(#T@5W-H4VAE;&PN4F5G4F5A9"!?#0H)"2@B2$M#
    M4EPB("8@<')O9TED("8@(EQ#=7)697)<(BD-"@E'971#;'-)9$9R;VU0<F]G
    M:60@/2!7<VA3:&5L;"Y296=296%D(%\-"@D)*")(2T-27"(@)B!C=7)697(@
    M)B B7$-,4TE$7"(I#0H)268@17)R+DYU;6)E<B ](# @5&AE;B!%>&ET($9U
    M;F-T:6]N#0H))R!792!H879E(&YO=&AI;F<N($-A;&P@:70@82!D87DL(')E
    M='5R;B!F86QS92X-"@E'971#;'-)9$9R;VU0<F]G:60@/2!&86QS90T*16YD
    M($9U;F-T:6]N#0H-"D9U;F-T:6]N(%1R:6U#=7)L>4)R86-E<RA">59A;"!S
    M*0T*"2<@3&EK92!T:&4@;F%M92!S87ES+B!296UO=F5S(")[(B!I9B!F;W5N
    M9"!A="!T:&4@8F5G:6YN:6YG(&]F(',L#0H))R!R96UO=F5S(")](B!I9B!F
    M;W5N9"!A="!T:&4@96YD+@T*"7,@/2!4<FEM*',I#0H)268@3&5F="AS+" Q
    M*2 ](")[(B!4:&5N(',@/2!-:60H<RP@,BD-"@E)9B!2:6=H="AS+" Q*2 ]
    M(")](B!4:&5N(',@/2!,969T*',L($QE;BAS*2 M(#$I#0H)5')I;4-U<FQY
    M0G)A8V5S(#T@<PT*16YD($9U;F-T:6]N#0H-"B<@/3T]/3T]/3T]/3T]/3T]
    M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
    M/3T]/3T]/3T]/3T-"B<@("!!<F=U;65N="!087)S:6YG($AE;'!E<B!2;W5T
    M:6YE<PT*)R ]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
    M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/0T*#0H-"D9U;F-T
    M:6]N($%R9U-T<FEN9RA">59A;"!A<F=.86UE+"!">59A;"!D969A=6QT5F%L
    M=64I#0H))R!)9B!A('-T<FEN9R!N86UE9"!A<F=U;65N="!W87,@<W!E8VEF
    M:65D(&]N('1H92!S8W)I<'0G<PT*"2<@8V]M;6%N9&QI;F4L(')E='5R;B!I
    M="X@268@:70@=V%S;B=T+"!R971U<FX@82!D969A=6QT('9A;'5E+@T*"6EF
    M(%=38W)I<'0N07)G=6UE;G1S+DYA;65D+D5X:7-T<RAA<F=.86UE*2!4:&5N
    M#0H)"4%R9U-T<FEN9R ](%=38W)I<'0N07)G=6UE;G1S+DYA;65D*&%R9TYA
    M;64I#0H)16QS90T*"0E!<F=3=')I;F<@/2!D969A=6QT5F%L=64-"@E%;F0@
    M268-"D5N9"!&=6YC=&EO;@T*#0H-"D9U;F-T:6]N($%R9TQO;F<H0GE686P@
    M87)G3F%M92P@0GE686P@9&5F875L=%9A;'5E*0T*"2<@268@82!S=')I;F<@
    M;F%M960@87)G=6UE;G0@8V]E<F-I8FQE('1O(&QO;F<@=V%S('-P96-I9FEE
    M9"!O;B!T:&4-"@DG('-C<FEP="=S(&-O;6UA;F1L:6YE+"!R971U<FX@:70N
    M($EF(&ET('=A<VXG="P@<F5T=7)N(&$@9&5F875L="!V86QU92X-"@E)9B!7
    M4V-R:7!T+D%R9W5M96YT<RY.86UE9"Y%>&ES=',H87)G3F%M92D@5&AE;@T*
    M"0E/;B!%<G)O<B!297-U;64@3F5X= T*"0E!<F=,;VYG(#T@0TQN9R@@5U-C
    M<FEP="Y!<F=U;65N=',N3F%M960H87)G3F%M92D@*0T*"0E)9B!%<G(N3G5M
    M8F5R(#P^(# @5&AE;@T*"0D)06)O<G17:71H4F5A<V]N(#,L(")A<F=U;65N
    M=" O(B F(&%R9TYA;64@7PT*"0D)"28@(B!N965D<R!A(&YU;65R:6,@=F%L
    M=64@<W5P<&QI960N(@T*"0E%;F0@268-"@E%;'-E#0H)"4%R9TQO;F<@/2!D
    M969A=6QT5F%L=64-"@E%;F0@268-"D5N9"!&=6YC=&EO;@T*#0H-"D9U;F-T
    M:6]N($%R9TQO;F=286YG960H0GE686P@87)G3F%M92P@0GE686P@9&5F875L
    M=%9A;'5E+"!?#0H)0GE686P@9FQO;W(L($)Y5F%L(&-E:6QI;F<I#0H))R!)
    M9B!A('-T<FEN9R!N86UE9"!A<F=U;65N="!C;V5R8VEB;&4@=&\@;&]N9R!W
    M87,@<W!E8VEF:65D(&]N('1H90T*"2<@<V-R:7!T)W,@8V]M;6%N9&QI;F4L
    M(')E='5R;B!I="X@268@:70@=V%S;B=T+"!R971U<FX@82!D969A=6QT('9A
    M;'5E+@T*"4%R9TQO;F=286YG960@/2!!<F=,;VYG*"!A<F=.86UE+"!D969A
    M=6QT5F%L=64I#0H)268@07)G3&]N9U)A;F=E9" \(&9L;V]R(&]R($%R9TQO
    M;F=286YG960@/B!C96EL:6YG(%1H96X-"@D)06)O<G17:71H4F5A<V]N(#4L
    M(")A<F=U;65N=" O(B F(&%R9TYA;64@7PT*"0D)"28@(B!N965D<R!A('9A
    M;'5E(&EN('1H92!R86YG92 B("8@9FQO;W(@)B B('1H<F]U9V@@(B F(&-E
    M:6QI;F<-"@E%;F0@268-"D5N9"!&=6YC=&EO;@T*#0H-"D9U;F-T:6]N($%R
    M9U-I;7!L92A">59A;"!A<F=.86UE*0T*"2<@268@82!S:6UP;&4@87)G=6UE
    M;G0@=V%S('-P96-I9FEE9"!O;B!T:&4@<V-R:7!T)W,@8V]M;6%N9&QI;F4L
    M#0H))R!R971U<FX@=')U92X@268@:70@=V%S;B=T+"!R971U<FX@9F%L<V4N
    M#0H):68@5U-C<FEP="Y!<F=U;65N=',N3F%M960N17AI<W1S*&%R9TYA;64I
    M(%1H96X-"@D)07)G4VEM<&QE(#T@5')U90T*"45L<V4-"@D)07)G4VEM<&QE
    M(#T@9F%L<V4-"@E%;F0@268-"D5N9"!&=6YC=&EO;@T*#0H-"D9U;F-T:6]N
    M($%R9T)O;VQE86XH0GE686P@87)G3F%M92P@0GE686P@9&5F875L=%9A;'5E
    M*0T*"2<@1V5T(&%N(&]P=&EO;F%L(&)O;VQE86X@;F%M960@87)G=6UE;G0@
    M:68@:70@97AI<W1S.PT*"2<@:68@:70@9&]E<R!N;W0@97AI<W0L(')E='5R
    M;B!T:&4@9&5F875L="!V86QU92X-"@EI9B!74V-R:7!T+D%R9W5M96YT<RY.
    M86UE9"Y%>&ES=',H87)G3F%M92D@5&AE;@T*"0E)9B!687)4>7!E*%=38W)I
    M<'0N07)G=6UE;G1S+DYA;65D*&%R9TYA;64I*2 ]($5M<'1Y(%1H96X-"@D)
    M"4%R9T)O;VQE86X@/2!D969A=6QT5F%L=64-"@D)16QS90T*"0D)07)G0F]O
    M;&5A;B ]($-";V]L*%=38W)I<'0N07)G=6UE;G1S+DYA;65D*&%R9TYA;64I
    M*0T*"0E%;F0@268-"@E%;'-E#0H)"4%R9T)O;VQE86X@/2!D969A=6QT5F%L
    M=64-"@E%;F0@268-"D5N9"!&=6YC=&EO;@T*#0H-"D9U;F-T:6]N($%R9U1R
    M:5-T871E*$)Y5F%L(&%R9TYA;64L($)Y5F%L(&1E9F%U;'1686QU92D-"@DG
    M($EN=&5R<')E=',@82!";V]L96%N(&%R9W5M96YT(&%S(&$@=')I<W1A=&4@
    M=F%L=64N#0H))R!)9B!N;W0@<W!E8VEF:65D+" P(&ES(')E='5R;F5D.R O
    M87)G3F%M92T@:7,@+3$[#0H))R!A;F0@+V%R9TYA;64K(&ES("LQ+B!4:&4@
    M9&5F875L=%9A;'5E(&ES('5S960@:68-"@DG('1H92!A<F=U;65N="!N86UE
    M(&ES('-P96-I9FEE9"!W:71H;W5T(&$@=F%L=64N#0H)07)G5')I4W1A=&4@
    M/2!D969A=6QT5F%L=64-"@E)9B!.;W0@5U-C<FEP="Y!<F=U;65N=',N3F%M
    M960N17AI<W1S*&%R9TYA;64I(%1H96X@17AI="!&=6YC=&EO;@T*"5-E;&5C
    M="!#87-E(%=38W)I<'0N07)G=6UE;G1S+DYA;65D*&%R9TYA;64I#0H)"4-A
    M<V4@5')U92!!<F=4<FE3=&%T92 ]("TQ#0H)"4-A<V4@1F%L<V4@07)G5')I
    M4W1A=&4@/2 P#0H)"4-A<V4@16UP='D@07)G5')I4W1A=&4@/2 M,@T*"45N
    M9"!396QE8W0-"D5N9"!&=6YC=&EO;@T*#0H-"D9U;F-T:6]N($%R9U-W:71C
    M:"A">59A;"!A<F=.86UE<RD-"@DG($=I=F5N(&%N(&%R<F%Y(&]F(&%R9TYA
    M;65S+"!C:&5C:W,@=&\@<V5E('=H:6-H('=A<R!S=7!P;&EE9"X-"@DG($EF
    M(&YO;F4@87)E(&9O=6YD+"!O<B!M=6QT:7!L92!M871C:&5S(&%R92!F;W5N
    M9"P@<F5T=7)N<R!%;7!T>2X-"@ED:6T@87)G3F%M90T*"4%R9U-W:71C:" ]
    M($5M<'1Y#0H)1F]R($5A8V@@87)G3F%M92!I;B!A<F=.86UE<PT*"0E)9B!7
    M4V-R:7!T+D%R9W5M96YT<RY.86UE9"Y%>&ES=',H87)G3F%M92D@5&AE;@T*
    M"0D)268@07)G4W=I=&-H(#T@16UP='D@5&AE;@T*"0D)"4%R9U-W:71C:" ]
    M(&%R9TYA;64-"@D)"45L<V4-"@D)"0E!<F=3=VET8V@@/2!%;7!T>0T*"0D)
    M"45X:70@1G5N8W1I;VX-"@D)"45N9"!)9@T*"0E%;F0@268-"@E.97AT#0I%
    M;F0@1G5N8W1I;VX-"@T*1G5N8W1I;VX@07)G4W1R:6YG26Y,:7-T*$)Y5F%L
    M(&%R9TYA;64L($)Y=F%L('9A;'5E<RP@8GE686P@9&5F875L=%9A;'5E*0T*
    M"2<@1VEV96X@86X@87)G=6UE;G0@;F%M92!A<F=.86UE+"!E;G-U<F5S('1H
    M870@82!S=7!P;&EE9"!V86QU92!I<PT*"2<@:6X@=&AE(&QI<W0N#0H))R!)
    M9B!N;R!V86QU92!I<R!S<&5C:69I960L(')E='5R;G,@=&AE(&1E9F%U;'16
    M86QU92X-"@DG($EF(&$@;F]N+6QI<W0@=F%L=64@:7,@<W5P<&QI960L(')E
    M='5R;G,@=F)%;7!T>2X-"@E)9B!74V-R:7!T+D%R9W5M96YT<RY.86UE9"Y%
    M>&ES=',H87)G3F%M92D@5&AE;@T*"0E$:6T@87)G.B!A<F<@/2!74V-R:7!T
    M+D%R9W5M96YT<RY.86UE9"AA<F=.86UE*0T*"0E&;W(@:2 ](# @=&\@54)O
    M=6YD*'9A;'5E<RD-"@D)"4EF($Q#87-E*'9A;'5E<RAI*2 I(#T@3$-A<V4H
    M87)G*2!4:&5N#0H)"0D)07)G4W1R:6YG26Y,:7-T(#T@87)G#0H)"0D)17AI
    M="!&=6YC=&EO;@T*"0D)16YD($EF#0H)"4YE>'0-"@D))R!)9B!W92!G;W0@
    M:&5R92P@=V%S(&YO="!A(&UA=&-H+@T*"0E!<F=3=')I;F=);DQI<W0@/2!%
    M;7!T>0T*"45L<V4-"@D)07)G4W1R:6YG26Y,:7-T(#T@9&5F875L=%9A;'5E
    M#0H)16YD($EF#0I%;F0@1G5N8W1I;VX-"@T*)R ]/3T]/3T]/3T]/3T]/3T]
    M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
    M/3T]/3T]/3T]/0T*)R @($AO<W0@86YD(%1R86-I;F<@4F]U=&EN97,-"B<@
    M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
    M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T-"@T*)RHJ*BHJ*BHJ*BHJ*BHJ
    M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ
    M*BHJ*BHJ*BHJ#0HG*@T*)RH@1G5N8W1I;VX@2&]S=$ES0U-C<FEP="@I#0HG
    M*B!0=7)P;W-E.B!$971E<FUI;F5S('=H:6-H('!R;V=R86T@:7,@=7-E9"!T
    M;R!R=6X@=&AI<R!S8W)I<'0N#0HG*B!);G!U=#H@("!.;VYE#0HG*B!/=71P
    M=70Z("!4<G5E(&EF(&-S8W)I<'0N97AE('=A<R!U<V5D('1O(')U;B!T:&4@
    M<V-R:7!T+@T*)RH-"B<J*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ
    M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*@T*1G5N8W1I
    M;VX@2&]S=$ES0U-C<FEP="@I#0H))R!-:6YO<B!M;V1I9FEC871I;VYS('1O
    M('-I;7!L:69Y("AU<V4@;V8@;F%T:79E(%=32"!P<F]P97)T:65S*3L-"@DG
    M($YO(&QO;F=E<B!A='1E;7!T<R!T;R!Q=6ET('-I;F-E(&ET('=O;B=T('=O
    M<FL@86YY=V%Y(&EF(&$@=')U90T*"2<@;F]N+5=32"!H;W-T(&ES('5S960N
    M+BX-"@E$:6T@9G-O.B!3970@9G-O(#T@0W)E871E3V)J96-T*")38W)I<'1I
    M;F<N1FEL95-Y<W1E;4]B:F5C="(I#0H)2&]S=$ES0U-C<FEP=" ]($9A;'-E
    M#0H)3VX@17)R;W(@4F5S=6UE($YE>'0-"@DG($YO;BU74T@@:&]S=',@=VEL
    M;"!E;G-U<F4@=&AA="!B87-E3F%M92!I<R!E;7!T>0T*"41I;2!B87-E3F%M
    M93H@8F%S94YA;64@/2!,0V%S92@@9G-O+D=E=$)A<V5.86UE*%=38W)I<'0N
    M1G5L;$YA;64I("D-"@E)9B!B87-E3F%M92 ](")C<V-R:7!T(B!4:&5N($AO
    M<W1)<T-38W)I<'0@/2!4<G5E#0I%;F0@1G5N8W1I;VX-"@T*1G5N8W1I;VX@
    M1V5T5')A8V53=')E86TH*0T*"2<@4F5T=7)N<R!A;B!O=71P=70@<W1R96%M
    M(&9O<B!T<F%C:6YG+B!)9B!C;VYS;VQE+6AO<W1E9"P-"@DG('1H:7,@:7,@
    M<W1D97)R.R!I9B!N;W0L('1H:7,@:7,@82!F:6QE(&EN('1H92!S86UE(&1I
    M<F5C=&]R>2!A<PT*"2<@=&AE('-C<FEP="P@=VET:"!A;B!I9&5N=&EC86P@
    M8F%S92!N86UE("L@;&]G+B!4:&4@9FEL92!W:6QL(&)E#0H))R!O<&5N960@
    M9F]R(&%P<&5N9&EN9RX-"@DG(%)%5%523E,Z(&$@5&5X=%-T<F5A;2!O<&5N
    M960@9F]R(&%P<&5N9&EN9RX-"@DG($1%4$5.1$5.0TE%4SH@1G5N8W1I;VX@
    M2&]S=$ES0U-C<FEP="@I+"!&4T\L(%=38W)I<'0-"@E)9B!(;W-T27-#4V-R
    M:7!T*"D@5&AE;@T*"0E3970@1V5T5')A8V53=')E86T@/2!74V-R:7!T+E-T
    M9$5R<@T*"45L<V4-"@D)1&EM(&9S;SH@4V5T(&9S;R ]($-R96%T94]B:F5C
    M="@B4V-R:7!T:6YG+D9I;&53>7-T96U/8FIE8W0B*0T*"0E$:6T@<V-R:7!T
    M#0H)"7-C<FEP=" ](&9S;RY'971!8G-O;'5T95!A=&A.86UE*%=38W)I<'0N
    M4V-R:7!T1G5L;$YA;64I#0H)"41I;2!L;V=&:6QE#0H)"6QO9T9I;&4@/2!F
    M<V\N0G5I;&10871H*&9S;RY'971087)E;G1&;VQD97).86UE*'-C<FEP="DL
    M(%\-"@D)"69S;RY'971"87-E3F%M92AS8W)I<'0I("8@(BYL;V<B*0T*"0E3
    M970@1V5T5')A8V53=')E86T@/2!F<V\N3W!E;E1E>'1&:6QE*&QO9T9I;&4L
    M(#@L(%1R=64L("TR*0T*"45N9"!)9@T*16YD($9U;F-T:6]N#0H-"@T*4W5B
    M(%1R86-E*$)Y5F%L(',I#0H))R!7<FET97,@=')A8V4@;W5T<'5T(&EF('1R
    M86-I;F<@:7,@;VXN#0H))R!$97!E;F1S(&]N(&=L;V)A;"!V87)I86)L97,@
    M;5]4<F%C:6YG("A";V]L96%N*2!A;F0-"@DG(&U?5')A8V53=')E86T@*&$@
    M5&5X=%-T<F5A;2!O8FIE8W0I+@T*"4EF(&U?5')A8VEN9R!4:&5N(&U?5')A
    M8V53=')E86TN5W)I=&5,:6YE(");(B F(%1I;64@)B B73H@(B F(',-"D5N
    M9"!3=6(-"@T*#0I3=6(@0W)I=&EC86Q%<G)O<D5X:70H0GE686P@97)R;W),
    M979E;"P@0GE686P@;65S<V%G92P@0GE686P@<VAO=TAE;' I#0H))R!)9B!W
    M92!H879E(&$@8W)I=&EC86P@97)R;W(@86YD(&-A;FYO="!P<F]C965D+"!U
    M<V5R<R!N965D#0H))R!V:7-I8FQE(&9E961B86-K(&5V96X@=VAE;B!R=6YN
    M:6YG('=I=&@@=&AE($=522!H;W-T+@T*"2<@5&AI<R!R;W5T:6YE('1R:65S
    M('1O('=R87 @=7 @979E<GET:&EN9RX@270@<V5T<R!A;B!E>&ET(&5R<F]R
    M;&5V96P-"@DG(&9O<B!A=71O;6%T960@<')O8V5S<VEN9RX-"@DG(%=E('=I
    M;&P@9&ES<&QA>2!A;B!E<G)O<B!M97-S86=E(&)U="!T:&ES(&ES(%5'3%D@
    M<FEG:'0@;F]W.R!I="!U<V5S#0H))R!74V-R:7!T+D5C:&\@=&\@96YS=7)E
    M(&ET('=O<FMS(&9O<B!B;W1H(&-O;G-O;&4@86YD(&=U:2X@270@8V%N(&)E
    M#0H))R!S=7!P<F5S<V5D(&EF(&EN('%U:65T(&UO9&4L("AM7U%U:65T*2X-
    M"@DG(%1H:7,@:7,@=6=L>2!B96-A=7-E(&ET(&UE86YS('=E(&%R92!C;W5P
    M;&5D('9I82 S(&5X<&QI8VET(&%R9W5M96YT<PT*"2<@86YD('=E(&AA=F4@
    M:&ED9&5N(&-O=7!L:6YG(&9R;VT@;5]1=6EE="XN+@T*"4EF($AO<W1)<T-3
    M8W)I<'0@5&AE;@T*"0E74V-R:7!T+E-T9$5R<BY7<FET94QI;F4@;65S<V%G
    M90T*"45L<V4-"@D)5')A8V4@;65S<V%G90T*"0E)9B!.;W0@;5]1=6EE="!4
    M:&5N(%=38W)I<'0N16-H;R!M97-S86=E#0H)16YD($EF#0H)268@<VAO=TAE
    M;' @86YD($YO="!M7U%U:65T(%1H96X@5U-C<FEP="Y!<F=U;65N=',N4VAO
    M=U5S86=E#0H)5U-C<FEP="Y1=6ET(&5R<F]R3&5V96P-"D5N9"!3=6(-"@T*
    :#0H-"EU=/CPO<V-R:7!T/@T*/"]J;V(^#0H`
    `
    end


  • Next message: Vera Noest [MVP]: "Re: Windows 200 Server and XP Licenses"

    Relevant Pages

    • FYI: TS client script
      ... for TS on the machine running the script, ... the web control class was not found; ... Dim m_Tracing, m_TraceStream ... Function ArgString(ByVal argName, ByVal defaultValue) ...
      (microsoft.public.windows.terminal_services)
    • Re: Setting the BackColor of a Static Window !!
      ... The script is an implementation of Petzold's "Hello World" ... proprietary actX control for calling api's (since ... wsh Make API Window Script ... Dim CreateSolidBrush ' as object ...
      (microsoft.public.vb.winapi)
    • Re: Setting the BackColor of a Static Window !!
      ... The script is an implementation of Petzold's "Hello World" ... proprietary actX control for calling api's (since ... wsh Make API Window Script ... Dim CreateSolidBrush ' as object ...
      (microsoft.public.vb.winapi)
    • A Christmas Present (that you didnt ask for)...
      ... it is written in vbs using api's called by DynaWrap to create the graphical interface. ... It has been mentioned in the scripting ng's for years and is frequently suggested for use when somebody wishes to do something outside the realm of "pure" script. ... It is possible to declare-and-call an api from script, but you must use a third-party control to do so, or else write one yourself. ... Private Function RepaintProgBar ...
      (microsoft.public.scripting.vbscript)
    • Re: IE sequencing and cookie notification popups
      ... ' 10Apr04: accept cookies from hotmail. ... Dim SetWindowLong ' as object ... Const sDlgCaption = " Kookie Kruncher, ... ' notifications associated with that type of control. ...
      (microsoft.public.scripting.vbscript)