<?xml version="1.0" encoding="UTF-8"?>
<install4j version="5.0" transformSequenceNumber="3">
  <directoryPresets config="." />
  <application name="Hello World Suite" distributionSourceDir="" applicationId="0804-2950-8354-4050" mediaDir="./media" mediaFilePattern="${compiler:sys.shortName}_${compiler:sys.platform}_${compiler:sys.version}" compression="6" lzmaCompression="false" pack200Compression="false" excludeSignedFromPacking="true" commonExternalFiles="false" createMd5Sums="true" shrinkRuntime="true" shortName="hello" publisher="Hello Corporation" publisherWeb="http://www.hello.biz" version="5.0" allPathsRelative="true" backupOnSave="false" autoSave="false" convertDotsToUnderscores="true" macSignature="????" installerName="" javaMinVersion="1.4" javaMaxVersion="" allowBetaVM="false" jdkMode="runtimeJre" jdkName="">
    <languages skipLanguageSelection="false" languageSelectionInPrincipalLanguage="false">
      <principalLanguage id="en" customLocalizationFile="" />
      <additionalLanguages />
    </languages>
    <searchSequence>
      <registry />
      <envVar name="JAVA_HOME" />
      <envVar name="JDK_HOME" />
    </searchSequence>
    <variables />
    <mergedProjects />
  </application>
  <files keepModificationTimes="false" missingFilesStrategy="warn" defaultOverwriteMode="4" defaultUninstallMode="0" launcherOverwriteMode="3" defaultFileMode="644" defaultDirMode="755">
    <filesets>
      <fileset name="VM options" id="1148" customizedId="" />
    </filesets>
    <roots>
      <root id="1149" fileset="1148" location="" />
      <root id="1135" fileset="1148" location="${installer:vmoptionsTargetDirectory}" />
    </roots>
    <mountPoints>
      <mountPoint id="1" root="" location="bin" mode="755" />
      <mountPoint id="2" root="" location="classes" mode="755" />
      <mountPoint id="3" root="" location="source" mode="755" />
      <mountPoint id="1151" root="1135" location="" mode="755" />
    </mountPoints>
    <entries>
      <dirEntry mountPoint="2" file="./gui" overwriteMode="4" shared="false" fileMode="644" uninstallMode="0" overrideFileMode="true" overrideOverwriteMode="true" overrideUninstallMode="true" entryMode="direct" subDirectory="" excludeSuffixes="*.java" dirMode="755" overrideDirMode="true">
        <exclude />
      </dirEntry>
      <dirEntry mountPoint="2" file="./cli" overwriteMode="4" shared="false" fileMode="644" uninstallMode="0" overrideFileMode="true" overrideOverwriteMode="true" overrideUninstallMode="true" entryMode="direct" subDirectory="" excludeSuffixes="*.java" dirMode="755" overrideDirMode="true">
        <exclude />
      </dirEntry>
      <dirEntry mountPoint="2" file="./service" overwriteMode="4" shared="false" fileMode="644" uninstallMode="0" overrideFileMode="true" overrideOverwriteMode="true" overrideUninstallMode="true" entryMode="direct" subDirectory="" excludeSuffixes="'.java" dirMode="755" overrideDirMode="true">
        <exclude />
      </dirEntry>
      <fileEntry mountPoint="3" file="./cli/HelloCli.java" overwriteMode="4" shared="false" fileMode="644" uninstallMode="0" overrideFileMode="true" overrideOverwriteMode="true" overrideUninstallMode="true" />
      <fileEntry mountPoint="3" file="./gui/HelloGui.java" overwriteMode="4" shared="false" fileMode="644" uninstallMode="0" overrideFileMode="true" overrideOverwriteMode="true" overrideUninstallMode="true" />
      <fileEntry mountPoint="3" file="./service/ServiceDemo.java" overwriteMode="4" shared="false" fileMode="644" uninstallMode="0" overrideFileMode="true" overrideOverwriteMode="true" overrideUninstallMode="true" />
      <fileEntry mountPoint="1151" file="./vmoptions/hello.vmoptions" overwriteMode="0" shared="false" fileMode="644" uninstallMode="0" overrideFileMode="true" overrideOverwriteMode="true" overrideUninstallMode="true" />
    </entries>
    <components>
      <component name="Hello World Application" id="40" customizedId="" displayDescription="false" selected="true" changeable="false" downloadable="false" hidden="false">
        <description>The core application files necessary to run Hello World.</description>
        <include all="false">
          <entry location="bin" fileType="regular" />
          <entry location="classes" fileType="regular" />
          <entry location="updater" fileType="installerApplication" />
          <entry location="configureGreeting" fileType="installerApplication" />
          <entry location=".i4j_fileset_1148" fileType="regular" />
        </include>
        <dependencies />
      </component>
      <component name="Source Files" id="41" customizedId="" displayDescription="false" selected="true" changeable="true" downloadable="false" hidden="false">
        <description>The Java source files of the Hello World application.</description>
        <include all="false">
          <entry location="source" fileType="regular" />
        </include>
        <dependencies />
      </component>
    </components>
  </files>
  <launchers>
    <launcher name="Hello World Command Line" id="4" customizedId="" external="false" excludeFromMenu="true" unixMode="755" menuName="" icnsFile="" swtApp="false" fileset="">
      <executable name="hello_cli" type="1" iconSet="false" iconFile="" executableDir="bin" redirectStderr="false" stderrFile="error.log" stderrMode="overwrite" redirectStdout="false" stdoutFile="output.log" stdoutMode="overwrite" failOnStderrOutput="true" executableMode="2" changeWorkingDirectory="false" workingDirectory="." singleInstance="false" serviceStartType="2" serviceDependencies="" serviceDescription="" jreLocation="" executionLevel="asInvoker" checkConsoleParameter="false" globalSingleInstance="false">
        <versionInfo include="true" fileVersion="" fileDescription="Hello World Suite Command Line Launcher" legalCopyright="Copyright ej-technologies GmbH, 2002-2003" internalName="helloCli" productName="" />
      </executable>
      <splashScreen show="false" autoOff="true" alwaysOnTop="true" width="0" height="0" bitmapFile="" java6SplashScreen="false">
        <text>
          <statusLine x="20" y="20" text="" font="Arial" fontSize="8" fontColor="0,0,0" fontWeight="500" />
          <versionLine x="20" y="40" text="version ${compiler:sys.version}" font="Arial" fontSize="8" fontColor="0,0,0" fontWeight="500" />
        </text>
      </splashScreen>
      <java mainClass="HelloCli" vmParameters="" arguments="" allowVMPassthroughParameters="true" preferredVM="" bundleRuntime="true">
        <classPath>
          <directory location="classes" failOnError="true" />
        </classPath>
        <nativeLibraryDirectories />
      </java>
      <includedFiles />
      <unextractableFiles />
      <vmOptionsFile mode="content" overwriteMode="0" fileMode="644">
        <content># Include the common .vmoptions file that is located in a user-writable location
-include-options ${installer:vmoptionsTargetDirectory}/hello.vmoptions</content>
      </vmOptionsFile>
      <customScript mode="1" file="">
        <content />
      </customScript>
      <iconImageFiles />
    </launcher>
    <launcher name="Hello World GUI" id="5" customizedId="" external="false" excludeFromMenu="false" unixMode="755" menuName="" icnsFile="" swtApp="false" fileset="">
      <executable name="hello_gui" type="1" iconSet="true" iconFile="" executableDir="bin" redirectStderr="true" stderrFile="error.log" stderrMode="overwrite" redirectStdout="false" stdoutFile="output.log" stdoutMode="overwrite" failOnStderrOutput="true" executableMode="1" changeWorkingDirectory="true" workingDirectory="." singleInstance="true" serviceStartType="2" serviceDependencies="" serviceDescription="" jreLocation="" executionLevel="asInvoker" checkConsoleParameter="true" globalSingleInstance="false">
        <versionInfo include="true" fileVersion="" fileDescription="Hello World Suite GUI Launcher" legalCopyright="Copyright ej-technologies GmbH, 2002-2003" internalName="helloGUI" productName="" />
      </executable>
      <splashScreen show="true" autoOff="true" alwaysOnTop="true" width="400" height="230" bitmapFile="./resources/hello_splash.png" java6SplashScreen="false">
        <text>
          <statusLine x="9" y="210" text="Loading application ..." font="Arial" fontSize="8" fontColor="0,0,0" fontWeight="500" />
          <versionLine x="272" y="159" text="version ${compiler:sys.version}" font="Arial" fontSize="8" fontColor="0,0,0" fontWeight="500" />
        </text>
      </splashScreen>
      <java mainClass="HelloGui" vmParameters="" arguments="" allowVMPassthroughParameters="true" preferredVM="" bundleRuntime="true">
        <classPath>
          <directory location="classes" failOnError="true" />
        </classPath>
        <nativeLibraryDirectories />
      </java>
      <includedFiles />
      <unextractableFiles />
      <vmOptionsFile mode="content" overwriteMode="0" fileMode="644">
        <content># Include the common .vmoptions file that is located in a user-writable location
-include-options ${installer:vmoptionsTargetDirectory}/hello.vmoptions</content>
      </vmOptionsFile>
      <customScript mode="1" file="">
        <content />
      </customScript>
      <iconImageFiles>
        <file path="./resources/hello16x16.png" />
        <file path="./resources/hello32x32.png" />
      </iconImageFiles>
    </launcher>
    <launcher name="Hello World Service" id="19" customizedId="" external="false" excludeFromMenu="true" unixMode="755" menuName="" icnsFile="" swtApp="false" fileset="">
      <executable name="hello_service" type="1" iconSet="false" iconFile="" executableDir="bin" redirectStderr="true" stderrFile="error.log" stderrMode="overwrite" redirectStdout="true" stdoutFile="output.log" stdoutMode="overwrite" failOnStderrOutput="false" executableMode="3" changeWorkingDirectory="true" workingDirectory="." singleInstance="false" serviceStartType="2" serviceDependencies="" serviceDescription="" jreLocation="" executionLevel="asInvoker" checkConsoleParameter="false" globalSingleInstance="false">
        <versionInfo include="true" fileVersion="" fileDescription="Hello World Service" legalCopyright="Copyright ej-technologies GmbH, 2002-2003" internalName="helloCli" productName="" />
      </executable>
      <splashScreen show="false" autoOff="true" alwaysOnTop="true" width="0" height="0" bitmapFile="" java6SplashScreen="false">
        <text>
          <statusLine x="20" y="20" text="" font="Arial" fontSize="8" fontColor="0,0,0" fontWeight="500" />
          <versionLine x="20" y="40" text="version ${compiler:sys.version}" font="Arial" fontSize="8" fontColor="0,0,0" fontWeight="500" />
        </text>
      </splashScreen>
      <java mainClass="ServiceDemo" vmParameters="" arguments="" allowVMPassthroughParameters="true" preferredVM="" bundleRuntime="true">
        <classPath>
          <directory location="classes" failOnError="true" />
        </classPath>
        <nativeLibraryDirectories />
      </java>
      <includedFiles />
      <unextractableFiles />
      <vmOptionsFile mode="content" overwriteMode="0" fileMode="644">
        <content># Include the common .vmoptions file that is located in a user-writable location
