<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://schema.infor.com/ICM/1"
    xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" jaxb:version="1.0"
    targetNamespace="http://schema.infor.com/ICM/1" elementFormDefault="qualified"
    attributeFormDefault="unqualified" version="1.0">
    <xs:include schemaLocation="./ICM_Common.xsd"/>

    <xs:annotation>
        <xs:appinfo>
            <jaxb:globalBindings>
                <jaxb:javaType name="java.lang.String" xmlType="CDataString" parseMethod="com.infor.isa.agent.common.xml.parser.CDataAdapter.parse" printMethod="com.infor.isa.agent.common.xml.parser.CDataAdapter.print"/>
            </jaxb:globalBindings>

        </xs:appinfo>
    </xs:annotation>

    <xs:element name="Product">
        <xs:annotation>
            <xs:documentation>Root node as per design document http://wiki.infor.com:8080/confluence/display/ICM/ICM-Client+Detail+design</xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="CollectionType">
                    <xs:choice>
                        <xs:element name="Host" type="HostType" minOccurs="1"/>
                        <xs:element name="WebServer" type="WebServerType" minOccurs="1"/>
                        <xs:element name="PerformanceMonitor" type="PerformanceMonitorType"
                            minOccurs="1"/>
                        <xs:element name="Files" type="FileCollectorType" minOccurs="1"/>
                    </xs:choice>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:complexType name="ApacheServerType">
        <xs:sequence>
            <xs:element name="Logs" minOccurs="0">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element minOccurs="0" name="AccessLog" type="xs:string">
                            <xs:annotation>
                                <xs:documentation>\apache\logs\access.log</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element minOccurs="0" name="ErrorLog" type="xs:string">
                            <xs:annotation>
                                <xs:documentation>\apache\logs\error.log</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element minOccurs="0" name="ModJKLog" type="xs:string">
                            <xs:annotation>
                                <xs:documentation>\apache\logs\mod_jk.log</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="Configuration">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element minOccurs="0" name="Httpd" type="xs:string">
                            <xs:annotation>
                                <xs:documentation>\apache\conf\httpd.conf</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element minOccurs="0" name="HttpdDefault" type="xs:string">
                            <xs:annotation>
                                <xs:documentation>\apache\conf\httpd.default.conf</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element minOccurs="0" name="ModJK" type="xs:string">
                            <xs:annotation>
                                <xs:documentation>\apache\conf\mod_jk.conf</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element minOccurs="0" name="SSL" type="xs:string">
                            <xs:annotation>
                                <xs:documentation>\apache\conf\ssl.conf</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element minOccurs="0" name="SSLDefault" type="xs:string">
                            <xs:annotation>
                                <xs:documentation>\apache\conf\ssl.default.conf</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element minOccurs="0" name="WorkersProperties" type="xs:string">
                            <xs:annotation>
                                <xs:documentation>\apache\conf\workers.properties</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="BasicServerType">
        <xs:sequence>
            <xs:element name="ServerName" type="xs:string"/>
            <xs:element name="ServerManufacturer" type="xs:string"/>
            <xs:element name="ServerModel" type="xs:string"/>
            <xs:element name="TimeZone" type="xs:string"/>
            <xs:element name="CountProcessors" type="xs:positiveInteger"/>
            <xs:element name="CountDisks" type="xs:positiveInteger"/>
            <xs:element name="CountConfiguredVolumes" type="xs:positiveInteger"/>
            <xs:element name="CountOccupiedMemorySlots" type="xs:positiveInteger"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="DetailedServerType">
        <xs:sequence>
            <xs:element name="Processors">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element maxOccurs="unbounded" name="Processor">
                            <xs:complexType>
                                <xs:sequence>
                                    <xs:element name="ProcessorVendor" type="xs:string"/>
                                    <xs:element name="ProcessorModel" type="xs:string"/>
                                    <xs:element minOccurs="0" name="ProcessorClock"
                                        type="xs:integer"/>
                                    <xs:element name="ProcessorSerialNo" type="xs:string"/>
                                </xs:sequence>
                            </xs:complexType>
                        </xs:element>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="Memory">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element maxOccurs="unbounded" minOccurs="0" name="Slot">
                            <xs:complexType>
                                <xs:sequence>
                                    <xs:element name="SlotID" type="xs:string"/>
                                    <xs:element name="Size" type="xs:integer"/>
                                    <xs:element minOccurs="0" name="Speed" type="xs:integer"/>
                                    <xs:element minOccurs="0" name="Status" type="xs:string"/>
                                </xs:sequence>
                            </xs:complexType>
                        </xs:element>
                        <xs:element maxOccurs="unbounded" minOccurs="0" name="Pool">
                            <xs:annotation>
                                <xs:documentation>system-i memory allocation</xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                                <xs:sequence>
                                    <xs:element name="SystemPool" type="xs:integer"/>
                                    <xs:element name="PoolName" type="xs:string"/>
                                    <xs:element minOccurs="0" name="SubSystem" type="xs:string"/>
                                    <xs:element minOccurs="0" name="Library" type="xs:string"/>
                                    <xs:element name="PoolSize" type="xs:decimal"/>
                                    <xs:element name="ReservedSize" type="xs:decimal"/>
                                    <xs:element name="MaxActive" type="xs:decimal"/>
                                    <xs:element name="PagingOption" type="xs:string"/>
                                </xs:sequence>
                            </xs:complexType>
                        </xs:element>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="Disks">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element maxOccurs="unbounded" name="Disk">
                            <xs:complexType>
                                <xs:sequence>
                                    <xs:element minOccurs="0" name="Model" type="xs:string"/>
                                    <xs:element minOccurs="0" name="Revision" type="xs:string"/>
                                    <xs:element name="SerialNo" type="xs:string"/>
                                    <xs:element name="Capacity" type="xs:integer"/>
                                    <xs:element name="DiskName" type="xs:string"/>
                                </xs:sequence>
                            </xs:complexType>
                        </xs:element>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="ConfiguredVolumes">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element maxOccurs="unbounded" name="Volume">
                            <xs:complexType>
                                <xs:sequence>
                                    <xs:element name="VolumeName" type="xs:string"/>
                                    <xs:element name="Capacity" type="xs:integer"/>
                                    <xs:element minOccurs="0" name="FileSystem" type="xs:string"/>
                                    <xs:element minOccurs="0" name="Wrtitable" type="xs:string"/>
                                    <xs:element minOccurs="0" name="FreeSpace" type="xs:integer"/>
                                    <xs:element minOccurs="0" name="MountPoint" type="xs:string"/>
                                    <xs:element minOccurs="0" name="Protection" type="xs:string"/>
                                </xs:sequence>
                            </xs:complexType>
                        </xs:element>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="NetworkAdapters">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element maxOccurs="unbounded" name="NetworkAdapter">
                            <xs:complexType>
                                <xs:sequence>
                                    <xs:element name="MACAddress" type="xs:string"/>
                                    <xs:element name="IPAddresses">
                                        <xs:complexType>
                                            <xs:sequence>
                                                <xs:element maxOccurs="unbounded" name="IPAddress"
                                                  type="xs:string"/>
                                            </xs:sequence>
                                        </xs:complexType>
                                    </xs:element>
                                    <xs:element name="Domain" type="xs:string"/>
                                    <xs:element maxOccurs="1" name="FullyQualifiedDomainName"
                                        type="xs:string"/>
                                    <xs:element minOccurs="0" name="DefaultGateway" type="xs:string"
                                    />
                                </xs:sequence>
                            </xs:complexType>
                        </xs:element>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element minOccurs="0" name="SwapSpaces">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element minOccurs="0" name="SwapSpace" maxOccurs="unbounded">
                            <xs:complexType>
                                <xs:sequence>
                                    <xs:element name="Location" type="xs:string" minOccurs="0"/>
                                    <xs:element name="InitialSize" type="xs:integer" minOccurs="0"/>
                                    <xs:element name="MaxSize" type="xs:integer" minOccurs="0"/>
                                </xs:sequence>
                            </xs:complexType>
                        </xs:element>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element minOccurs="0" name="HeapSize">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="SystemHeap" type="xs:integer" minOccurs="0"/>
                        <xs:element name="DesktopHeap" type="xs:integer" minOccurs="0"/>
                        <xs:element name="NonInteractiveDesktopHeap" type="xs:integer" minOccurs="0"
                        />
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="EnvironmentVariables">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element maxOccurs="unbounded" name="Variable">
                            <xs:complexType>
                                <xs:sequence>
                                    <xs:element name="VariableName" type="xs:string"/>
                                    <xs:element name="Value" type="xs:string"/>
                                </xs:sequence>
                            </xs:complexType>
                        </xs:element>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="InstalledPrograms">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element maxOccurs="unbounded" name="Program">
                            <xs:annotation>
                                <xs:documentation>Installed Programs on the host machine</xs:documentation>
                                <xs:documentation>Hotfixes included as part of Installed Programs.
