Click here to Skip to main content
Click here to Skip to main content
Add your own
alternative version

Developing Next Generation Smart Clients using .NET 2.0 working with Existing .NET 1.1 SOA-based XML Web Services

, 16 Aug 2005
Comprehensive guide to development of .NET 2.0 Smart Clients working with existing Service Oriented Architecture based XML web services, fully utilizing the Enterprise Library
smartclientsoa_src.zip
SmartClient
Client
SMI.App
Controls
Forms
Modules
Properties
app.manifest
Settings.settings
Resources
240.png
Bottom.png
BuilderDialog_delete.bmp
DarkBlue.bmp
download-xp.gif
Earth.png
fldropen.png
iSync.gif
Leonardo_da_Vinci_My_Computer.png
LightBlue.bmp
LoginBox.jpg
LoginButton.jpg
LoginButton1.jpg
LoginButton2.jpg
Logo1.png
LogoPic.jpg
Middle.png
Refresh.bmp
refresh.ico
refresh1.ico
RightArrow.bmp
SuccessComplete.bmp
Task.bmp
Tasks.png
Top.png
TurnOffButton.bmp
wi0062-32.ico
wi0063-32.ico
wi0064-16.ico
wi0064-32.ico
SmartInstitute.App.csproj.user
wi0064-32.ico
SMI.Automation
Commands
Course
Framework
Security
Students
UI
Controls
Documents
MiscDocuments
StudentDocuments
Factories
Forms
Helpers
Misc
Properties
Settings.settings
Resources
BuilderDialog_delete.bmp
LogoSmall.bmp
Misho.jpg
My Pic 7.jpg
table.ico
SmartInstitute.Automation.csproj.user
Web References
SmartInstituteServices.AccountService
Account.datasource
AccountService.disco
AccountService.wsdl
Reference.map
SmartInstituteServices.CourseService
Course.datasource
CourseService.disco
CourseService.wsdl
Reference.map
SmartInstituteServices.SecurityService
Reference.map
SecurityService.disco
SecurityService.wsdl
SmartInstituteServices.StudentService
Reference.map
Student.datasource
StudentService.disco
StudentService.wsdl
SMI.ObjectModel.Enhanced
Base
Models
Properties
Settings.settings
Settings
SmartInstitute.ObjectModel.csproj.user
UMS.ObjectModel.Enhanced.csproj.user
SMI.Objects
SmartInstitute.csproj.user
CodeSmith
Tier
BusinessLogicLayer
Entity.cst
EntityBase.cst
EntityCollection.cst
EntityCollectionBase.cst
Enum.cst
IEntity.cst
DataAccessLayer
App.config.cst
CommonSql.cst
Configuration.cst
DBConcurrencyException.cst
DBException.cst
Factories
EntityRepositoryFactory.cst
IEntityRepository.cst
SqlClient
CVS
Entries
Entries.Extra
Entries.Extra.Old
Entries.Old
Repository
Root
TortoiseCVS.Status
SqlEntityRepository.cst
SqlEntityRepositoryBase.cst
TransactionManager.cst
UnitTests
EntityRepositoryTest.cst
WebServiceClient
WsEntityRepository.cst
WsEntityRepositoryBase.cst
Main.cst
nant.cst
References
GotDotNet.ApplicationBlocks.Data.dll
Microsoft.ApplicationBlocks.Data.dll
nunit.framework.dll
StoredProcedures.cst
vsnet2003.project.cst
vsnet2003.solution.cst
vsnet2005.project.cst
vsnet2005.solution.cst
WebService
Web.config.cst
WebService.cst
Database
SmartInstitute.bak
Library
Microsoft.Practices.EnterpriseLibrary.Caching.dll
Microsoft.Practices.EnterpriseLibrary.Common.dll
Microsoft.Practices.EnterpriseLibrary.Configuration.dll
Microsoft.Practices.EnterpriseLibrary.Data.dll
Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.dll
Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Logging.dll
Microsoft.Practices.EnterpriseLibrary.Logging.dll
Microsoft.Practices.EnterpriseLibrary.Security.ActiveDirectory.dll
Microsoft.Practices.EnterpriseLibrary.Security.Cache.CachingStore.dll
Microsoft.Practices.EnterpriseLibrary.Security.Cryptography.dll
Microsoft.Practices.EnterpriseLibrary.Security.Database.Authentication.dll
Microsoft.Practices.EnterpriseLibrary.Security.Database.dll
Microsoft.Practices.EnterpriseLibrary.Security.dll
nunit.core.dll
nunit.framework.dll
Server
BLL
SmartInstitute.csproj.user
DAL
Factories
SmartInstitute.DataAccessLayer.csproj.user
SqlClient
Utilities
GotDotNet.ApplicationBlocks.Data.dll
Microsoft.ApplicationBlocks.Data.dll
nunit.framework.dll
UnitTests
SmartInstitute.build
SmartInstitute.Facade
FacadeTest
SmartInstitute.Facade.csproj.user
SmartInstitute.Test
App.ico
SmartInstitute.Test.csproj.user
SmartInstituteServices
Global.asax
log
SmartInstituteServices.csproj.webinfo
SQL
Setup
SecurityDatabase
SecurityDatabaseConsole
App.ico
SecurityDatabaseConsole.exe.manifest
SR.strings
Tests
Tools.SecurityDatabaseConsole.csproj.user
<?xml version="1.0" encoding="utf-8"?>
<root>
  <!-- 
    Microsoft ResX Schema 
    
    Version 2.0
    
    The primary goals of this format is to allow a simple XML format 
    that is mostly human readable. The generation and parsing of the 
    various data types are done through the TypeConverter classes 
    associated with the data types.
    
    Example:
    
    ... ado.net/XML headers & schema ...
    <resheader name="resmimetype">text/microsoft-resx</resheader>
    <resheader name="version">2.0</resheader>
    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
        <value>[base64 mime encoded serialized .NET Framework object]</value>
    </data>
    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
        <comment>This is a comment</comment>
    </data>
                
    There are any number of "resheader" rows that contain simple 
    name/value pairs.
    
    Each data row contains a name, and value. The row also contains a 
    type or mimetype. Type corresponds to a .NET class that support 
    text/value conversion through the TypeConverter architecture. 
    Classes that don't support this are serialized and stored with the 
    mimetype set.
    
    The mimetype is used for serialized objects, and tells the 
    ResXResourceReader how to depersist the object. This is currently not 
    extensible. For a given mimetype the value must be set accordingly:
    
    Note - application/x-microsoft.net.object.binary.base64 is the format 
    that the ResXResourceWriter will generate, however the reader can 
    read any of the formats listed below.
    
    mimetype: application/x-microsoft.net.object.binary.base64
    value   : The object must be serialized with 
            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
            : and then encoded with base64 encoding.
    
    mimetype: application/x-microsoft.net.object.soap.base64
    value   : The object must be serialized with 
            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
            : and then encoded with base64 encoding.

    mimetype: application/x-microsoft.net.object.bytearray.base64
    value   : The object must be serialized into a byte array 
            : using a System.ComponentModel.TypeConverter
            : and then encoded with base64 encoding.
    -->
  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xsd:element name="root" msdata:IsDataSet="true">
      <xsd:complexType>
        <xsd:choice maxOccurs="unbounded">
          <xsd:element name="metadata">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" />
              </xsd:sequence>
              <xsd:attribute name="name" use="required" type="xsd:string" />
              <xsd:attribute name="type" type="xsd:string" />
              <xsd:attribute name="mimetype" type="xsd:string" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="assembly">
            <xsd:complexType>
              <xsd:attribute name="alias" type="xsd:string" />
              <xsd:attribute name="name" type="xsd:string" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="data">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="resheader">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" />
            </xsd:complexType>
          </xsd:element>
        </xsd:choice>
      </xsd:complexType>
    </xsd:element>
  </xsd:schema>
  <resheader name="resmimetype">
    <value>text/microsoft-resx</value>
  </resheader>
  <resheader name="version">
    <value>2.0</value>
  </resheader>
  <resheader name="reader">
    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <resheader name="writer">
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <data name="noticeLabel.Text">
    <value xml:space="preserve">Always keep your application upto date