-include-options ${installer:vmoptionsTargetDirectory}/hello.vmoptions</content>
      </vmOptionsFile>
      <customScript mode="1" file="">
        <content />
      </customScript>
      <iconImageFiles />
    </launcher>
  </launchers>
  <installerGui installerType="1" addOnAppId="" suggestPreviousLocations="true" autoUpdateDescriptorUrl="http://download.ej-technologies.com/hello/updates.xml" useAutoUpdateBaseUrl="false" autoUpdateBaseUrl="">
    <customCode />
    <autoUpdate useMinUpdatableVersion="false" minUpdatableVersion="" useMaxUpdatableVersion="false" maxUpdatableVersion="">
      <commentFiles />
      <customAttributes />
    </autoUpdate>
    <applications>
      <application name="" id="installer" customizedId="" beanClass="com.install4j.runtime.beans.applications.InstallerApplication" enabled="true" commentSet="false" comment="" fileset="" customIcnsFile="" customIcoFile="" automaticLauncherIntegration="false" launchMode="startupFirstWindow" launchInNewProcess="false" launchSchedule="updateSchedule" allLaunchers="true">
        <serializedBean>
          <java class="java.beans.XMLDecoder">
            <object class="com.install4j.runtime.beans.applications.InstallerApplication" />
          </java>
        </serializedBean>
        <launcherIds />
        <variables />
        <startup>
          <screen name="" id="15" customizedId="" beanClass="com.install4j.runtime.beans.screens.StartupScreen" enabled="true" commentSet="false" comment="" rollbackBarrier="false" backButton="2" finishScreen="false" wizardIndexChangeType="unchanged" wizardIndexKey="">
            <serializedBean>
              <java class="java.beans.XMLDecoder">
                <object class="com.install4j.runtime.beans.screens.StartupScreen" />
              </java>
            </serializedBean>
            <condition />
            <validation />
            <preActivation />
            <postActivation />
            <actions>
              <action name="" id="1283" customizedId="" beanClass="com.install4j.runtime.beans.actions.misc.RequestPrivilegesAction" enabled="true" commentSet="false" comment="" rollbackBarrier="false" multiExec="false" failureStrategy="1" errorMessage="">
                <serializedBean>
                  <java class="java.beans.XMLDecoder">
                    <object class="com.install4j.runtime.beans.actions.misc.RequestPrivilegesAction">
                      <void property="obtainIfAdminMac">
                        <boolean>true</boolean>
                      </void>
                      <void property="obtainIfNormalMac">
                        <boolean>true</boolean>
                      </void>
                      <void property="obtainIfNormalWin">
                        <boolean>true</boolean>
                      </void>
                    </object>
                  </java>
                </serializedBean>
                <condition />
              </action>
              <action name="Determine destination for .vmoption file" id="1146" customizedId="" beanClass="com.install4j.runtime.beans.actions.control.SetVariableAction" enabled="true" commentSet="false" comment="" rollbackBarrier="false" multiExec="false" failureStrategy="1" errorMessage="">
                <serializedBean>
                  <java class="java.beans.XMLDecoder">
                    <object class="com.install4j.runtime.beans.actions.control.SetVariableAction">
                      <void property="script">
                        <object class="com.install4j.api.beans.ScriptProperty">
                          <void property="value">
                            <string>if (Util.isWindows()) {
    // On Windows, the user-editable .vmoptions file will be installed to the APPDATA directory
    // which is a user-specific path, which is localized in some Windows versions
    return new File(WinFileSystem.getSpecialFolder(SpecialFolder.APPDATA, false), "Hello World").getPath();
} else {
    // On other platforms, we choose a hidden directory in the user home directory
    return new File(System.getProperty("user.home"), ".hello").getPath();
}</string>
                          </void>
                        </object>
                      </void>
                      <void property="variableName">
                        <string>vmoptionsTargetDirectory</string>
                      </void>
                    </object>
                  </java>
                </serializedBean>
                <condition />
              </action>
            </actions>
            <formComponents />
          </screen>
        </startup>
        <screens>
          <screen name="" id="47" customizedId="" beanClass="com.install4j.runtime.beans.screens.WelcomeScreen" enabled="true" commentSet="false" comment="" rollbackBarrier="false" backButton="2" finishScreen="false" wizardIndexChangeType="unchanged" wizardIndexKey="">
            <serializedBean>
              <java class="java.beans.XMLDecoder">
                <object class="com.install4j.runtime.beans.screens.WelcomeScreen" />
              </java>
            </serializedBean>
            <condition />
            <validation />
            <preActivation />
            <postActivation />
            <actions>
              <action name="" id="1284" customizedId="" beanClass="com.install4j.runtime.beans.actions.misc.LoadResponseFileAction" enabled="true" commentSet="false" comment="" rollbackBarrier="false" multiExec="true" failureStrategy="1" errorMessage="">
                <serializedBean>
                  <java class="java.beans.XMLDecoder">
                    <object class="com.install4j.runtime.beans.actions.misc.LoadResponseFileAction">
                      <void property="excludedVariables">
                        <array class="java.lang.String" length="1">
                          <void index="0">
                            <string>specialUserAccount</string>
                          </void>
                        </array>
                      </void>
                    </object>
                  </java>
                </serializedBean>
                <condition>context.getBooleanVariable("sys.confirmedUpdateInstallation")</condition>
              </action>
            </actions>
            <formComponents />
          </screen>
          <screen name="" id="48" customizedId="" beanClass="com.install4j.runtime.beans.screens.InstallationDirectoryScreen" enabled="true" commentSet="false" comment="" rollbackBarrier="false" backButton="2" finishScreen="false" wizardIndexChangeType="unchanged" wizardIndexKey="">
            <serializedBean>
              <java class="java.beans.XMLDecoder">
                <object class="com.install4j.runtime.beans.screens.InstallationDirectoryScreen" />
              </java>
            </serializedBean>
            <condition>!context.getBooleanVariable("sys.confirmedUpdateInstallation")</condition>
            <validation />
            <preActivation />
            <postActivation />
            <actions>
              <action name="" id="1025" customizedId="" beanClass="com.install4j.runtime.beans.actions.misc.LoadResponseFileAction" enabled="true" commentSet="false" comment="" rollbackBarrier="false" multiExec="true" failureStrategy="1" errorMessage="">
                <serializedBean>
                  <java class="java.beans.XMLDecoder">
                    <object class="com.install4j.runtime.beans.actions.misc.LoadResponseFileAction" />
                  </java>
                </serializedBean>
                <condition>context.getVariable("sys.responseFile") == null</condition>
              </action>
              <action name="" id="1282" customizedId="" beanClass="com.install4j.runtime.beans.actions.registry.LoadInstallerVariablesAction" enabled="true" commentSet="true" comment="This action loads the installer variables from the preference store that have been saved by the &quot;Save installer variables to the Java preference store&quot; action on the &quot;Installation&quot; screen. &#xA;&#xA;It overrides installer variables that are loaded from the response file. The response file holds the greeting settings as they were last made in the installer, but the settings that are actually usd by the application live in the preference store." rollbackBarrier="false" multiExec="true" failureStrategy="1" errorMessage="">
                <serializedBean>
                  <java class="java.beans.XMLDecoder">
                    <object class="com.install4j.runtime.beans.actions.registry.LoadInstallerVariablesAction">
                      <void property="packageName">
                        <string>${compiler:sys.applicationId}</string>
                      </void>
                    </object>
                  </java>
                </serializedBean>
                <condition />
              </action>
            </actions>
            <formComponents />
          </screen>
          <screen name="" id="49" customizedId="" beanClass="com.install4j.runtime.beans.screens.ComponentsScreen" enabled="true" commentSet="false" comment="" rollbackBarrier="false" backButton="2" finishScreen="false" wizardIndexChangeType="unchanged" wizardIndexKey="">
            <serializedBean>
              <java class="java.beans.XMLDecoder">
                <object class="com.install4j.runtime.beans.screens.ComponentsScreen" />
              </java>
            </serializedBean>
            <condition />
            <validation />
            <preActivation />
            <postActivation />
            <actions />
            <formComponents />
          </screen>
          <screen name="" id="50" customizedId="" beanClass="com.install4j.runtime.beans.screens.StandardProgramGroupScreen" enabled="true" commentSet="false" comment="" rollbackBarrier="false" backButton="2" finishScreen="false" wizardIndexChangeType="unchanged" wizardIndexKey="">
            <serializedBean>
              <java class="java.beans.XMLDecoder">
                <object class="com.install4j.runtime.beans.screens.StandardProgramGroupScreen">
                  <void property="programGroupName">
                    <string>${compiler:sys.fullName}</string>
                  </void>
                </object>
              </java>
            </serializedBean>
            <condition>!context.getBooleanVariable("sys.confirmedUpdateInstallation")</condition>
            <validation />
            <preActivation />
            <postActivation />
            <actions />
            <formComponents />
          </screen>
          <screen name="Query greeting" id="73" customizedId="" beanClass="com.install4j.runtime.beans.screens.FormScreen" enabled="true" commentSet="false" comment="" rollbackBarrier="false" backButton="2" finishScreen="false" wizardIndexChangeType="unchanged" wizardIndexKey="">
            <serializedBean>
              <java class="java.beans.XMLDecoder">
                <object class="com.install4j.runtime.beans.screens.FormScreen">
                  <void property="subTitle">
                    <string>Who do you want to greet?</string>
                  </void>
                  <void property="title">
                    <string>Greeting configuration</string>
                  </void>
                </object>
              </java>
            </serializedBean>
            <condition />
            <validation>String greeting = ((String)context.getVariable("personName")).trim();

if (context.getVariable("greetingOption").equals("world")) {
    greeting = "world";
} else if (greeting.trim().length() == 0) {
    formEnvironment.getFormComponentById("77").requestFocus();
    Util.showMessage("Please enter a name.");
    return false;
} 