These will contain the Hotfix identifier as part of the Program Name (e.g. KB1111111)</xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                                <xs:sequence>
                                    <xs:element name="Bit" type="xs:string"/>
                                    <xs:element name="ProgramName" type="xs:string"/>
                                    <xs:element name="ProgramVersion" type="xs:string" minOccurs="0"/>
                                    <xs:element minOccurs="0" name="ProgramOption" type="xs:string">
                                        <xs:annotation>
                                            <xs:documentation>system-i</xs:documentation>
                                        </xs:annotation>
                                    </xs:element>
                                    <xs:element name="Publisher" type="xs:string" minOccurs="0"/>
                                    <xs:element minOccurs="0" name="InstalledDate" type="xs:string"/>
                                    <xs:element minOccurs="0" name="InstalledLocation"
                                        type="xs:string"/>
                                </xs:sequence>
                            </xs:complexType>
                        </xs:element>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element minOccurs="0" name="JAVARuntime">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element maxOccurs="unbounded" name="JAVAVersion" type="xs:string"/>
                        <xs:element name="Detail" type="xs:string"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element minOccurs="0" name="OperationalAttributes">
                <xs:annotation>
                    <xs:documentation>system-i specific</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="SubSystemDescription" type="xs:string"/>
                        <xs:element name="SubSystemLibrary" type="xs:string"/>
                        <xs:element name="MaxNoJobs" type="xs:string"/>
                        <xs:element name="SignonDisplayFileName" type="xs:string"/>
                        <xs:element name="SignonDisplayFileLibrary" type="xs:string"/>
                        <xs:element name="SystemLibraryListEntry" type="xs:string"/>
                        <xs:element name="ASPGroup" type="xs:string"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element minOccurs="0" name="Pools">
                <xs:annotation>
                    <xs:documentation>system-i specific</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:sequence>
                        <xs:element maxOccurs="unbounded" name="Pool">
                            <xs:complexType>
                                <xs:sequence>
                                    <xs:element name="PoolID" type="xs:integer"/>
                                    <xs:element name="PoolStorageSize" type="xs:string"/>
                                    <xs:element name="PoolActivityLevel" type="xs:integer"/>
                                </xs:sequence>
                            </xs:complexType>
                        </xs:element>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element minOccurs="0" name="AutoStartJobs">
                <xs:annotation>
                    <xs:documentation>system-i specific</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:sequence>
                        <xs:element maxOccurs="unbounded" name="AutoStartJob" type="JobType">
                        </xs:element>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element minOccurs="0" name="JobQueueEntries">
                <xs:annotation>
                    <xs:documentation>system-i specific</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:sequence>
                        <xs:element maxOccurs="unbounded" name="JobQueueEntry">
                            <xs:complexType>
                                <xs:sequence>
                                    <xs:element name="JobQueueSequence" type="xs:integer"/>
                                    <xs:element name="JobQueueName" type="xs:string"/>
                                    <xs:element name="JobQueueLibrary" type="xs:string"/>
                                    <xs:element maxOccurs="1" name="MaxActiveJobs" type="xs:string"/>
                                    <xs:element name="MaxActivePriorities">
                                        <xs:complexType>
                                            <xs:sequence>
                                                <xs:element maxOccurs="unbounded"
                                                  name="MaxActivePriority" type="xs:string"/>
                                            </xs:sequence>
                                        </xs:complexType>
                                    </xs:element>
                                </xs:sequence>
                            </xs:complexType>
                        </xs:element>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element minOccurs="0" name="RoutingEntries">
                <xs:annotation>
                    <xs:documentation>system-i specific</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:sequence>
                        <xs:element maxOccurs="unbounded" name="RoutingEntry">
                            <xs:complexType>
                                <xs:sequence>
                                    <xs:element name="RoutingSequence" type="xs:integer"/>
                                    <xs:element name="RoutingProgramName" type="xs:string"/>
                                    <xs:element name="RoutingProgramLibrary" type="xs:string"/>
                                    <xs:element name="RoutingClassName" type="xs:string"/>
                                    <xs:element name="RoutingClassLibrary" type="xs:string"/>
                                    <xs:element name="MaxActiveRoutingSteps" type="xs:string"/>
                                    <xs:element name="RoutingStoragePoolIdentifier"
                                        type="xs:integer"/>
                                    <xs:element name="RoutingCompareValue" type="xs:string"/>
                                    <xs:element name="RoutingStartPosition" type="xs:integer"/>
                                    <xs:element name="RoutingThreadResources"
                                        type="ThreadResourcesType"/>
                                    <xs:element name="ResourcesAffinityGroup" type="xs:string"/>
                                </xs:sequence>
                            </xs:complexType>
                        </xs:element>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element minOccurs="0" name="PreStartJobs">
                <xs:annotation>
                    <xs:documentation>system-i specific</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:sequence>
                        <xs:element maxOccurs="unbounded" name="PreStartJob">
                            <xs:complexType>
                                <xs:sequence>
                                    <xs:element name="ProgramName" type="xs:string"/>
                                    <xs:element name="ProgramLibrary" type="xs:string"/>
                                    <xs:element name="UserProfile" type="xs:string"/>
                                    <xs:element name="StartJobs" type="xs:string"/>
                                    <xs:element name="InitialNumberofJobs" type="xs:integer"/>
                                    <xs:element name="Threshold" type="xs:integer"/>
                                    <xs:element name="AdditionalNumberofJobs" type="xs:integer"/>
                                    <xs:element name="MaximumNumberofJobs" type="xs:string"/>
                                    <xs:element name="Job" type="JobType"/>
                                    <xs:element name="MaximumNumberofUses" type="xs:string"/>
                                    <xs:element name="WaitForJob" type="xs:string"/>
                                    <xs:element name="PoolIdentifier" type="xs:integer"/>
                                    <xs:element name="Class1Name" type="xs:string"/>
                                    <xs:element name="Class1Library" type="xs:string"/>
                                    <xs:element name="NumberofJobstoUseClass1" type="xs:string"/>
                                    <xs:element name="Class2Name" type="xs:string"/>
                                    <xs:element name="Class2Library" type="xs:string"/>
                                    <xs:element name="NumberofJobstoUseClass2" type="xs:string"/>
                                    <xs:element name="PreStartJobThreadResources"
                                        type="ThreadResourcesType"/>
                                    <xs:element name="ResourcesAffinityGroup" type="xs:string"/>
                                </xs:sequence>
                            </xs:complexType>
                        </xs:element>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="FileCollectorType">
        <xs:sequence>
            <xs:element maxOccurs="unbounded" name="FileDetails">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="InforApplication" type="xs:string">
                            <xs:annotation>
                                <xs:documentation>The originating Infor application that the file is part of</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element name="FileName" type="xs:string"/>
                        <xs:element minOccurs="0" name="FileDescription" type="xs:string"/>
                        <xs:element name="FilePath" type="xs:string"/>
                        <xs:element name="FileContent" type="CDataString">
                            <xs:annotation>
                                <xs:documentation>This is a [!CDATA] container for the content of the file.</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="HostType">
        <xs:sequence>
            <xs:element name="OS" type="HostOSType"/>
            <xs:element minOccurs="0" name="BasicServer" type="BasicServerType"/>
            <xs:element minOccurs="0" name="DetailServer" type="DetailedServerType"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="HostOSType">
        <xs:sequence>
            <xs:element name="OSName" type="xs:string"/>
            <xs:element name="Version" type="xs:string"/>
            <xs:element name="Type" type="xs:string"/>
            <xs:element name="ServicePack" type="xs:string" minOccurs="0"/>
            <xs:element minOccurs="0" name="PTFRecords">
                <xs:annotation>
                    <xs:documentation>system-i specific