Do not keep this program running and leave your desktop. Someone may use your login to do unauthorized task.
If you want to go offline, first open the students, then go offline.
When you go online, click on send/receive button to synchronize with the server</value>
  </data>
  <data name="tipsLabel.Text">
    <value xml:space="preserve">You can keep the application running as long as you want. But please make sure no one gets access to it as long as you are currently logged in. Your actions are logged thoroughly. So, you will be resposible for any illegal operation performed.

Make sure you logoff before you leave the computer.</value>
  </data>
  <metadata name="worker.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    <value>17, 17</value>
  </metadata>
  <assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
  <data name="$this.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
    <value>
        /9j/4AAQSkZJRgABAgEAYABgAAD/7Qc6UGhvdG9zaG9wIDMuMAA4QklNA+0KUmVzb2x1dGlvbgAAAAAQ
        AGAAAAABAAEAYAAAAAEAAThCSU0EDRhGWCBHbG9iYWwgTGlnaHRpbmcgQW5nbGUAAAAABAAAAHg4QklN
        A/MLUHJpbnQgRmxhZ3MAAAAJAAAAAAAAAAABADhCSU0ECg5Db3B5cmlnaHQgRmxhZwAAAAABAAA4QklN
        JxAUSmFwYW5lc2UgUHJpbnQgRmxhZ3MAAAAACgABAAAAAAAAAAI4QklNA/UXQ29sb3IgSGFsZnRvbmUg
        U2V0dGluZ3MAAABIAC9mZgABAGxmZgAGAAAAAAABAC9mZgABAKGZmgAGAAAAAAABADIAAAABAFoAAAAG
        AAAAAAABADUAAAABAC0AAAAGAAAAAAABOEJJTQP4F0NvbG9yIFRyYW5zZmVyIFNldHRpbmdzAAAAcAAA
        /////////////////////////////wPoAAAAAP////////////////////////////8D6AAAAAD/////
        ////////////////////////A+gAAAAA/////////////////////////////wPoAAA4QklNBAgGR3Vp
        ZGVzAAAAABAAAAABAAACQAAAAkAAAAAAOEJJTQQeDVVSTCBvdmVycmlkZXMAAAAEAAAAADhCSU0EGgZT
        bGljZXMAAAAAcwAAAAYAAAAAAAAAAAAAAlgAAAH0AAAACQBXAEkAbgBkAG8AdwBzADkAOAAAAAEAAAAA
        AAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAB9AAAAlgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAOEJJTQQREUlDQyBVbnRhZ2dlZCBGbGFnAAAAAQEAOEJJTQQUF0xheWVyIElEIEdlbmVyYXRv
        ciBCYXNlAAAABAAAAAE4QklNBAwVTmV3IFdpbmRvd3MgVGh1bWJuYWlsAAAEMgAAAAEAAABdAAAAcAAA
        ARgAAHqAAAAEFgAYAAH/2P/gABBKRklGAAECAQBIAEgAAP/uAA5BZG9iZQBkgAAAAAH/2wCEAAwICAgJ
        CAwJCQwRCwoLERUPDAwPFRgTExUTExgRDAwMDAwMEQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwB
        DQsLDQ4NEA4OEBQODg4UFA4ODg4UEQwMDAwMEREMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM
        DAwMDP/AABEIAHAAXQMBIgACEQEDEQH/3QAEAAb/xAE/AAABBQEBAQEBAQAAAAAAAAADAAECBAUGBwgJ
        CgsBAAEFAQEBAQEBAAAAAAAAAAEAAgMEBQYHCAkKCxAAAQQBAwIEAgUHBggFAwwzAQACEQMEIRIxBUFR
        YRMicYEyBhSRobFCIyQVUsFiMzRygtFDByWSU/Dh8WNzNRaisoMmRJNUZEXCo3Q2F9JV4mXys4TD03Xj
        80YnlKSFtJXE1OT0pbXF1eX1VmZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3EQACAgECBAQDBAUGBwcGBTUB
        AAIRAyExEgRBUWFxIhMFMoGRFKGxQiPBUtHwMyRi4XKCkkNTFWNzNPElBhaisoMHJjXC0kSTVKMXZEVV
        NnRl4vKzhMPTdePzRpSkhbSVxNTk9KW1xdXl9VZmdoaWprbG1ub2JzdHV2d3h5ent8f/2gAMAwEAAhED
        EQA/ANf7O4u0lrZ0kmTr3/kpeo+13ptkMadXTpIRnmx7iA2AdAAl9jsDPUd7amfm+a0rFaufWujb6dQd
        /qP9zQPzuw/eTWWVG1zgNrAfaAg2ZlnptpYIby4+PkhlthGgMJnDZJK/ioUG7Qa73bnmPLgK5VTjkgho
        jxHZY9VNwMtkFaOI61pAdoe6bOPYroy7h1GUMDZaA4fBU8qtrgQArlZLme3Q9x2SfU5/0h81XBo2WU6h
        xhiyeFZx8MFwnlXW4hnyVqnHDSNE6WXsiOPVJRQxrANo+4IyQEJ1DerNWlP/0OrLR2Cmys2e130Qiirh
        EawBW7avC1Dgw6QBPdWasNro0k9wrFbC74qxXUG691HLIVwgGvVhhpmIlXK8NhHuCJWwEo4EKOUyWSMA
        jbjsaOFPY3wUkky19BiGt8FJJJJKkkkklP8A/9HvAzQfAKQrKsNZoNOw/InDfJScTDTCsbUaNEwYSjMZ
        pqmlcAvS2AipgIEJ00sgUkkkkpSSSSSlJJJJKf/S9PZXLWnyH5FIVBTTo2igsGgcJ0kkEqSSSSUpJJJJ
        SkkkklKSSSSU/wD/0/VUkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJT//U9VSSSSUpJJJJSkkkklKSSSSU
        pJJJJSkkkklP/9X1VJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSU//2ThCSU0EBgxKUEVHIFF1YWxpdHkA
        AAAABwABAAAAAQEA/+4ADkFkb2JlAGSAAAAAAf/bAEMADAgICAkIDAkJDBELCgsRFQ8MDA8VGBMTFRMT
        GBEMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDP/bAEMBDQsLDQ4NEA4OEBQODg4UFA4O
        Dg4UEQwMDAwMEREMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDP/AABEIAlgB9AMBIgAC
        EQEDEQH/xAAfAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgv/xAC1EAACAQMDAgQDBQUEBAAAAX0B
        AgMABBEFEiExQQYTUWEHInEUMoGRoQgjQrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVG
        R0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3
        uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf4+fr/xAAfAQADAQEBAQEBAQEBAAAA
        AAAAAQIDBAUGBwgJCgv/xAC1EQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGh
        scEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1
        dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri
        4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEAAhEDEQA/AL889wLiUCVwA7YG44ABNIJ7n/nq/wD30allhLTy
        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
        MOxFtH1pQoz05qTbQF9KOYLCBacBTtlOValsLCBaeqd6cqcU8CpbKSECgU4D8KcqH/D608DPOevf/P8A
        dWpKSI9h9OfSl8upQv8A+r604CgdiER0/Z+X/wCupAv/ANalC/lQOxHtpQop+KXFK47DNv8A9elx+dOx
        S0XCw3FGKdRSuMTFGKWii4CYpMU6ii4CYoxS0UXATFGKWigAooooAKKKKACiiigAooooAKKKKACiiigA
        ooooAKKKKAOXzgA96Q+h5/pQOmPzxRj/ACK61sjke7E680mR6fhTsEnr/WjBxz9eaYhuMmlAJ7CnAY/D
        P6UuO3YUgsN2+/txSgf/AKv/ALGlA7U7HGP0oHYAvbipgKYg9qkHpSZSDFIUGc04U7AIpN2GQlB+FJs9
        KlIoxTuKxDsNL5ZqXFGKOYLEaKRyalFJtpwFJsYuKcFz1oUc1Ki1m2Owzy6AtTBfXml2ilzDsRBM0oSp
        AAKWlcLDNlKFAOadj9O1KBii47ABmnBfxzShf/1Yx0p4FIaQBf8A6/8A6DT8d6AKcBQUkAFLRilqShKW
        iigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACi
        iigDlwOOn580v/16UDIH0pdv+fpXWtkcrWrG/X8v/wBf+zRjj+dO2inYwc0BYZg8jvRjn2/OnYpcUAIB
        jrS4pcYpwWi4WGgGn0Y9KUUr3KFFPBplOH+c1LACKQCnUYpJgAFGKUUuKVwG4pcUuKdtpXGItSofemBa
        kTtz9KTGh9HFFKB/9fjNSMCMdevpQPbpSgZ7f/rpfx+hz3oGJt/A/T0zTguPb04pQPy/L0pyj/8AXQOw
        KuKeBQKcB+FA0gApaWipKCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA
        KKKKACiiigAooooAKKKKACiiigAooooA5tR8o+lLinIPkX6CnYrqT0RztasZjtRinEUBaLisIBnmlwKU
        DA/nS4ouMTFKKXHFFIBKWjFLii4CUooxS0mAop2M9KSnAVAxMc04ClxTlX/9VIBAtOApQtOxSuOwgWlA
        xS0uKQxBTh7g/T2xSAenelAz2/AY/wA/xUDF/KlHX3/Wkznv+XrThnoO/b8P+A0AKB37f/qp4poHp+FP
        FBSFFOFIKdSZQUUUUgCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK
        KACiiigAooooAKKKKACiiigAooooAwEHyL7gfypcf5zRH/q1+g/lS/0roWxg9xMUYx/9elxS4piG0tLR
        SuAlLiilxRcBKKXFGKVwClAoxSgUmwFHWnDpQBTlHNIY8CnAYoA/yKWoKCiinAHt+nrQA3p9adge1H0/
        me9HXj/P6fdoGHbr16/jQMdv/wBdHU/Xt1oH5/8A16AHe34e1KOn9Me3tTc9e/qfanCgY8dTTxTFqQf5
        FA0KKWiipKCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA
        ooooAKKKKACiiigAooooAKKKKAMKMfu1+g/lTsUkf+rT/dH8qdWyZg9xMUYpcUYouAmKKdRRcBKMUtGK
        LgJiloxS4pAJTgKAKWgBQPSnLjOaRf8AJpw/KkMkoAzSUo61IxR1z+QpQAePw/X6UD86cPTsKBhjvj/J
        pOnHb9MU6mnp/L8f/wBmgBuOx/Wjqcfp7mj6Uo/THPNACr2/PvTxxx/np9aYP85qRf8AOev/ALLQNDxT
        hTRTx0pMpC0UUUhhRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB
        RRRQAUUUUAFFFFABRRRQAUUUUAFFFFAGJEP3af7o/lTsURf6lP8AdH8qfitEYPcZilxTsUYpgNxRj/8A
        XTsUYoAbS4pcUuDQA3HalxTsf5/CjH/66VxiAUYpcY/z+FOxz/n1oAT/AD/n71OA/wA/nSfX86UZ/wA+
        1IB3H40tID+NKDSGOA7evb/4mnZ4/qOlNH+R704dcjn370DA+nr26UhPPv6++aUYx2/zj/x2kIGPb/65
        /wB6gBvt/Onfp3oAP/6qUdPb9P8AvqgBQD/n/P8AlKeopoH+OMe1SD60FIUU4Ugp1JlBRRRSAKKKKACi
        iigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACi
        iigAooooAyIR+6T/AHRTsDNLCMwx5/ur/IU4r+FXcxaGYpdvbpTsY/8ArUAUANAo204DjP8AnpS/5Hf/
        AGqLhYaB/nFLj+X+f7tLj/P0Apcf0+lAxv8AWjB9KdjHTg0YH5egouAhHp70be31p2Ox/GjHb86QCY5o
        x6/kaXH4/WjFACUoo5/+vRigB6/p0+mad9f8/wD7NMUE9KePbGT/AJ/2qBoOo9ewz06f+g0p7k/jmj9f
        br/Olxj/ACf8/wC5QMaR6/57Uo6g/j9B/l6XA/Lv7flSge34UAKo4/xp4FIB+dOApFIUUtFFIYUUUUAF
        FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAF
        FFFABRRRQAUUUUAZkH+oj/3V/lT8fhTYP9RH/uL/ACp+KoyY0DIxS4HX8vT17Up/z7Ud6AE69P8AGloH
        /wCuj+f8qAE447elHHtS8UZoAPp+Xv1o/wAijNLigBD79KKWigAoo96MGgAopdv49qXA69vX8/71AAoH
        Ge/0p45H8/rSDP49x35P/AacPz/z/D/vNQUH+fwpcf5H+f4aXH40oH+f8/w0DEApQOKdS4oGIBThRRSY
        xaKKKQBRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU
        AFFFFABRRRQAUUUUAFFFFABRRRQBnQD9xH/uL/Kn023A+zxZ/uj27CpMHPX/AD/wKqM2MwPy6UtOxntn
        PTt2pCP/AK1AhKKdt/8ArD86COvr+VADaKdj/PHf/epR6jJ79+f/AEL5qB2GAE0uP/1mnYz+HAPajH6+
        /wD3z2oCw334GfrSj9OPpTsc+h4+v+z3oxnr+X/6/wC7QFhoHT27+lKFx7ev5f8A2VOx/wDX/L+GjH+f
        x/8AQKB2Ex3PXv8AhSgc+9KB3H+f/svmpwX8vb8PagLDccfT8Mf5WnCl2+tKB/kUDsAFLQBSgUDDBpQK
        AMUtSMKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiig
        AooooAKKKKACiiigAooooAKKKKACiiigAooooApW/wDx7xf7i8/gP/iqeR/j7ZOKS2H+jRf9c1/9BqTH
        P4/yJqiBhHX36+vf/wBmox3/AD/D/wDZp2MAZ49j9P8A0GjH/wBc/wCf8/6ygBpHHP5/5H/AqMdv88/7
        tOx3/wA//tf89KMfn3/l6UAJjv6n/Pf5qMf56/53U7H+eOh4o9889f8AP+f/AEZQAmPUZ7Y5owf58/8A
        6qdjrj3HrRj/AD6UDsNx29O3p+jf8DpdpH/1s/5207b27elKAB7UBYaF5/z/AJ/z/wB+3BOKcBTqVx2G
        7aXaKWilcYmKMClooASloooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii
        igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAKtqP9Gh/wBxf5CpMfnT
        bQf6LD/1zX+QqWqEM2+lGP8A9dPx7UYoFYaB6UYp+CaNtFx2G4o/E0/aKMClcLDcUYNOpaLhYbtpcUtF
        K4wooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii
        igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAIbT/j1h/wCua/yFS4FR
        WoK20SsMEIoIPUHFTUAJgUtFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA
        UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA
        UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA
        UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA
        UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA
        UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA
        UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA
        UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA
        UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA
        UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA
        UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA
        UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA
        UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA
        UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA
        UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA
        UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA
        UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA
        UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA
        UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA
        UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA
        UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA
        UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA
        UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA
        UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA
        UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA
        UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA
        UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA
        UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA
        UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA
        UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA
        UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA
        UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA
        UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA
        UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA
        UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA
        UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA
        UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA
        UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA
        UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA
        UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA
        UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA
        UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA
        UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAf/Z
</value>
  </data>
</root>

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here

Share

About the Author


| Advertise | Privacy | Mobile
Web01 | 2.8.140821.2 | Last Updated 17 Aug 2005
Article Copyright 2005 by Omar Al Zabir
Everything else Copyright © CodeProject, 1999-2014
Terms of Service
Layout: fixed | fluid