context.setVariable("greeting", greeting);
return true;</validation>
            <preActivation />
            <postActivation />
            <actions />
            <formComponents>
              <formComponent name="world" id="483" customizedId="" beanClass="com.install4j.runtime.beans.formcomponents.SingleRadiobuttonComponent" enabled="true" commentSet="false" comment="" insetTop="" insetLeft="" insetBottom="0" insetRight="" resetInitOnPrevious="false">
                <serializedBean>
                  <java class="java.beans.XMLDecoder">
                    <object class="com.install4j.runtime.beans.formcomponents.SingleRadiobuttonComponent">
                      <void property="initiallySelected">
                        <boolean>true</boolean>
                      </void>
                      <void property="radioButtonLabel">
                        <string>Greet the whole world</string>
                      </void>
                      <void property="variableName">
                        <string>greetingOption</string>
                      </void>
                      <void property="variableValue">
                        <string>world</string>
                      </void>
                    </object>
                  </java>
                </serializedBean>
                <initScript />
                <visibilityScript />
              </formComponent>
              <formComponent name="person" id="484" customizedId="" beanClass="com.install4j.runtime.beans.formcomponents.SingleRadiobuttonComponent" enabled="true" commentSet="false" comment="" insetTop="0" insetLeft="" insetBottom="0" insetRight="" resetInitOnPrevious="false">
                <serializedBean>
                  <java class="java.beans.XMLDecoder">
                    <object class="com.install4j.runtime.beans.formcomponents.SingleRadiobuttonComponent">
                      <void property="coupledComponentIds">
                        <void method="add">
                          <string>77</string>
                        </void>
                      </void>
                      <void property="radioButtonLabel">
                        <string>Greet a single person</string>
                      </void>
                      <void property="variableName">
                        <string>greetingOption</string>
                      </void>
                      <void property="variableValue">
                        <string>person</string>
                      </void>
                    </object>
                  </java>
                </serializedBean>
                <initScript />
                <visibilityScript />
              </formComponent>
              <formComponent name="" id="77" customizedId="" beanClass="com.install4j.runtime.beans.formcomponents.TextfieldComponent" enabled="true" commentSet="false" comment="" insetTop="" insetLeft="20" insetBottom="" insetRight="" resetInitOnPrevious="false">
                <serializedBean>
                  <java class="java.beans.XMLDecoder">
                    <object class="com.install4j.runtime.beans.formcomponents.TextfieldComponent">
                      <void property="enterGoesToNextScreen">
                        <boolean>true</boolean>
                      </void>
                      <void property="labelText">
                        <string>Name of the person:</string>
                      </void>
                      <void property="requestFocus">
                        <boolean>true</boolean>
                      </void>
                      <void property="variableName">
                        <string>personName</string>
                      </void>
                    </object>
                  </java>
                </serializedBean>
                <initScript />
                <visibilityScript />
              </formComponent>
            </formComponents>
          </screen>
          <screen name="Service options" id="1565" customizedId="" beanClass="com.install4j.runtime.beans.screens.FormScreen" enabled="true" commentSet="false" comment="" rollbackBarrier="false" backButton="2" finishScreen="false" wizardIndexChangeType="unchanged" wizardIndexKey="">
            <serializedBean>
              <java class="java.beans.XMLDecoder">
                <object class="com.install4j.runtime.beans.screens.FormScreen">
                  <void property="subTitle">
                    <string>Please choose options for the service</string>
                  </void>
                  <void property="title">
                    <string>Service Options</string>
                  </void>
                </object>
              </java>
            </serializedBean>
            <condition />
            <validation>if (!context.getBooleanVariable("specialUserAccount")) {
    context.setVariable("serviceAccount", "NT AUTHORITY\\System");
    context.setVariable("servicePassword", "");
}
return true;</validation>
            <preActivation />
            <postActivation />
            <actions />
            <formComponents>
              <formComponent name="" id="1568" customizedId="" beanClass="com.install4j.runtime.beans.formcomponents.MultilineHtmlLabelComponent" enabled="true" commentSet="false" comment="" insetTop="" insetLeft="" insetBottom="" insetRight="" resetInitOnPrevious="false">
                <serializedBean>
                  <java class="java.beans.XMLDecoder">
                    <object class="com.install4j.runtime.beans.formcomponents.MultilineHtmlLabelComponent">
                      <void property="labelHtml">
                        <string>The Hello World suite includes a service that says hello every 2 seconds</string>
                      </void>
                    </object>
                  </java>
                </serializedBean>
                <initScript />
                <visibilityScript />
              </formComponent>
              <formComponent name="" id="1566" customizedId="" beanClass="com.install4j.runtime.beans.formcomponents.CheckboxComponent" enabled="true" commentSet="false" comment="" insetTop="" insetLeft="" insetBottom="" insetRight="" resetInitOnPrevious="false">
                <serializedBean>
                  <java class="java.beans.XMLDecoder">
                    <object class="com.install4j.runtime.beans.formcomponents.CheckboxComponent">
                      <void property="checkboxText">
                        <string>Install Hello World service</string>
                      </void>
                      <void property="coupledComponentIds">
                        <void method="add">
                          <string>1572</string>
                        </void>
                      </void>
                      <void property="initiallySelected">
                        <boolean>true</boolean>
                      </void>
                      <void property="variableName">
                        <string>installService</string>
                      </void>
                    </object>
                  </java>
                </serializedBean>
                <initScript />
                <visibilityScript />
              </formComponent>
              <group name="" id="1573" customizedId="" beanClass="com.install4j.runtime.beans.groups.VerticalFormComponentGroup" enabled="true" commentSet="false" comment="">
                <serializedBean>
                  <java class="java.beans.XMLDecoder">
                    <object class="com.install4j.runtime.beans.groups.VerticalFormComponentGroup">
                      <void property="insets">
                        <object class="java.awt.Insets">
                          <int>0</int>
                          <int>20</int>
                          <int>0</int>
                          <int>0</int>
                        </object>
                      </void>
                    </object>
                  </java>
                </serializedBean>
                <beans>
                  <formComponent name="" id="1572" customizedId="" beanClass="com.install4j.runtime.beans.formcomponents.CheckboxComponent" enabled="true" commentSet="false" comment="" insetTop="" insetLeft="" insetBottom="" insetRight="" resetInitOnPrevious="false">
                    <serializedBean>
                      <java class="java.beans.XMLDecoder">
                        <object class="com.install4j.runtime.beans.formcomponents.CheckboxComponent">
                          <void property="checkboxText">
                            <string>Use a special user account for running the service</string>
                          </void>
                          <void property="coupledComponentIds">
                            <void method="add">
                              <string>1571</string>
                            </void>
                          </void>
                          <void property="variableName">
                            <string>specialUserAccount</string>
                          </void>
                        </object>
                      </java>
                    </serializedBean>
                    <initScript />
                    <visibilityScript>Util.isAtLeastWindowsXP()</visibilityScript>
                  </formComponent>
                  <group name="" id="1571" customizedId="" beanClass="com.install4j.runtime.beans.groups.VerticalFormComponentGroup" enabled="true" commentSet="false" comment="">
                    <serializedBean>
                      <java class="java.beans.XMLDecoder">
                        <object class="com.install4j.runtime.beans.groups.VerticalFormComponentGroup">
                          <void property="insets">
                            <object class="java.awt.Insets">
                              <int>0</int>
                              <int>20</int>
                              <int>0</int>
                              <int>0</int>
                            </object>
                          </void>
                        </object>
                      </java>
                    </serializedBean>
                    <beans>
                      <formComponent name="" id="1569" customizedId="" beanClass="com.install4j.runtime.beans.formcomponents.UserSelectorComponent" enabled="true" commentSet="false" comment="" insetTop="" insetLeft="" insetBottom="" insetRight="" resetInitOnPrevious="false">
                        <serializedBean>
                          <java class="java.beans.XMLDecoder">
                            <object class="com.install4j.runtime.beans.formcomponents.UserSelectorComponent">
                              <void property="groupCreatedVariableName">
                                <string>groupCreated</string>
                              </void>
                              <void property="labelText">
                                <string>Account name:</string>
                              </void>
                              <void property="localGroupVariableName">
                                <string>localGroupForCreatedUser</string>
                              </void>
                              <void property="onlyLocal">
                                <boolean>true</boolean>
                              </void>
                              <void property="passwordFormComponentId">
                                <string>1570</string>
                              </void>
                              <void property="showCreateButton">
                                <boolean>true</boolean>
                              </void>
                              <void property="showWellKnownPrincipals">
                                <boolean>true</boolean>
                              </void>
                              <void property="userCreatedVariableName">
                                <string>userCreated</string>
                              </void>
                              <void property="variableName">
                                <string>serviceAccount</string>
                              </void>
                            </object>
                          </java>
                        </serializedBean>
                        <initScript />
                        <visibilityScript>Util.isAtLeastWindowsXP()</visibilityScript>
                      </formComponent>
                      <formComponent name="" id="1570" customizedId="" beanClass="com.install4j.runtime.beans.formcomponents.PasswordComponent" enabled="true" commentSet="false" comment="" insetTop="" insetLeft="" insetBottom="" insetRight="" resetInitOnPrevious="false">
                        <serializedBean>
                          <java class="java.beans.XMLDecoder">
                            <object class="com.install4j.runtime.beans.formcomponents.PasswordComponent">
                              <void property="labelText">
                                <string>Password:</string>
                              </void>
                              <void property="variableName">
                                <string>servicePassword</string>
                              </void>
                            </object>
                          </java>
                        </serializedBean>
                        <initScript />
                        <visibilityScript>Util.isAtLeastWindowsXP()</visibilityScript>
                      </formComponent>
                    </beans>
                  </group>
                </beans>
              </group>
            </formComponents>
          </screen>
          <screen name="" id="53" customizedId="" beanClass="com.install4j.runtime.beans.screens.InstallationScreen" enabled="true" commentSet="false" comment="" rollbackBarrier="true" backButton="2" finishScreen="false" wizardIndexChangeType="unchanged" wizardIndexKey="">
            <serializedBean>
              <java class="java.beans.XMLDecoder">
                <object class="com.install4j.runtime.beans.screens.InstallationScreen" />
              </java>
            </serializedBean>
            <condition />
            <validation />
            <preActivation />
            <postActivation />
            <actions>
              <group name="Stop Services" id="1682" customizedId="" beanClass="com.install4j.runtime.beans.groups.ActionGroup" enabled="true" commentSet="false" comment="">
                <serializedBean>
                  <java class="java.beans.XMLDecoder">
                    <object class="com.install4j.runtime.beans.groups.ActionGroup" />
                  </java>
                </serializedBean>
                <beans>
                  <action name="" id="325" customizedId="" beanClass="com.install4j.runtime.beans.actions.control.SetMessageAction" enabled="true" commentSet="false" comment="" rollbackBarrier="false" multiExec="false" failureStrategy="1" errorMessage="">
                    <serializedBean>
                      <java class="java.beans.XMLDecoder">
                        <object class="com.install4j.runtime.beans.actions.control.SetMessageAction">
                          <void property="statusMessage">
                            <string>${i18n:StatusStoppingServices}</string>
                          </void>
                          <void property="useDetail">
                            <boolean>true</boolean>
                          </void>
                          <void property="useStatus">
                            <boolean>true</boolean>
                          </void>
                        </object>
                      </java>
                    </serializedBean>
                    <condition />
                  </action>
                  <action name="" id="326" customizedId="" beanClass="com.install4j.runtime.beans.actions.control.SetProgressAction" enabled="true" commentSet="false" comment="" rollbackBarrier="false" multiExec="false" failureStrategy="1" errorMessage="">
                    <serializedBean>
                      <java class="java.beans.XMLDecoder">
                        <object class="com.install4j.runtime.beans.actions.control.SetProgressAction">
                          <void property="progressChangeType">
                            <object class="com.install4j.runtime.beans.actions.control.ProgressChangeType" field="SET_INDETERMINATE" />
                          </void>
                        </object>
                      </java>
                    </serializedBean>
                    <condition />
                  </action>
                  <action name="" id="101" customizedId="" beanClass="com.install4j.runtime.beans.actions.services.StopServiceAction" enabled="true" commentSet="true" comment="This action is necessary otherwise the following &quot;Delete a file an directories&quot; action might fail on Windows, since the files that are to be deleted might be in use.&#xA;&#xA;Otherwise, you do not have to stop services explicitly, the &quot;Uninstall files&quot; action will stop all services." rollbackBarrier="false" multiExec="false" failureStrategy="1" errorMessage="">
                    <serializedBean>
                      <java class="java.beans.XMLDecoder">
                        <object class="com.install4j.runtime.beans.actions.services.StopServiceAction">
                          <void property="launcherId">
                            <string>19</string>
                          </void>
                        </object>
                      </java>
                    </serializedBean>
                    <condition />
                  </action>
                  <action name="" id="1955" customizedId="" beanClass="com.install4j.runtime.beans.actions.control.SetProgressAction" enabled="true" commentSet="false" comment="" rollbackBarrier="false" multiExec="false" failureStrategy="1" errorMessage="">
                    <serializedBean>
                      <java class="java.beans.XMLDecoder">
                        <object class="com.install4j.runtime.beans.actions.control.SetProgressAction">
                          <void property="progressChangeType">
                            <object class="com.install4j.runtime.beans.actions.control.ProgressChangeType" field="SET_DETERMINATE" />
                          </void>
                        </object>
                      </java>
                    </serializedBean>
                    <condition />
                  </action>
                </beans>
              </group>
              <action name="" id="1467" customizedId="" beanClass="com.install4j.runtime.beans.actions.misc.CheckRunningProcessesAction" enabled="true" commentSet="true" comment="Note that the &quot;Install Files&quot; action always checks that no process that are started from affected files are running. However, if you want to give your users the ability to close the applications automatically, you have to add this action before the &quot;Install Files&quot; action." rollbackBarrier="false" multiExec="false" failureStrategy="2" errorMessage="">
                <serializedBean>
                  <java class="java.beans.XMLDecoder">
                    <object class="com.install4j.runtime.beans.actions.misc.CheckRunningProcessesAction">
                      <void property="closeStrategy">
                        <object class="com.install4j.runtime.beans.actions.misc.CloseStrategy" field="ASK_FOR_CLOSE_AND_TERMINATE" />
                      </void>
                    </object>
                  </java>
                </serializedBean>
                <condition />
              </action>
              <action name="" id="55" customizedId="" beanClass="com.install4j.runtime.beans.actions.InstallFilesAction" enabled="true" commentSet="false" comment="" rollbackBarrier="false" multiExec="false" failureStrategy="2" errorMessage="${i18n:FileCorrupted}">
                <serializedBean>
                  <java class="java.beans.XMLDecoder">
                    <object class="com.install4j.runtime.beans.actions.InstallFilesAction" />
                  </java>
                </serializedBean>
                <condition />
              </action>
              <action name="" id="56" customizedId="" beanClass="com.install4j.runtime.beans.actions.desktop.CreateProgramGroupAction" enabled="true" commentSet="false" comment="" rollbackBarrier="false" multiExec="false" failureStrategy="1" errorMessage="">
                <serializedBean>
                  <java class="java.beans.XMLDecoder">
                    <object class="com.install4j.runtime.beans.actions.desktop.CreateProgramGroupAction">
                      <void property="linkDirectory">
                        <string>${installer:sys.symlinkDir}</string>
                      </void>
                      <void property="programGroupEntryConfigs">
                        <void method="add">
                          <object class="com.install4j.runtime.beans.screens.components.ProgramGroupFileConfig">
                            <void property="name">
                              <string>Maintenance/Check For Update</string>
                            </void>
                            <void property="target">
                              <object class="java.io.File">
                                <string>updater</string>
                              </object>
                            </void>
                          </object>
                        </void>
                        <void method="add">
                          <object class="com.install4j.runtime.beans.screens.components.ProgramGroupFileConfig">
                            <void property="name">
                              <string>Maintenance/Configure Greeting</string>
                            </void>
                            <void property="target">
                              <object class="java.io.File">
                                <string>configureGreeting</string>
                              </object>
                            </void>
                          </object>
                        </void>
                      </void>
                      <void property="uninstallerMenuName">
                        <string>${i18n:UninstallerMenuEntry(${compiler:sys.fullName})}</string>
                      </void>
                    </object>
                  </java>
                </serializedBean>
                <condition>!context.getBooleanVariable("sys.programGroupDisabled")</condition>
              </action>
              <action name="" id="57" customizedId="" beanClass="com.install4j.runtime.beans.actions.desktop.RegisterAddRemoveAction" enabled="true" commentSet="false" comment="" rollbackBarrier="false" multiExec="false" failureStrategy="1" errorMessage="">
                <serializedBean>
                  <java class="java.beans.XMLDecoder">
                    <object class="com.install4j.runtime.beans.actions.desktop.RegisterAddRemoveAction">
                      <void property="icon">
                        <object class="com.install4j.api.beans.ExternalFile">
                          <string>./resources/hello.ico</string>
                        </object>
                      </void>
                      <void property="itemName">
                        <string>${compiler:sys.fullName} ${compiler:sys.version}</string>
                      </void>
                    </object>
                  </java>
                </serializedBean>
                <condition />
              </action>
              <action name="" id="58" customizedId="" beanClass="com.install4j.runtime.beans.actions.services.InstallServiceAction" enabled="true" commentSet="false" comment="" rollbackBarrier="false" multiExec="false" failureStrategy="1" errorMessage="">
                <serializedBean>
                  <java class="java.beans.XMLDecoder">
                    <object class="com.install4j.runtime.beans.actions.services.InstallServiceAction">
                      <void property="accountNameOrSid">
                        <string>${installer:serviceAccount}</string>
                      </void>
                      <void property="description">
                        <string>A service that says hello every 2 seconds</string>
                      </void>
                      <void property="launcherId">
                        <string>19</string>
                      </void>
                      <void property="macosIdentifier">
                        <string>com.ejt.hello</string>
                      </void>
                      <void property="password">
                        <string>${installer:servicePassword}</string>
                      </void>
                      <void property="serviceAccount">
                        <object class="com.install4j.runtime.beans.actions.services.ServiceAccount" field="OTHER" />
                      </void>
                    </object>
                  </java>
                </serializedBean>
                <condition />
              </action>
              <action name="" id="59" customizedId="" beanClass="com.install4j.runtime.beans.actions.services.StartServiceAction" enabled="true" commentSet="false" comment="" rollbackBarrier="false" multiExec="false" failureStrategy="1" errorMessage="">
                <serializedBean>
                  <java class="java.beans.XMLDecoder">
                    <object class="com.install4j.runtime.beans.actions.services.StartServiceAction">
                      <void property="launcherId">
                        <string>19</string>
                      </void>
                    </object>
                  </java>
                </serializedBean>
                <condition />
              </action>
              <action name="Save greeting to the Java preference store" id="1145" customizedId="" beanClass="com.install4j.runtime.beans.actions.registry.SaveInstallerVariablesAction" enabled="true" commentSet="true" comment="The launchers will access the user-defined greeting by loading the installer variables saved to the preference store by this action. They do this through a helper class provided by the install4j API.&#xA;&#xA;Another way would have been to load the variable from the automatically created response file (through the same helper class). However, we want to save the greeting on a per-user basis and make it editable by the custom installer application named &quot;Configure greeting&quot;." rollbackBarrier="false" multiExec="false" failureStrategy="1" errorMessage="">
                <serializedBean>
                  <java class="java.beans.XMLDecoder">
                    <object class="com.install4j.runtime.beans.actions.registry.SaveInstallerVariablesAction">
                      <void property="installerVariables">
                        <array class="java.lang.String" length="3">
                          <void index="0">
                            <string>greeting</string>
                          </void>
                          <void index="1">
                            <string>personName</string>
                          </void>
                          <void index="2">
                            <string>greetingOption</string>
                          </void>
                        </array>
                      </void>
                      <void property="packageName">
                        <string>${compiler:sys.applicationId}</string>
                      </void>
                    </object>
                  </java>
                </serializedBean>
                <condition />
              </action>
              <action name="Modify .vmoption files" id="1155" customizedId="" beanClass="com.install4j.runtime.beans.actions.text.ReplaceInstallerVariablesAction" enabled="true" commentSet="false" comment="" rollbackBarrier="false" multiExec="false" failureStrategy="1" errorMessage="">
                <serializedBean>
                  <java class="java.beans.XMLDecoder">
                    <object class="com.install4j.runtime.beans.actions.text.ReplaceInstallerVariablesAction">
                      <void property="files">
                        <array class="java.io.File" length="3">
                          <void index="0">
                            <object class="java.io.File">
                              <string>bin/hello_cli.vmoptions</string>
                            </object>
                          </void>
                          <void index="1">
                            <object class="java.io.File">
                              <string>bin/hello_gui.vmoptions</string>
                            </object>
                          </void>
                          <void index="2">
                            <object class="java.io.File">
                              <string>bin/hello_service.vmoptions</string>
                            </object>
                          </void>
                        </array>
                      </void>
                    </object>
                  </java>
                </serializedBean>
                <condition />
              </action>
              <action name="" id="1956" customizedId="" beanClass="com.install4j.runtime.beans.actions.text.FixCrLfAction" enabled="true" commentSet="false" comment="" rollbackBarrier="false" multiExec="false" failureStrategy="1" errorMessage="">
                <serializedBean>
                  <java class="java.beans.XMLDecoder">
                    <object class="com.install4j.runtime.beans.actions.text.FixCrLfAction">
                      <void property="files">
                        <array class="java.io.File" length="1">
                          <void index="0">
                            <object class="java.io.File">
                              <string>${installer:vmoptionsTargetDirectory}/hello.vmoptions</string>
                            </object>
                          </void>
                        </array>
                      </void>
                    </object>
                  </java>
                </serializedBean>
                <condition />
              </action>
            </actions>
            <formComponents />
          </screen>
          <screen name="" id="60" customizedId="" beanClass="com.install4j.runtime.beans.screens.FinishedScreen" enabled="true" commentSet="false" comment="" rollbackBarrier="false" backButton="2" finishScreen="true" wizardIndexChangeType="unchanged" wizardIndexKey="">
            <serializedBean>
              <java class="java.beans.XMLDecoder">
                <object class="com.install4j.runtime.beans.screens.FinishedScreen" />
              </java>
            </serializedBean>
            <condition />
            <validation />
            <preActivation />
            <postActivation />
            <actions>
              <action name="" id="465" customizedId="" beanClass="com.install4j.runtime.beans.actions.finish.ExecuteLauncherAction" enabled="true" commentSet="false" comment="" rollbackBarrier="false" multiExec="false" failureStrategy="1" errorMessage="">
                <serializedBean>
                  <java class="java.beans.XMLDecoder">
                    <object class="com.install4j.runtime.beans.actions.finish.ExecuteLauncherAction">
                      <void property="launcherId">
                        <string>5</string>
                      </void>
                    </object>
                  </java>
                </serializedBean>
                <condition>context.getBooleanVariable("executeLauncherAction") &amp;&amp; (!context.isUnattended())</condition>
              </action>
            </actions>
            <formComponents>
              <formComponent name="Execute launcher" id="72" customizedId="" beanClass="com.install4j.runtime.beans.formcomponents.CheckboxComponent" enabled="true" commentSet="false" comment="" insetTop="" insetLeft="" insetBottom="" insetRight="" resetInitOnPrevious="false">
                <serializedBean>
                  <java class="java.beans.XMLDecoder">
                    <object class="com.install4j.runtime.beans.formcomponents.CheckboxComponent">
                      <void property="checkboxText">
                        <string>${i18n:RunEntryExec("${compiler:sys.fullName}")}</string>
                      </void>
                      <void property="initiallySelected">
                        <boolean>true</boolean>
                      </void>
                      <void property="variableName">
                        <string>executeLauncherAction</string>
                      </void>
                    </object>
                  </java>
                </serializedBean>
                <initScript />
                <visibilityScript />
              </formComponent>
            </formComponents>
          </screen>
        </screens>
      </application>
      <application name="" id="uninstaller" customizedId="" beanClass="com.install4j.runtime.beans.applications.UninstallerApplication" enabled="true" commentSet="false" comment="" fileset="" customIcnsFile="" customIcoFile="" automaticLauncherIntegration="false" launchMode="startupFirstWindow" launchInNewProcess="false" launchSchedule="updateSchedule" allLaunchers="true">
        <serializedBean>
          <java class="java.beans.XMLDecoder">
            <object class="com.install4j.runtime.beans.applications.UninstallerApplication" />
          </java>
        </serializedBean>
        <launcherIds />
        <variables />
        <startup>
          <screen name="" id="16" customizedId="" beanClass="com.install4j.runtime.beans.screens.StartupScreen" enabled="true" commentSet="false" comment="" rollbackBarrier="false" backButton="2" finishScreen="false" wizardIndexChangeType="unchanged" wizardIndexKey="">
            <serializedBean>
              <java class="java.beans.XMLDecoder">
                <object class="com.install4j.runtime.beans.screens.StartupScreen" />
              </java>
            </serializedBean>
            <condition />
            <validation />
            <preActivation />
            <postActivation />
            <actions>
              <link name="" id="1285" customizedId="" beanClass="" enabled="true" targetId="1283" mergedProjectId="" />
              <action name="" id="1784" customizedId="" beanClass="com.install4j.runtime.beans.actions.misc.LoadResponseFileAction" enabled="true" commentSet="false" comment="" rollbackBarrier="false" multiExec="true" failureStrategy="1" errorMessage="">
                <serializedBean>
                  <java class="java.beans.XMLDecoder">
                    <object class="com.install4j.runtime.beans.actions.misc.LoadResponseFileAction" />
                  </java>
                </serializedBean>
                <condition>context.getVariable("sys.responseFile") == null</condition>
              </action>
            </actions>
            <formComponents />
          </screen>
        </startup>
        <screens>
          <screen name="" id="61" customizedId="" beanClass="com.install4j.runtime.beans.screens.UninstallWelcomeScreen" enabled="true" commentSet="false" comment="" rollbackBarrier="false" backButton="2" finishScreen="false" wizardIndexChangeType="unchanged" wizardIndexKey="">
            <serializedBean>
              <java class="java.beans.XMLDecoder">
                <object class="com.install4j.runtime.beans.screens.UninstallWelcomeScreen" />
              </java>
            </serializedBean>
            <condition />
            <validation />
            <preActivation />
            <postActivation />
            <actions />
            <formComponents />
          </screen>
          <screen name="Delete Created User" id="1783" customizedId="" beanClass="com.install4j.runtime.beans.screens.FormScreen" enabled="true" commentSet="false" comment="" rollbackBarrier="false" backButton="2" finishScreen="false" wizardIndexChangeType="unchanged" wizardIndexKey="">
            <serializedBean>
              <java class="java.beans.XMLDecoder">
                <object class="com.install4j.runtime.beans.screens.FormScreen">
                  <void property="subTitle">
                    <string>Do you want to delete the created user account?</string>
                  </void>
                  <void property="title">
                    <string>Delete Created User Account</string>
                  </void>
                </object>
              </java>
            </serializedBean>
            <condition>if (context.getBooleanVariable("userCreated")) {
    context.setVariable("groupName", null);
    if (context.getBooleanVariable("groupCreated")) {
        String groupSid = (String)context.getVariable("localGroupForCreatedUser");
        if (groupSid != null) {
            String groupName = WinUser.getAccountName(groupSid);
            if (groupName != null) {
                context.setVariable("groupName", groupName);
            }
        }
    }

    String accountSid = (String)context.getVariable("serviceAccount");
    if (accountSid != null) {
        String userName = WinUser.getAccountName(accountSid);
        if (userName != null) {
            context.setVariable("userName", userName);
            return true;
        }
    }
}
return false;</condition>
            <validation />
            <preActivation />
            <postActivation />
            <actions />
            <formComponents>
              <formComponent name="" id="1869" customizedId="" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent" enabled="true" commentSet="false" comment="" insetTop="" insetLeft="" insetBottom="" insetRight="" resetInitOnPrevious="false">
                <serializedBean>
                  <java class="java.beans.XMLDecoder">
                    <object class="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent">
                      <void property="labelText">
                        <string>A new user has been created by the installer for running services. Do you want to remove the created account?</string>
                      </void>
                    </object>
                  </java>
                </serializedBean>
                <initScript />
                <visibilityScript />
              </formComponent>
              <formComponent name="Remove account" id="1870" customizedId="" beanClass="com.install4j.runtime.beans.formcomponents.CheckboxComponent" enabled="true" commentSet="false" comment="" insetTop="" insetLeft="" insetBottom="" insetRight="" resetInitOnPrevious="false">
                <serializedBean>
                  <java class="java.beans.XMLDecoder">
                    <object class="com.install4j.runtime.beans.formcomponents.CheckboxComponent">
                      <void property="checkboxText">
                        <string>Remove account "${installer:userName}"</string>
                      </void>
                      <void property="coupledComponentIds">
                        <void method="add">
                          <string>1871</string>
                        </void>
                      </void>
                      <void property="variableName">
                        <string>removeUser</string>
                      </void>
                    </object>
                  </java>
                </serializedBean>
                <initScript />
                <visibilityScript />
              </formComponent>
              <formComponent name="Remove Group" id="1871" customizedId="" beanClass="com.install4j.runtime.beans.formcomponents.CheckboxComponent" enabled="true" commentSet="false" comment="" insetTop="" insetLeft="" insetBottom="" insetRight="" resetInitOnPrevious="false">
                <serializedBean>
                  <java class="java.beans.XMLDecoder">
                    <object class="com.install4j.runtime.beans.formcomponents.CheckboxComponent">
                      <void property="checkboxText">
                        <string>Remove local group "${installer:groupName}"</string>
                      </void>
                      <void property="variableName">
                        <string>removeGroup</string>
                      </void>
                    </object>
                  </java>
                </serializedBean>
                <initScript />
                <visibilityScript>context.getVariable("groupName") != null</visibilityScript>
              </formComponent>
            </formComponents>
          </screen>
          <screen name="" id="62" customizedId="" beanClass="com.install4j.runtime.beans.screens.UninstallationScreen" enabled="true" commentSet="false" comment="" rollbackBarrier="false" backButton="2" finishScreen="false" wizardIndexChangeType="unchanged" wizardIndexKey="">
            <serializedBean>
              <java class="java.beans.XMLDecoder">
                <object class="com.install4j.runtime.beans.screens.UninstallationScreen" />
              </java>
            </serializedBean>
            <condition />
            <validation />
            <preActivation />
            <postActivation />
            <actions>
              <link name="" id="1683" customizedId="" beanClass="" enabled="true" targetId="1682" mergedProjectId="" />
              <action name="Delete files created by the application" id="862" customizedId="" beanClass="com.install4j.runtime.beans.actions.files.DeleteFileAction" enabled="true" commentSet="false" comment="" rollbackBarrier="false" multiExec="false" failureStrategy="1" errorMessage="">
                <serializedBean>
                  <java class="java.beans.XMLDecoder">
                    <object class="com.install4j.runtime.beans.actions.files.DeleteFileAction">
                      <void property="files">
                        <array class="java.io.File" length="3">
                          <void index="0">
                            <object class="java.io.File">
                              <string>${installer:sys.userHome}/hello.properties</string>
                            </object>
                          </void>
                          <void index="1">
                            <object class="java.io.File">
                              <string>bin/service_demo.log</string>
                            </object>
                          </void>
                          <void index="2">
                            <object class="java.io.File">
                              <string>bin/nohup.out</string>
                            </object>
                          </void>
                        </array>
                      </void>
                    </object>
                  </java>
                </serializedBean>
                <condition />
              </action>
              <action name="" id="63" customizedId="" beanClass="com.install4j.runtime.beans.actions.UninstallFilesAction" enabled="true" commentSet="false" comment="" rollbackBarrier="true" multiExec="false" failureStrategy="1" errorMessage="">
                <serializedBean>
                  <java class="java.beans.XMLDecoder">
                    <object class="com.install4j.runtime.beans.actions.UninstallFilesAction" />
                  </java>
                </serializedBean>
                <condition />
              </action>
              <action name="Delete created user" id="1872" customizedId="" beanClass="com.install4j.runtime.beans.actions.control.RunScriptAction" enabled="true" commentSet="false" comment="" rollbackBarrier="false" multiExec="false" failureStrategy="1" errorMessage="">
                <serializedBean>
                  <java class="java.beans.XMLDecoder">
                    <object class="com.install4j.runtime.beans.actions.control.RunScriptAction">
                      <void property="script">
                        <object class="com.install4j.api.beans.ScriptProperty">
                          <void property="value">
                            <string>if (context.getBooleanVariable("removeUser")) {
    String accountSid = (String)context.getVariable("serviceAccount");
    if (accountSid != null) {
        WinUser.deleteUser(accountSid);
    }
    if (context.getBooleanVariable("removeGroup")) {
        String groupSid = (String)context.getVariable("localGroupForCreatedUser");
        if (groupSid != null) {
            WinUser.deleteLocalGroup(groupSid);
        }
    }
}
return true;
</string>
                          </void>
                        </object>
                      </void>
                    </object>
                  </java>
                </serializedBean>
                <condition />
              </action>
            </actions>
            <formComponents />
          </screen>
          <screen name="" id="64" customizedId="" beanClass="com.install4j.runtime.beans.screens.UninstallFailureScreen" enabled="true" commentSet="false" comment="" rollbackBarrier="false" backButton="2" finishScreen="true" wizardIndexChangeType="unchanged" wizardIndexKey="">
            <serializedBean>
              <java class="java.beans.XMLDecoder">
                <object class="com.install4j.runtime.beans.screens.UninstallFailureScreen" />
              </java>
            </serializedBean>
            <condition />
            <validation />
            <preActivation />
            <postActivation />
            <actions />
            <formComponents />
          </screen>
          <screen name="" id="65" customizedId="" beanClass="com.install4j.runtime.beans.screens.UninstallSuccessScreen" enabled="true" commentSet="false" comment="" rollbackBarrier="false" backButton="2" finishScreen="true" wizardIndexChangeType="unchanged" wizardIndexKey="">
            <serializedBean>
              <java class="java.beans.XMLDecoder">
                <object class="com.install4j.runtime.beans.screens.UninstallSuccessScreen" />
              </java>
            </serializedBean>
            <condition />
            <validation />
            <preActivation />
            <postActivation />
            <actions />
            <formComponents />
          </screen>
        </screens>
      </application>
      <application name="Standalone updater" id="535" customizedId="" beanClass="com.install4j.runtime.beans.applications.CustomApplication" enabled="true" commentSet="true" comment="This is the unmodified application template &quot;Standalone updater&quot; except for the completion of a valid update descriptor URL in the &quot;Check for update&quot; action." fileset="" customIcnsFile="${compiler:sys.install4jHome}/resource/macos/updater.icns" customIcoFile="${compiler:sys.install4jHome}/resource/updater.ico" automaticLauncherIntegration="false" launchMode="startupFirstWindow" launchInNewProcess="false" launchSchedule="updateSchedule" allLaunchers="true">
        <serializedBean>
          <java class="java.beans.XMLDecoder">
            <object class="com.install4j.runtime.beans.applications.CustomApplication">
              <void property="customIconImageFiles">
                <void method="add">
                  <object class="com.install4j.api.beans.ExternalFile">
                    <string>${compiler:sys.install4jHome}/resource/updater_16.png</string>
                  </object>
                </void>
                <void method="add">
                  <object class="com.install4j.api.beans.ExternalFile">
                    <string>${compiler:sys.install4jHome}/resource/updater_32.png</string>
                  </object>
                </void>
              </void>
              <void property="executableDirectory">
                <object class="java.io.File">
                  <string>.</string>
                </object>
              </void>
              <void property="executableName">
                <string>updater</string>
              </void>
              <void property="useCustomIcon">
                <boolean>true</boolean>
              </void>
              <void property="windowTitle">
                <string>${i18n:updater.WindowTitle("${compiler:sys.fullName}")}</string>
              </void>
            </object>
          </java>
        </serializedBean>
        <launcherIds />
        <variables />
        <startup>
          <screen name="" id="536" customizedId="" beanClass="com.install4j.runtime.beans.screens.StartupScreen" enabled="true" commentSet="false" comment="" rollbackBarrier="false" backButton="2" finishScreen="false" wizardIndexChangeType="unchanged" wizardIndexKey="">
            <serializedBean>
              <java class="java.beans.XMLDecoder">
                <object class="com.install4j.runtime.beans.screens.StartupScreen" />
              </java>
            </serializedBean>
            <condition />
            <validation />
            <preActivation />
            <postActivation />
            <actions />
            <formComponents />
          </screen>
        </startup>
        <screens>
          <screen name="Welcome" id="1394" customizedId="" beanClass="com.install4j.runtime.beans.screens.CustomizableBannerScreen" enabled="true" commentSet="false" comment="" rollbackBarrier="false" backButton="2" finishScreen="false" wizardIndexChangeType="unchanged" wizardIndexKey="">
            <serializedBean>
              <java class="java.beans.XMLDecoder">
                <object class="com.install4j.runtime.beans.screens.CustomizableBannerScreen">
                  <void property="infoText">
                    <string>${i18n:updater.WelcomeInfoText("${compiler:sys.fullName}")}