Program Temporary Fix applied to system.</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:sequence>
                        <xs:element maxOccurs="unbounded" name="PTFRecord">
                            <xs:complexType>
                                <xs:sequence>
                                    <xs:element name="SystemLicensedProgram" type="xs:string"/>
                                    <xs:element name="SystemReleaseDate" type="xs:string"/>
                                    <xs:element name="Library" type="xs:string"/>
                                    <xs:element name="LicPgm" type="xs:string"/>
                                    <xs:element name="PTF" type="xs:string"/>
                                    <xs:element name="PTFStatus" type="xs:string"/>
                                </xs:sequence>
                            </xs:complexType>
                        </xs:element>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="Locale" type="xs:string">
                <xs:annotation>
                    <xs:documentation>system-i use QLOCALE</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element minOccurs="0" name="CodedCharacterSet" type="xs:string">
                <xs:annotation>
                    <xs:documentation>system-i specific

QCCSID</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element minOccurs="0" name="GraphicCharacterSetAndCodePage">
                <xs:annotation>
                    <xs:documentation>system-i specific

QCHRID</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="CharacterID" type="xs:string"/>
                        <xs:element name="CodePage" type="xs:string"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element minOccurs="0" name="CountryRegionIdentifier" type="xs:string">
                <xs:annotation>
                    <xs:documentation>system-i specific