The updater can be fully customized and templates for various update scenarios are available in the install4j IDE.</string>
                  </void>
                  <void property="title">
                    <string>${i18n:updater.WelcomeTitle("${compiler:sys.fullName}")}</string>
                  </void>
                </object>
              </java>
            </serializedBean>
            <condition />
            <validation />
            <preActivation />
            <postActivation />
            <actions />
            <formComponents />
          </screen>
          <screen name="Check for update" id="1395" customizedId="" beanClass="com.install4j.runtime.beans.screens.CustomizableProgressScreen" enabled="true" commentSet="false" comment="" rollbackBarrier="false" backButton="2" finishScreen="false" wizardIndexChangeType="unchanged" wizardIndexKey="">
            <serializedBean>
              <java class="java.beans.XMLDecoder">
                <object class="com.install4j.runtime.beans.screens.CustomizableProgressScreen">
                  <void property="initialStatusMessage">
                    <string>${i18n:updater.CheckForUpdateLabel}</string>
                  </void>
                  <void property="subTitle">
                    <string>${i18n:updater.CheckForUpdateSubtitle}</string>
                  </void>
                  <void property="title">
                    <string>${i18n:updater.CheckForUpdateTitle}</string>
                  </void>
                </object>
              </java>
            </serializedBean>
            <condition />
            <validation />
            <preActivation />
            <postActivation />
            <actions>
              <action name="" id="1396" customizedId="" beanClass="com.install4j.runtime.beans.actions.control.SetProgressAction" enabled="true" commentSet="false" comment="" rollbackBarrier="false" multiExec="false" failureStrategy="1" errorMessage="">
                <serializedBean>
                  <java class="java.beans.XMLDecoder">
                    <object class="com.install4j.runtime.beans.actions.control.SetProgressAction">
                      <void property="progressChangeType">
                        <object class="com.install4j.runtime.beans.actions.control.ProgressChangeType" field="SET_INDETERMINATE" />
                      </void>
                    </object>
                  </java>
                </serializedBean>
                <condition />
              </action>
              <action name="" id="1397" customizedId="" beanClass="com.install4j.runtime.beans.actions.update.CheckForUpdateAction" enabled="true" commentSet="false" comment="" rollbackBarrier="false" multiExec="false" failureStrategy="2" errorMessage="">
                <serializedBean>
                  <java class="java.beans.XMLDecoder">
                    <object class="com.install4j.runtime.beans.actions.update.CheckForUpdateAction">
                      <void property="updateDescriptorUrl">
                        <string>${compiler:sys.updatesUrl}</string>
                      </void>
                      <void property="variable">
                        <string>updateDescriptor</string>
                      </void>
                    </object>
                  </java>
                </serializedBean>
                <condition />
              </action>
              <action name="" id="1398" customizedId="" beanClass="com.install4j.runtime.beans.actions.control.SleepAction" enabled="true" commentSet="false" comment="" rollbackBarrier="false" multiExec="false" failureStrategy="1" errorMessage="">
                <serializedBean>
                  <java class="java.beans.XMLDecoder">
                    <object class="com.install4j.runtime.beans.actions.control.SleepAction" />
                  </java>
                </serializedBean>
                <condition />
              </action>
              <action name="Update descriptor entry" id="1399" customizedId="" beanClass="com.install4j.runtime.beans.actions.control.SetVariableAction" enabled="true" commentSet="false" comment="" rollbackBarrier="false" multiExec="false" failureStrategy="1" errorMessage="">
                <serializedBean>
                  <java class="java.beans.XMLDecoder">
                    <object class="com.install4j.runtime.beans.actions.control.SetVariableAction">
                      <void property="script">
                        <object class="com.install4j.api.beans.ScriptProperty">
                          <void property="value">
                            <string>((UpdateDescriptor)context.getVariable("updateDescriptor")).getPossibleUpdateEntry()</string>
                          </void>
                        </object>
                      </void>
                      <void property="variableName">
                        <string>updateDescriptorEntry</string>
                      </void>
                    </object>
                  </java>
                </serializedBean>
                <condition />
              </action>
              <group name="Update available" id="1400" customizedId="" beanClass="com.install4j.runtime.beans.groups.ActionGroup" enabled="true" commentSet="false" comment="">
                <serializedBean>
                  <java class="java.beans.XMLDecoder">
                    <object class="com.install4j.runtime.beans.groups.ActionGroup">
                      <void property="conditionExpression">
                        <object class="com.install4j.api.beans.ScriptProperty">
                          <void property="value">
                            <string>context.getVariable("updateDescriptorEntry") != null</string>
                          </void>
                        </object>
                      </void>
                    </object>
                  </java>
                </serializedBean>
                <beans>
                  <action name="New version" id="1401" customizedId="" beanClass="com.install4j.runtime.beans.actions.control.SetVariableAction" enabled="true" commentSet="false" comment="" rollbackBarrier="false" multiExec="false" failureStrategy="1" errorMessage="">
                    <serializedBean>
                      <java class="java.beans.XMLDecoder">
                        <object class="com.install4j.runtime.beans.actions.control.SetVariableAction">
                          <void property="script">
                            <object class="com.install4j.api.beans.ScriptProperty">
                              <void property="value">
                                <string>((UpdateDescriptorEntry)context.getVariable("updateDescriptorEntry")).getNewVersion()</string>
                              </void>
                            </object>
                          </void>
                          <void property="variableName">
                            <string>updaterNewVersion</string>
                          </void>
                        </object>
                      </java>
                    </serializedBean>
                    <condition />
                  </action>
                  <action name="Download size" id="1402" customizedId="" beanClass="com.install4j.runtime.beans.actions.control.SetVariableAction" enabled="true" commentSet="false" comment="" rollbackBarrier="false" multiExec="false" failureStrategy="1" errorMessage="">
                    <serializedBean>
                      <java class="java.beans.XMLDecoder">
                        <object class="com.install4j.runtime.beans.actions.control.SetVariableAction">
                          <void property="script">
                            <object class="com.install4j.api.beans.ScriptProperty">
                              <void property="value">
                                <string>((UpdateDescriptorEntry)context.getVariable("updateDescriptorEntry")).getFileSizeVerbose()</string>
                              </void>
                            </object>
                          </void>
                          <void property="variableName">
                            <string>updaterDownloadSize</string>
                          </void>
                        </object>
                      </java>
                    </serializedBean>
                    <condition />
                  </action>
                  <action name="Comment" id="1403" customizedId="" beanClass="com.install4j.runtime.beans.actions.control.SetVariableAction" enabled="true" commentSet="false" comment="" rollbackBarrier="false" multiExec="false" failureStrategy="1" errorMessage="">
                    <serializedBean>
                      <java class="java.beans.XMLDecoder">
                        <object class="com.install4j.runtime.beans.actions.control.SetVariableAction">
                          <void property="script">
                            <object class="com.install4j.api.beans.ScriptProperty">
                              <void property="value">
                                <string>((UpdateDescriptorEntry)context.getVariable("updateDescriptorEntry")).getComment()</string>
                              </void>
                            </object>
                          </void>
                          <void property="variableName">
                            <string>updaterComment</string>
                          </void>
                        </object>
                      </java>
                    </serializedBean>
                    <condition />
                  </action>
                  <action name="Download directory" id="1404" customizedId="" beanClass="com.install4j.runtime.beans.actions.control.SetVariableAction" enabled="true" commentSet="false" comment="" rollbackBarrier="false" multiExec="false" failureStrategy="1" errorMessage="">
                    <serializedBean>
                      <java class="java.beans.XMLDecoder">
                        <object class="com.install4j.runtime.beans.actions.control.SetVariableAction">
                          <void property="script">
                            <object class="com.install4j.api.beans.ScriptProperty">
                              <void property="value">
                                <string>Util.getUserHome()</string>
                              </void>
                            </object>
                          </void>
                          <void property="variableName">
                            <string>updaterDownloadDir</string>
                          </void>
                        </object>
                      </java>
                    </serializedBean>
                    <condition />
                  </action>
                  <action name="Download URL" id="1405" customizedId="" beanClass="com.install4j.runtime.beans.actions.control.SetVariableAction" enabled="true" commentSet="false" comment="" rollbackBarrier="false" multiExec="false" failureStrategy="1" errorMessage="">
                    <serializedBean>
                      <java class="java.beans.XMLDecoder">
                        <object class="com.install4j.runtime.beans.actions.control.SetVariableAction">
                          <void property="script">
                            <object class="com.install4j.api.beans.ScriptProperty">
                              <void property="value">
                                <string>((UpdateDescriptorEntry)context.getVariable("updateDescriptorEntry")).getURL().toExternalForm()</string>
                              </void>
                            </object>
                          </void>
                          <void property="variableName">
                            <string>updaterDownloadUrl</string>
                          </void>
                        </object>
                      </java>
                    </serializedBean>
                    <condition />
                  </action>
                  <action name="Archive" id="1406" customizedId="" beanClass="com.install4j.runtime.beans.actions.control.SetVariableAction" enabled="true" commentSet="false" comment="" rollbackBarrier="false" multiExec="false" failureStrategy="1" errorMessage="">
                    <serializedBean>
                      <java class="java.beans.XMLDecoder">
                        <object class="com.install4j.runtime.beans.actions.control.SetVariableAction">
                          <void property="script">
                            <object class="com.install4j.api.beans.ScriptProperty">
                              <void property="value">
                                <string>((UpdateDescriptorEntry)context.getVariable("updateDescriptorEntry")).isArchive() ? Boolean.TRUE : Boolean.FALSE</string>
                              </void>
                            </object>
                          </void>
                          <void property="variableName">
                            <string>isArchive</string>
                          </void>
                        </object>
                      </java>
                    </serializedBean>
                    <condition />
                  </action>
                </beans>
              </group>
            </actions>
            <formComponents />
          </screen>
          <group name="Up to date" id="1407" customizedId="" beanClass="com.install4j.runtime.beans.groups.ScreenGroup" enabled="true" commentSet="false" comment="">
            <serializedBean>
              <java class="java.beans.XMLDecoder">
                <object class="com.install4j.runtime.beans.groups.ScreenGroup">
                  <void property="conditionExpression">
                    <object class="com.install4j.api.beans.ScriptProperty">
                      <void property="value">
                        <string>context.getVariable("updateDescriptorEntry") == null</string>
                      </void>
                    </object>
                  </void>
                </object>
              </java>
            </serializedBean>
            <beans>
              <screen name="Up to date notification" id="1408" customizedId="" beanClass="com.install4j.runtime.beans.screens.CustomizableBannerScreen" enabled="true" commentSet="false" comment="" rollbackBarrier="false" backButton="2" finishScreen="true" wizardIndexChangeType="unchanged" wizardIndexKey="">
                <serializedBean>
                  <java class="java.beans.XMLDecoder">
                    <object class="com.install4j.runtime.beans.screens.CustomizableBannerScreen">
                      <void property="infoText">
                        <string>${i18n:updater.UpToDateInfoText("${compiler:sys.fullName}")}</string>
                      </void>
                      <void property="title">
                        <string>${i18n:updater.UpToDateTitle}</string>
                      </void>
                    </object>
                  </java>
                </serializedBean>
                <condition />
                <validation />
                <preActivation />
                <postActivation />
                <actions />
                <formComponents />
              </screen>
            </beans>
          </group>
          <group name="Update available" id="1409" customizedId="" beanClass="com.install4j.runtime.beans.groups.ScreenGroup" enabled="true" commentSet="false" comment="">
            <serializedBean>
              <java class="java.beans.XMLDecoder">
                <object class="com.install4j.runtime.beans.groups.ScreenGroup">
                  <void property="conditionExpression">
                    <object class="com.install4j.api.beans.ScriptProperty">
                      <void property="value">
                        <string>context.getVariable("updateDescriptorEntry") != null</string>
                      </void>
                    </object>
                  </void>
                </object>
              </java>
            </serializedBean>
            <beans>
              <screen name="New version available" id="1410" customizedId="" beanClass="com.install4j.runtime.beans.screens.FormScreen" enabled="true" commentSet="false" comment="" rollbackBarrier="false" backButton="2" finishScreen="false" wizardIndexChangeType="unchanged" wizardIndexKey="">
                <serializedBean>
                  <java class="java.beans.XMLDecoder">
                    <object class="com.install4j.runtime.beans.screens.FormScreen">
                      <void property="subTitle">
                        <string>${i18n:updater.NewVersionAvailableSubtitle("${compiler:sys.fullName}")}</string>
                      </void>
                      <void property="title">
                        <string>${i18n:updater.NewVersionAvailableTitle}</string>
                      </void>
                    </object>
                  </java>
                </serializedBean>
                <condition />
                <validation />
                <preActivation />
                <postActivation />
                <actions />
                <formComponents>
                  <formComponent name="" id="1411" customizedId="" beanClass="com.install4j.runtime.beans.formcomponents.KeyValuePairComponent" enabled="true" commentSet="false" comment="" insetTop="" insetLeft="" insetBottom="" insetRight="" resetInitOnPrevious="false">
                    <serializedBean>
                      <java class="java.beans.XMLDecoder">
                        <object class="com.install4j.runtime.beans.formcomponents.KeyValuePairComponent">
                          <void property="labelText">
                            <string>${i18n:updater.CurrentVersionLabel}</string>
                          </void>
                          <void property="valueLabelColor">
                            <object class="java.awt.Color">
                              <int>128</int>
                              <int>0</int>
                              <int>0</int>
                              <int>255</int>
                            </object>
                          </void>
                          <void property="valueLabelFont">
                            <object class="java.awt.Font">
                              <string>dialog</string>
                              <int>1</int>
                              <int>0</int>
                            </object>
                          </void>
                          <void property="valueLabelText">
                            <string>${installer:sys.version}</string>
                          </void>
                        </object>
                      </java>
                    </serializedBean>
                    <initScript />
                    <visibilityScript />
                  </formComponent>
                  <group name="" id="1412" customizedId="" beanClass="com.install4j.runtime.beans.groups.HorizontalFormComponentGroup" enabled="true" commentSet="false" comment="">
                    <serializedBean>
                      <java class="java.beans.XMLDecoder">
                        <object class="com.install4j.runtime.beans.groups.HorizontalFormComponentGroup" />
                      </java>
                    </serializedBean>
                    <beans>
                      <formComponent name="" id="1413" customizedId="" beanClass="com.install4j.runtime.beans.formcomponents.KeyValuePairComponent" enabled="true" commentSet="false" comment="" insetTop="" insetLeft="" insetBottom="" insetRight="" resetInitOnPrevious="false">
                        <serializedBean>
                          <java class="java.beans.XMLDecoder">
                            <object class="com.install4j.runtime.beans.formcomponents.KeyValuePairComponent">
                              <void property="labelText">
                                <string>${i18n:updater.NewVersionLabel}</string>
                              </void>
                              <void property="valueLabelColor">
                                <object class="java.awt.Color">
                                  <int>0</int>
                                  <int>128</int>
                                  <int>0</int>
                                  <int>255</int>
                                </object>
                              </void>
                              <void property="valueLabelFont">
                                <object class="java.awt.Font">
                                  <string>dialog</string>
                                  <int>1</int>
                                  <int>0</int>
                                </object>
                              </void>
                              <void property="valueLabelText">
                                <string>${installer:updaterNewVersion}</string>
                              </void>
                            </object>
                          </java>
                        </serializedBean>
                        <initScript />
                        <visibilityScript />
                      </formComponent>
                      <formComponent name="" id="1414" customizedId="" beanClass="com.install4j.runtime.beans.formcomponents.HyperlinkActionLabelComponent" enabled="true" commentSet="false" comment="" insetTop="" insetLeft="5" insetBottom="" insetRight="" resetInitOnPrevious="false">
                        <serializedBean>
                          <java class="java.beans.XMLDecoder">
                            <object class="com.install4j.runtime.beans.formcomponents.HyperlinkActionLabelComponent">
                              <void property="actionScript">
                                <object class="com.install4j.api.beans.ScriptProperty">
                                  <void property="value">
                                    <string>context.goForward(1, false, false);</string>
                                  </void>
                                </object>
                              </void>
                              <void property="hyperlinkText">
                                <string>${i18n:updater.ShowComments}</string>
                              </void>
                            </object>
                          </java>
                        </serializedBean>
                        <initScript />
                        <visibilityScript> ((String)context.getVariable("updaterComment")).length() &gt; 0</visibilityScript>
                      </formComponent>
                    </beans>
                  </group>
                  <formComponent name="" id="1415" customizedId="" beanClass="com.install4j.runtime.beans.formcomponents.SpacerComponent" enabled="true" commentSet="false" comment="" insetTop="" insetLeft="" insetBottom="" insetRight="" resetInitOnPrevious="false">
                    <serializedBean>
                      <java class="java.beans.XMLDecoder">
                        <object class="com.install4j.runtime.beans.formcomponents.SpacerComponent" />
                      </java>
                    </serializedBean>
                    <initScript />
                    <visibilityScript />
                  </formComponent>
                  <formComponent name="" id="1416" customizedId="" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent" enabled="true" commentSet="false" comment="" insetTop="" insetLeft="" insetBottom="" insetRight="" resetInitOnPrevious="false">
                    <serializedBean>
                      <java class="java.beans.XMLDecoder">
                        <object class="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent">
                          <void property="labelText">
                            <string>${i18n:updater.DownloadLocationLabel}</string>
                          </void>
                        </object>
                      </java>
                    </serializedBean>
                    <initScript />
                    <visibilityScript />
                  </formComponent>
                  <formComponent name="" id="1417" customizedId="" beanClass="com.install4j.runtime.beans.formcomponents.DirectoryChooserComponent" enabled="true" commentSet="false" comment="" insetTop="" insetLeft="" insetBottom="" insetRight="" resetInitOnPrevious="false">
                    <serializedBean>
                      <java class="java.beans.XMLDecoder">
                        <object class="com.install4j.runtime.beans.formcomponents.DirectoryChooserComponent">
                          <void property="initialFile">
                            <string>${installer:updaterDownloadDir}</string>
                          </void>
                          <void property="labelText">
                            <string>${i18n:updater.DownloadToLabel}</string>
                          </void>
                          <void property="manualEntryAllowed">
                            <boolean>false</boolean>
                          </void>
                          <void property="variableName">
                            <string>updaterDownloadLocation</string>
                          </void>
                        </object>
                      </java>
                    </serializedBean>
                    <initScript />
                    <visibilityScript />
                  </formComponent>
                  <formComponent name="" id="1418" customizedId="" beanClass="com.install4j.runtime.beans.formcomponents.KeyValuePairComponent" enabled="true" commentSet="false" comment="" insetTop="" insetLeft="" insetBottom="" insetRight="" resetInitOnPrevious="false">
                    <serializedBean>
                      <java class="java.beans.XMLDecoder">
                        <object class="com.install4j.runtime.beans.formcomponents.KeyValuePairComponent">
                          <void property="labelText">
                            <string>${i18n:updater.DownloadSizeLabel}</string>
                          </void>
                          <void property="valueLabelText">
                            <string>${installer:updaterDownloadSize}</string>
                          </void>
                        </object>
                      </java>
                    </serializedBean>
                    <initScript />
                    <visibilityScript />
                  </formComponent>
                </formComponents>
              </screen>
              <screen name="Update message" id="1419" customizedId="" beanClass="com.install4j.runtime.beans.screens.CustomizableInfoScreen" enabled="true" commentSet="false" comment="" rollbackBarrier="false" backButton="2" finishScreen="false" wizardIndexChangeType="unchanged" wizardIndexKey="">
                <serializedBean>
                  <java class="java.beans.XMLDecoder">
                    <object class="com.install4j.runtime.beans.screens.CustomizableInfoScreen">
                      <void property="displayedText">
                        <string>${installer:updaterComment}</string>
                      </void>
                      <void property="infoText">
                        <string>${i18n:updater.CommentsLabel}</string>
                      </void>
                      <void property="subTitle">
                        <string>${i18n:updater.CommentsSubTitle}</string>
                      </void>
                      <void property="textSource">
                        <object class="com.install4j.runtime.beans.screens.components.TextSource" field="DIRECT" />
                      </void>
                      <void property="title">
                        <string>${i18n:updater.CommentsTitle}</string>
                      </void>
                    </object>
                  </java>
                </serializedBean>
                <condition>false // This screen is only shown if the user clicks the "Show comments" hyperlink label in the previous screen.
</condition>
                <validation>if (context.isConsole()) {
    context.goBackInHistory(1);
}
return true;</validation>
                <preActivation>WizardContext wizardContext = context.getWizardContext();
wizardContext.setNextButtonVisible(false);
wizardContext.setCancelButtonVisible(false);</preActivation>
                <postActivation />
                <actions />
                <formComponents />
              </screen>
              <screen name="Download new version" id="1420" customizedId="" beanClass="com.install4j.runtime.beans.screens.CustomizableProgressScreen" enabled="true" commentSet="false" comment="" rollbackBarrier="false" backButton="2" finishScreen="false" wizardIndexChangeType="unchanged" wizardIndexKey="">
                <serializedBean>
                  <java class="java.beans.XMLDecoder">
                    <object class="com.install4j.runtime.beans.screens.CustomizableProgressScreen">
                      <void property="subTitle">
                        <string>${i18n:updater.DownloadSubTitle}</string>
                      </void>
                      <void property="title">
                        <string>${i18n:updater.DownloadTitle}</string>
                      </void>
                    </object>
                  </java>
                </serializedBean>
                <condition />
                <validation />
                <preActivation />
                <postActivation />
                <actions>
                  <action name="Download location" id="1421" customizedId="" beanClass="com.install4j.runtime.beans.actions.control.SetVariableAction" enabled="true" commentSet="false" comment="" rollbackBarrier="false" multiExec="false" failureStrategy="1" errorMessage="">
                    <serializedBean>
                      <java class="java.beans.XMLDecoder">
                        <object class="com.install4j.runtime.beans.actions.control.SetVariableAction">
                          <void property="script">
                            <object class="com.install4j.api.beans.ScriptProperty">
                              <void property="value">
                                <string>context.getVariable("updaterDownloadLocation") + File.separator + ((UpdateDescriptorEntry)context.getVariable("updateDescriptorEntry")).getFileName()</string>
                              </void>
                            </object>
                          </void>
                          <void property="variableName">
                            <string>updaterDownloadFile</string>
                          </void>
                        </object>
                      </java>
                    </serializedBean>
                    <condition />
                  </action>
                  <action name="" id="1422" customizedId="" beanClass="com.install4j.runtime.beans.actions.update.DownloadFileAction" enabled="true" commentSet="false" comment="" rollbackBarrier="false" multiExec="false" failureStrategy="2" errorMessage="">
                    <serializedBean>
                      <java class="java.beans.XMLDecoder">
                        <object class="com.install4j.runtime.beans.actions.update.DownloadFileAction">
                          <void property="targetFile">
                            <string>${installer:updaterDownloadFile}</string>
                          </void>
                          <void property="url">
                            <string>${installer:updaterDownloadUrl}</string>
                          </void>
                        </object>
                      </java>
                    </serializedBean>
                    <condition />
                  </action>
                  <action name="" id="1423" customizedId="" beanClass="com.install4j.runtime.beans.actions.files.SetModeAction" enabled="true" commentSet="false" comment="" rollbackBarrier="false" multiExec="false" failureStrategy="1" errorMessage="">
                    <serializedBean>
                      <java class="java.beans.XMLDecoder">
                        <object class="com.install4j.runtime.beans.actions.files.SetModeAction">
                          <void property="files">
                            <array class="java.io.File" length="1">
                              <void index="0">
                                <object class="java.io.File">
                                  <string>${installer:updaterDownloadFile}</string>
                                </object>
                              </void>
                            </array>
                          </void>
                          <void property="mode">
                            <string>755</string>
                          </void>
                        </object>
                      </java>
                    </serializedBean>
                    <condition />
                  </action>
                </actions>
                <formComponents />
              </screen>
              <screen name="Finish" id="1424" customizedId="" beanClass="com.install4j.runtime.beans.screens.BannerFormScreen" enabled="true" commentSet="false" comment="" rollbackBarrier="false" backButton="2" finishScreen="true" wizardIndexChangeType="unchanged" wizardIndexKey="">
                <serializedBean>
                  <java class="java.beans.XMLDecoder">
                    <object class="com.install4j.runtime.beans.screens.BannerFormScreen">
                      <void property="infoText">
                        <string>${i18n:updater.FinishInfoText("${compiler:sys.fullName}")}</string>
                      </void>
                      <void property="title">
                        <string>${i18n:updater.FinishTitle}</string>
                      </void>
                    </object>
                  </java>
                </serializedBean>
                <condition />
                <validation />
                <preActivation />
                <postActivation />
                <actions>
                  <group name="Execute installer" id="1425" customizedId="" beanClass="com.install4j.runtime.beans.groups.ActionGroup" enabled="true" commentSet="false" comment="">
                    <serializedBean>
                      <java class="java.beans.XMLDecoder">
                        <object class="com.install4j.runtime.beans.groups.ActionGroup">
                          <void property="conditionExpression">
                            <object class="com.install4j.api.beans.ScriptProperty">
                              <void property="value">
                                <string>((Integer)context.getVariable("updaterLaunchSelection")).intValue() == 0 &amp;&amp; !context.getBooleanVariable("isArchive")</string>
                              </void>
                            </object>
                          </void>
                        </object>
                      </java>
                    </serializedBean>
                    <beans>
                      <action name="Set installer arguments" id="1426" customizedId="" beanClass="com.install4j.runtime.beans.actions.control.SetVariableAction" enabled="true" commentSet="false" comment="" rollbackBarrier="false" multiExec="false" failureStrategy="1" errorMessage="">
                        <serializedBean>
                          <java class="java.beans.XMLDecoder">
                            <object class="com.install4j.runtime.beans.actions.control.SetVariableAction">
                              <void property="script">
                                <object class="com.install4j.api.beans.ScriptProperty">
                                  <void property="value">
                                    <string>if (context.isUnattended()) {
    return new String[] {"-q", "-wait", "20"};
} else if (context.isConsole()) {
    return "-c";
} else {
    return "";
}</string>
                                  </void>
                                </object>
                              </void>
                              <void property="variableName">
                                <string>installerArguments</string>
                              </void>
                            </object>
                          </java>
                        </serializedBean>
                        <condition />
                      </action>
                      <action name="" id="1427" customizedId="" beanClass="com.install4j.runtime.beans.actions.update.ShutdownCallingLauncherAction" enabled="true" commentSet="false" comment="" rollbackBarrier="false" multiExec="false" failureStrategy="1" errorMessage="">
                        <serializedBean>
                          <java class="java.beans.XMLDecoder">
                            <object class="com.install4j.runtime.beans.actions.update.ShutdownCallingLauncherAction" />
                          </java>
                        </serializedBean>
                        <condition />
                      </action>
                      <action name="" id="1428" customizedId="" beanClass="com.install4j.runtime.beans.actions.misc.RunExecutableAction" enabled="true" commentSet="false" comment="" rollbackBarrier="false" multiExec="false" failureStrategy="2" errorMessage="${i18n:updater.LaunchError}">
                        <serializedBean>
                          <java class="java.beans.XMLDecoder">
                            <object class="com.install4j.runtime.beans.actions.misc.RunExecutableAction">
                              <void property="arguments">
                                <array class="java.lang.String" length="1">
                                  <void index="0">
                                    <string>${installer:installerArguments}</string>
                                  </void>
                                </array>
                              </void>
                              <void property="executable">
                                <object class="java.io.File">
                                  <string>${installer:updaterDownloadFile}</string>
                                </object>
                              </void>
                              <void property="workingDirectory">
                                <object class="java.io.File">
                                  <string>${installer:updaterDownloadLocation}</string>
                                </object>
                              </void>
                            </object>
                          </java>
                        </serializedBean>
                        <condition />
                      </action>
                    </beans>
                  </group>
                </actions>
                <formComponents>
                  <formComponent name="" id="1429" customizedId="" beanClass="com.install4j.runtime.beans.formcomponents.LabelComponent" enabled="true" commentSet="false" comment="" insetTop="" insetLeft="" insetBottom="" insetRight="" resetInitOnPrevious="false">
                    <serializedBean>
                      <java class="java.beans.XMLDecoder">
                        <object class="com.install4j.runtime.beans.formcomponents.LabelComponent">
                          <void property="labelText">
                            <string>${i18n:updater.LaunchUpdaterQuestion}</string>
                          </void>
                        </object>
                      </java>
                    </serializedBean>
                    <initScript />
                    <visibilityScript />
                  </formComponent>
                  <formComponent name="" id="1430" customizedId="" beanClass="com.install4j.runtime.beans.formcomponents.SpacerComponent" enabled="true" commentSet="false" comment="" insetTop="" insetLeft="" insetBottom="" insetRight="" resetInitOnPrevious="false">
                    <serializedBean>
                      <java class="java.beans.XMLDecoder">
                        <object class="com.install4j.runtime.beans.formcomponents.SpacerComponent">
                          <void property="height">
                            <int>5</int>
                          </void>
                        </object>
                      </java>
                    </serializedBean>
                    <initScript />
                    <visibilityScript />
                  </formComponent>
                  <formComponent name="" id="1431" customizedId="" beanClass="com.install4j.runtime.beans.formcomponents.RadiobuttonsComponent" enabled="true" commentSet="false" comment="" insetTop="" insetLeft="" insetBottom="" insetRight="" resetInitOnPrevious="false">
                    <serializedBean>
                      <java class="java.beans.XMLDecoder">
                        <object class="com.install4j.runtime.beans.formcomponents.RadiobuttonsComponent">
                          <void property="radioButtonLabels">
                            <array class="java.lang.String" length="2">
                              <void index="0">
                                <string>${i18n:updater.LaunchUpdaterLabel}</string>
                              </void>
                              <void index="1">
                                <string>${i18n:updater.DoNotLaunchUpdaterLabel}</string>
                              </void>
                            </array>
                          </void>
                          <void property="variableName">
                            <string>updaterLaunchSelection</string>
                          </void>
                        </object>
                      </java>
                    </serializedBean>
                    <initScript />
                    <visibilityScript>!context.getBooleanVariable("isArchive")</visibilityScript>
                  </formComponent>
                  <formComponent name="" id="1432" customizedId="" beanClass="com.install4j.runtime.beans.formcomponents.HyperlinkActionLabelComponent" enabled="true" commentSet="false" comment="" insetTop="" insetLeft="" insetBottom="" insetRight="" resetInitOnPrevious="false">
                    <serializedBean>
                      <java class="java.beans.XMLDecoder">
                        <object class="com.install4j.runtime.beans.formcomponents.HyperlinkActionLabelComponent">
                          <void property="actionScript">
                            <object class="com.install4j.api.beans.ScriptProperty">
                              <void property="value">
                                <string>Util.showPath((String)context.getVariable("updaterDownloadFile"));</string>
                              </void>
                            </object>
                          </void>
                          <void property="hyperlinkText">
                            <string>${i18n:updater.OpenContainingFolderLabel}</string>
                          </void>
                        </object>
                      </java>
                    </serializedBean>
                    <initScript />
                    <visibilityScript>!context.isConsole()</visibilityScript>
                  </formComponent>
                  <formComponent name="" id="1433" customizedId="" beanClass="com.install4j.runtime.beans.formcomponents.ProgressComponent" enabled="true" commentSet="false" comment="" insetTop="" insetLeft="" insetBottom="" insetRight="" resetInitOnPrevious="false">
                    <serializedBean>
                      <java class="java.beans.XMLDecoder">
                        <object class="com.install4j.runtime.beans.formcomponents.ProgressComponent">
                          <void property="detailVisible">
                            <boolean>false</boolean>
                          </void>
                          <void property="hideInitially">
                            <boolean>true</boolean>
                          </void>
                        </object>
                      </java>
                    </serializedBean>
                    <initScript />
                    <visibilityScript />
                  </formComponent>
                </formComponents>
              </screen>
            </beans>
          </group>
        </screens>
      </application>
      <application name="Configure greeting" id="594" customizedId="" beanClass="com.install4j.runtime.beans.applications.CustomApplication" enabled="true" commentSet="true" comment="This is a maintenance application that the user can invoke after the application has been installed. A link is placed into the progam group on Windows, the &quot;Hello GUI&quot; launcher also has a menu item that invokes this installer application and updates the greeting." fileset="" customIcnsFile="" customIcoFile="" automaticLauncherIntegration="false" launchMode="startupFirstWindow" launchInNewProcess="false" launchSchedule="updateSchedule" allLaunchers="true">
        <serializedBean>
          <java class="java.beans.XMLDecoder">
            <object class="com.install4j.runtime.beans.applications.CustomApplication">
              <void property="changeWorkingDir">
                <boolean>true</boolean>
              </void>
              <void property="customIconImageFiles">
                <void method="add">
                  <object class="com.install4j.api.beans.ExternalFile">
                    <string>./resources/preferences16x16.png</string>
                  </object>
                </void>
                <void method="add">
                  <object class="com.install4j.api.beans.ExternalFile">
                    <string>./resources/preferences32x32.png</string>
                  </object>
                </void>
              </void>
              <void property="executableDirectory">
                <object class="java.io.File">
                  <string>.</string>
                </object>
              </void>
              <void property="executableName">
                <string>configureGreeting</string>
              </void>
              <void property="useCustomIcon">
                <boolean>true</boolean>
              </void>
              <void property="windowTitle">
                <string>Configure Greeting</string>
              </void>
            </object>
          </java>
        </serializedBean>
        <launcherIds />
        <variables />
        <startup>
          <screen name="" id="595" customizedId="" beanClass="com.install4j.runtime.beans.screens.StartupScreen" enabled="true" commentSet="false" comment="" rollbackBarrier="false" backButton="2" finishScreen="false" wizardIndexChangeType="unchanged" wizardIndexKey="">
            <serializedBean>
              <java class="java.beans.XMLDecoder">
                <object class="com.install4j.runtime.beans.screens.StartupScreen" />
              </java>
            </serializedBean>
            <condition />
            <validation />
            <preActivation />
            <postActivation />
            <actions>
              <action name="" id="1280" customizedId="" beanClass="com.install4j.runtime.beans.actions.registry.LoadInstallerVariablesAction" enabled="true" commentSet="false" comment="" rollbackBarrier="false" multiExec="false" failureStrategy="1" errorMessage="">
                <serializedBean>
                  <java class="java.beans.XMLDecoder">
                    <object class="com.install4j.runtime.beans.actions.registry.LoadInstallerVariablesAction">
                      <void property="packageName">
                        <string>${compiler:sys.applicationId}</string>
                      </void>
                    </object>
                  </java>
                </serializedBean>
                <condition />
              </action>
            </actions>
            <formComponents />
          </screen>
        </startup>
        <screens>
          <link name="" id="596" customizedId="" beanClass="" enabled="true" targetId="73" mergedProjectId="" />
          <screen name="Finish" id="598" customizedId="" beanClass="com.install4j.runtime.beans.screens.CustomizableBannerScreen" enabled="true" commentSet="false" comment="" rollbackBarrier="false" backButton="2" finishScreen="true" wizardIndexChangeType="unchanged" wizardIndexKey="">
            <serializedBean>
              <java class="java.beans.XMLDecoder">
                <object class="com.install4j.runtime.beans.screens.CustomizableBannerScreen">
                  <void property="infoText">
                    <string>Your greeting name has been updated in the Hello World Suite Greeting database.</string>
                  </void>
                  <void property="title">
                    <string>Configuration Updated</string>
                  </void>
                </object>
              </java>
            </serializedBean>
            <condition />
            <validation />
            <preActivation />
            <postActivation />
            <actions>
              <link name="" id="1278" customizedId="" beanClass="" enabled="true" targetId="1145" mergedProjectId="" />
            </actions>
            <formComponents />
          </screen>
        </screens>
      </application>
    </applications>
  </installerGui>
  <mediaSets>
    <windows name="Windows" id="8" customizedId="" mediaFileName="" installDir="hello" overridePrincipalLanguage="false" jreBitType="32" runPostProcessor="false" postProcessor="" failOnPostProcessorError="false" useLegacyMediaFileIds="false" legacyMediaFileIds="" includedJRE="" manualJREEntry="false" bundleType="1" jreURL="" jreFtpURL="" jreShared="false" directDownload="false" installOnlyIfNecessary="false" customInstallBaseDir="" contentFilesType="1" downloadURL="" verifyIntegrity="true">
      <excludedLaunchers />
      <excludedComponents />
      <excludedBeans />
      <overriddenPrincipalLanguage id="en" customLocalizationFile="" />
      <exclude />
      <variables />
      <autoUpdate useMinUpdatableVersion="false" minUpdatableVersion="" useMaxUpdatableVersion="false" maxUpdatableVersion="">
        <commentFiles />
        <customAttributes />
      </autoUpdate>
    </windows>
    <linuxRPM name="Linux RPM" id="9" customizedId="" mediaFileName="" installDir="/opt/hello" overridePrincipalLanguage="false" jreBitType="all" runPostProcessor="false" postProcessor="" failOnPostProcessorError="false" useLegacyMediaFileIds="false" legacyMediaFileIds="" includedJRE="" manualJREEntry="false" os="linux" arch="i386">
      <excludedLaunchers />
      <excludedComponents />
      <excludedBeans />
      <overriddenPrincipalLanguage id="en" customLocalizationFile="" />
      <exclude>
        <entry location=".i4j_fileset_1148" fileType="regular" />
      </exclude>
      <variables />
      <autoUpdate useMinUpdatableVersion="false" minUpdatableVersion="" useMaxUpdatableVersion="false" maxUpdatableVersion="">
        <commentFiles />
        <customAttributes />
      </autoUpdate>
      <preInstallScript mode="1" file="">
        <content />
      </preInstallScript>
      <postInstallScript mode="1" file="">
        <content />
      </postInstallScript>
      <preUninstallScript mode="1" file="">
        <content />
      </preUninstallScript>
      <postUninstallScript mode="1" file="">
        <content />
      </postUninstallScript>
    </linuxRPM>
    <linuxDeb name="Linux Deb Archive" id="1677" customizedId="" mediaFileName="" installDir="/opt/hello" overridePrincipalLanguage="false" jreBitType="all" runPostProcessor="false" postProcessor="" failOnPostProcessorError="false" useLegacyMediaFileIds="false" legacyMediaFileIds="" includedJRE="" manualJREEntry="false" bzip="true" description="Hello Sample Project" dependencies="" maintainerEmail="info@ej-technologies.com">
      <excludedLaunchers />
      <excludedComponents />
      <excludedBeans />
      <overriddenPrincipalLanguage id="en" customLocalizationFile="" />
      <exclude>
        <entry location=".i4j_fileset_1148" fileType="regular" />
      </exclude>
      <variables />
      <autoUpdate useMinUpdatableVersion="false" minUpdatableVersion="" useMaxUpdatableVersion="false" maxUpdatableVersion="">
        <commentFiles />
        <customAttributes />
      </autoUpdate>
      <preInstallScript mode="1" file="">
        <content />
      </preInstallScript>
      <postInstallScript mode="1" file="">
        <content />
      </postInstallScript>
      <preUninstallScript mode="1" file="">
        <content />
      </preUninstallScript>
      <postUninstallScript mode="1" file="">
        <content />
      </postUninstallScript>
    </linuxDeb>
    <macos name="Mac OS X Single Bundle" id="10" customizedId="" mediaFileName="" installDir="hello" overridePrincipalLanguage="false" jreBitType="all" runPostProcessor="false" postProcessor="" failOnPostProcessorError="false" useLegacyMediaFileIds="false" legacyMediaFileIds="" customInstallBaseDir="" contentFilesType="1" downloadURL="" launcherId="5">
      <excludedComponents />
      <excludedBeans />
      <overriddenPrincipalLanguage id="en" customLocalizationFile="" />
      <exclude>
        <entry location=".i4j_fileset_1148" fileType="regular" />
      </exclude>
      <variables />
      <autoUpdate useMinUpdatableVersion="false" minUpdatableVersion="" useMaxUpdatableVersion="false" maxUpdatableVersion="">
        <commentFiles />
        <customAttributes />
      </autoUpdate>
    </macos>
    <macosFolder name="Mac OS X Folder" id="11" customizedId="" mediaFileName="${compiler:sys.shortName}_${compiler:sys.platform}_${compiler:sys.version}_folder" installDir="hello" overridePrincipalLanguage="false" jreBitType="all" runPostProcessor="false" postProcessor="" failOnPostProcessorError="false" useLegacyMediaFileIds="false" legacyMediaFileIds="" customInstallBaseDir="" contentFilesType="1" downloadURL="">
      <excludedLaunchers />
      <excludedComponents />
      <excludedBeans />
      <overriddenPrincipalLanguage id="en" customLocalizationFile="" />
      <exclude>
        <entry location=".i4j_fileset_1148" fileType="regular" />
      </exclude>
      <variables />
      <autoUpdate useMinUpdatableVersion="false" minUpdatableVersion="" useMaxUpdatableVersion="false" maxUpdatableVersion="">
        <commentFiles />
        <customAttributes />
      </autoUpdate>
    </macosFolder>
    <unixInstaller name="Unix Installer" id="12" customizedId="" mediaFileName="" installDir="hello" overridePrincipalLanguage="false" jreBitType="all" runPostProcessor="false" postProcessor="" failOnPostProcessorError="false" useLegacyMediaFileIds="false" legacyMediaFileIds="" includedJRE="" manualJREEntry="false" bundleType="1" jreURL="" jreFtpURL="" jreShared="false" directDownload="false" installOnlyIfNecessary="false" customInstallBaseDir="" contentFilesType="1" downloadURL="">
      <excludedLaunchers />
      <excludedComponents />
      <excludedBeans />
      <overriddenPrincipalLanguage id="en" customLocalizationFile="" />
      <exclude />
      <variables />
      <autoUpdate useMinUpdatableVersion="false" minUpdatableVersion="" useMaxUpdatableVersion="false" maxUpdatableVersion="">
        <commentFiles />
        <customAttributes />
      </autoUpdate>
      <installerScript mode="1" file="">
        <content />
      </installerScript>
    </unixInstaller>
    <windows name="Windows x64" id="463" customizedId="" mediaFileName="${compiler:sys.shortName}_${compiler:sys.platform}-x64_${compiler:sys.version}" installDir="hello" overridePrincipalLanguage="false" jreBitType="32" runPostProcessor="false" postProcessor="" failOnPostProcessorError="false" useLegacyMediaFileIds="false" legacyMediaFileIds="" includedJRE="" manualJREEntry="false" bundleType="1" jreURL="" jreFtpURL="" jreShared="false" directDownload="false" installOnlyIfNecessary="false" customInstallBaseDir="" contentFilesType="1" downloadURL="" verifyIntegrity="true">
      <excludedLaunchers />
      <excludedComponents />
      <excludedBeans />
      <overriddenPrincipalLanguage id="en" customLocalizationFile="" />
      <exclude />
      <variables />
      <autoUpdate useMinUpdatableVersion="false" minUpdatableVersion="" useMaxUpdatableVersion="false" maxUpdatableVersion="">
        <commentFiles />
        <customAttributes />
      </autoUpdate>
    </windows>
  </mediaSets>
  <buildIds buildAll="true" />
</install4j>