QCNTRYID</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element minOccurs="0" name="LanguageIdentifier" type="xs:string">
                <xs:annotation>
                    <xs:documentation>system-i specific

QLANGID</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="PerformanceMonitorType">
        <xs:sequence>
            <xs:element name="Counters" maxOccurs="unbounded">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="CapturedDateTime" type="xs:dateTime"/>
                        <xs:element maxOccurs="unbounded" name="Counter">
                            <xs:complexType>
                                <xs:sequence>
                                    <xs:element name="Name" type="xs:string"/>
                                    <xs:element name="Value" type="xs:string"/>
                                </xs:sequence>
                            </xs:complexType>
                        </xs:element>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="WebServerType">
        <xs:sequence>
            <xs:element name="WebServerName" type="xs:string"/>
            <xs:element name="WebServerVersion" type="xs:string"/>
            <xs:element name="SSLEnabled" type="xs:string"/>
            <xs:element name="WebServerConfig" type="xs:string" minOccurs="0"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="ThreadResourcesType">
        <xs:sequence>
            <xs:element name="ThreadResourcesAffinityGroup" type="xs:string"/>
            <xs:element name="ThreadResourcesAffinityLevel" type="xs:string"/>

        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="JobType">
        <xs:sequence>
            <xs:element name="JobName" type="xs:string"/>
            <xs:element name="JobDescription" type="xs:string"/>
            <xs:element name="JobLibrary" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
    <xs:simpleType name="CDataString">
        <xs:restriction base="xs:string"/>
    </xs:simpleType>
</xs:schema>
