<?xml version="1.0" encoding="UTF-8"?>
<install4j version="4.1.6" transformSequenceNumber="2">
  <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" keepModificationTimes="false" missingFilesStrategy="warn" shortName="hello" publisher="Hello Corporation" publisherWeb="http://www.hello.biz" version="4.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 />
  </application>
  <files>
    <filesets>
      <fileset name="VM options" id="1148" />
    </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="1150" root="1149" location="bin" mode="755" />
      <mountPoint id="1151" root="1135" location="" mode="755" />
    </mountPoints>
    <entries>
      <dirEntry mountPoint="2" file="./gui" overwrite="4" shared="false" mode="644" uninstallMode="0" excludeSuffixes="*.java" dirMode="755">
        <exclude />
      </dirEntry>
      <dirEntry mountPoint="2" file="./cli" overwrite="4" shared="false" mode="644" uninstallMode="0" excludeSuffixes="*.java" dirMode="755">
        <exclude />
      </dirEntry>
      <dirEntry mountPoint="2" file="./service" overwrite="4" shared="false" mode="644" uninstallMode="0" excludeSuffixes="'.java" dirMode="755">
        <exclude />
      </dirEntry>
      <fileEntry mountPoint="3" file="./cli/HelloCli.java" overwrite="4" shared="false" mode="644" uninstallMode="0" />
      <fileEntry mountPoint="3" file="./gui/HelloGui.java" overwrite="4" shared="false" mode="644" uninstallMode="0" />
      <fileEntry mountPoint="3" file="./service/ServiceDemo.java" overwrite="4" shared="false" mode="644" uninstallMode="0" />
      <fileEntry mountPoint="1150" file="./vmoptions/hello_cli.vmoptions" overwrite="4" shared="false" mode="644" uninstallMode="0" />
      <fileEntry mountPoint="1150" file="./vmoptions/hello_gui.vmoptions" overwrite="4" shared="false" mode="644" uninstallMode="0" />
      <fileEntry mountPoint="1150" file="./vmoptions/hello_service.vmoptions" overwrite="4" shared="false" mode="644" uninstallMode="0" />
      <fileEntry mountPoint="1151" file="./vmoptions/hello.vmoptions" overwrite="0" shared="false" mode="644" uninstallMode="0" />
    </entries>
    <components>
      <component name="Hello World Application" id="40" displayDescription="false" selected="true" mandatory="true" downloadable="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" displayDescription="false" selected="true" mandatory="false" downloadable="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" external="false" excludeFromMenu="true" menuName="" icnsFile="" pngIcon16File="" pngIcon32File="" macServiceDependencies="" swtApp="false" fileset="">
      <executable name="hello_cli" type="1" iconSet="false" iconFile="" executableDir="bin" redirectStderr="false" stderrFile="error.log" redirectStdout="false" stdoutFile="output.log" failOnStderrOutput="true" executableMode="2" changeWorkingDirectory="false" workingDirectory="." singleInstance="false" serviceStartType="2" serviceDependencies="" serviceDescription="" jreLocation="" executionLevel="asInvoker" checkConsoleParameter="false">
        <versionInfo include="true" fileVersion="" fileDescription="Hello World Suite Command Line Launcher" legalCopyright="Copyright ej-technologies GmbH, 2002-2003" internalName="helloCli" />
      </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="">
        <classPath>
          <directory location="classes" failOnError="true" />
        </classPath>
        <nativeLibraryDirectories />
      </java>
      <includedFiles />
      <unextractableFiles />
      <customScript mode="1" file="">
        <scriptLines />
      </customScript>
    </launcher>
    <launcher name="Hello World GUI" id="5" external="false" excludeFromMenu="false" menuName="" icnsFile="" pngIcon16File="./resources/hello16x16.png" pngIcon32File="./resources/hello32x32.png" macServiceDependencies="" swtApp="false" fileset="">
      <executable name="hello_gui" type="1" iconSet="true" iconFile="" executableDir="bin" redirectStderr="true" stderrFile="error.log" redirectStdout="false" stdoutFile="output.log" failOnStderrOutput="true" executableMode="1" changeWorkingDirectory="true" workingDirectory="." singleInstance="true" serviceStartType="2" serviceDependencies="" serviceDescription="" jreLocation="" executionLevel="asInvoker" checkConsoleParameter="true">
        <versionInfo include="true" fileVersion="" fileDescription="Hello World Suite GUI Launcher" legalCopyright="Copyright ej-technologies GmbH, 2002-2003" internalName="helloGUI" />
      </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="">
        <classPath>
          <directory location="classes" failOnError="true" />
        </classPath>
        <nativeLibraryDirectories />
      </java>
      <includedFiles />
      <unextractableFiles />
      <customScript mode="1" file="">
        <scriptLines />
      </customScript>
    </launcher>
    <launcher name="Hello World Service" id="19" external="false" excludeFromMenu="true" menuName="" icnsFile="" pngIcon16File="" pngIcon32File="" macServiceDependencies="" swtApp="false" fileset="">
      <executable name="hello_service" type="1" iconSet="false" iconFile="" executableDir="bin" redirectStderr="true" stderrFile="error.log" redirectStdout="true" stdoutFile="output.log" failOnStderrOutput="false" executableMode="3" changeWorkingDirectory="true" workingDirectory="." singleInstance="false" serviceStartType="2" serviceDependencies="" serviceDescription="" jreLocation="" executionLevel="asInvoker" checkConsoleParameter="false">
        <versionInfo include="true" fileVersion="" fileDescription="Hello World Service" legalCopyright="Copyright ej-technologies GmbH, 2002-2003" internalName="helloCli" />
      </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="">
        <classPath>
          <directory location="classes" failOnError="true" />
        </classPath>
        <nativeLibraryDirectories />
      </java>
      <includedFiles />
      <unextractableFiles />
      <customScript mode="1" file="">
        <scriptLines />
      </customScript>
    </launcher>
  </launchers>
  <installerGui installerType="1" suggestPreviousProgramGroup="true" addOnAppId="" suggestPreviousLocations="true">
    <customCode useInstalledFiles="false" />
    <applications>
      <application name="" id="installer" beanClass="com.install4j.runtime.beans.applications.InstallerApplication" enabled="true" commentSet="false" comment="" customIcnsFile="" customIcoFile="">
        <serializedBean>
          <java class="java.beans.XMLDecoder">
            <object class="com.install4j.runtime.beans.applications.InstallerApplication" />
          </java>
        </serializedBean>
        <startup>
          <screen name="" id="15" beanClass="com.install4j.runtime.beans.screens.StartupScreen" enabled="true" commentSet="false" comment="" rollbackBarrier="false" backButton="2" finishScreen="false">
            <serializedBean>
              <java class="java.beans.XMLDecoder">
                <object class="com.install4j.runtime.beans.screens.StartupScreen" />
              </java>
            </serializedBean>
            <condition />
            <validation />
            <preActivation />
            <postActivation />
            <actions>
              <action name="" id="105" beanClass="com.install4j.runtime.beans.actions.misc.RequireAdminAction" 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.misc.RequireAdminAction" />
                  </java>
                </serializedBean>
                <condition>Util.isWindows() || Util.isMacOS()</condition>
              </action>
              <action name="Determine destination for .vmoption file" id="1146" 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" beanClass="com.install4j.runtime.beans.screens.WelcomeScreen" enabled="true" commentSet="false" comment="" rollbackBarrier="false" backButton="2" finishScreen="false">
            <serializedBean>
              <java class="java.beans.XMLDecoder">
                <object class="com.install4j.runtime.beans.screens.WelcomeScreen" />
              </java>
            </serializedBean>
            <condition />
            <validation />
            <preActivation />
            <postActivation />
            <actions />
            <formComponents />
          </screen>
          <screen name="" id="48" beanClass="com.install4j.runtime.beans.screens.InstallationDirectoryScreen" enabled="true" commentSet="false" comment="" rollbackBarrier="false" backButton="2" finishScreen="false">
            <serializedBean>
              <java class="java.beans.XMLDecoder">
                <object class="com.install4j.runtime.beans.screens.InstallationDirectoryScreen" />
              </java>
            </serializedBean>
            <condition />
            <validation />
            <preActivation />
            <postActivation />
            <actions>
              <action name="" id="1025" 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" 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" beanClass="com.install4j.runtime.beans.screens.ComponentsScreen" enabled="true" commentSet="false" comment="" rollbackBarrier="false" backButton="2" finishScreen="false">
            <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" beanClass="com.install4j.runtime.beans.screens.StandardProgramGroupScreen" enabled="true" commentSet="false" comment="" rollbackBarrier="false" backButton="2" finishScreen="false">
            <serializedBean>
              <java class="java.beans.XMLDecoder">
                <object class="com.install4j.runtime.beans.screens.StandardProgramGroupScreen" />
              </java>
            </serializedBean>
            <condition />
            <validation />
            <preActivation />
            <postActivation />
            <actions />
            <formComponents />
          </screen>
          <screen name="Query greeting" id="73" beanClass="com.install4j.runtime.beans.screens.FormScreen" enabled="true" commentSet="false" comment="" rollbackBarrier="false" backButton="2" finishScreen="false">
            <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) {
    Util.showMessage("Please enter a name.");
    return false;
} 

context.setVariable("greeting", greeting);
return true;</validation>
            <preActivation />
            <postActivation>// The text field component
formEnvironment.getFormComponentById("77").requestFocus();
</postActivation>
            <actions />
            <formComponents>
              <formComponent name="world" id="483" 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 />
              </formComponent>
              <formComponent name="person" id="484" 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 />
              </formComponent>
              <formComponent name="" id="77" 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="labelText">
                        <string>Name of the person:</string>
                      </void>
                      <void property="variableName">
                        <string>personName</string>
                      </void>
                    </object>
                  </java>
                </serializedBean>
                <initScript />
              </formComponent>
            </formComponents>
          </screen>
          <screen name="" id="52" beanClass="com.install4j.runtime.beans.screens.ServicesScreen" enabled="true" commentSet="false" comment="" rollbackBarrier="false" backButton="2" finishScreen="false">
            <serializedBean>
              <java class="java.beans.XMLDecoder">
                <object class="com.install4j.runtime.beans.screens.ServicesScreen" />
              </java>
            </serializedBean>
            <condition />
            <validation />
            <preActivation />
            <postActivation />
            <actions />
            <formComponents />
          </screen>
          <screen name="" id="53" beanClass="com.install4j.runtime.beans.screens.InstallationScreen" enabled="true" commentSet="false" comment="" rollbackBarrier="true" backButton="2" finishScreen="false">
            <serializedBean>
              <java class="java.beans.XMLDecoder">
                <object class="com.install4j.runtime.beans.screens.InstallationScreen" />
              </java>
            </serializedBean>
            <condition />
            <validation />
            <preActivation />
            <postActivation />
            <actions>
              <action name="" id="55" beanClass="com.install4j.runtime.beans.actions.InstallFilesAction" 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.InstallFilesAction" />
                  </java>
                </serializedBean>
                <condition />
              </action>
              <action name="" id="56" 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="programGroupEntryConfigs">
                        <void method="add">
                          <object class="com.install4j.runtime.beans.screens.components.ProgramGroupEntryConfig">
                            <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.ProgramGroupEntryConfig">
                            <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="programGroupName">
                        <string>${compiler:sys.fullName}</string>
                      </void>
                    </object>
                  </java>
                </serializedBean>
                <condition />
              </action>
              <action name="" id="57" 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="itemName">
                        <string>${compiler:sys.fullName} ${compiler:sys.version}</string>
                      </void>
                    </object>
                  </java>
                </serializedBean>
                <condition />
              </action>
              <action name="" id="58" 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="launcherId">
                        <string>19</string>
                      </void>
                    </object>
                  </java>
                </serializedBean>
                <condition />
              </action>
              <action name="" id="59" 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" 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>
              <group name="Modify .vmoption files" id="1154" beanClass="com.install4j.runtime.beans.groups.ActionGroup" enabled="true" commentSet="true" comment="The location of the user-editable .vmoptions file that is includes by the .vmoption files for the single launchers is determined at runtime by the &quot;Set a variable&quot; action in the startup sequence.&#xA;&#xA;This is why we have to modify the single .vmoption files and replace the ${installer:vmoptionsTargetDirectory} installer variable in them.">
                <serializedBean>
                  <java class="java.beans.XMLDecoder">
                    <object class="com.install4j.runtime.beans.groups.ActionGroup" />
                  </java>
                </serializedBean>
                <beans>
                  <action name="" id="1155" 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="file">
                            <object class="java.io.File">
                              <string>bin/hello_cli.vmoptions</string>
                            </object>
                          </void>
                        </object>
                      </java>
                    </serializedBean>
                    <condition />
                  </action>
                  <action name="" id="1156" 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="file">
                            <object class="java.io.File">
                              <string>bin/hello_gui.vmoptions</string>
                            </object>
                          </void>
                        </object>
                      </java>
                    </serializedBean>
                    <condition />
                  </action>
                  <action name="" id="1157" 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="file">
                            <object class="java.io.File">
                              <string>bin/hello_service.vmoptions</string>
                            </object>
                          </void>
                        </object>
                      </java>
                    </serializedBean>
                    <condition />
                  </action>
                </beans>
              </group>
            </actions>
            <formComponents />
          </screen>
          <screen name="" id="60" beanClass="com.install4j.runtime.beans.screens.FinishedScreen" enabled="true" commentSet="false" comment="" rollbackBarrier="false" backButton="2" finishScreen="true">
            <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" 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" 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 />
              </formComponent>
            </formComponents>
          </screen>
        </screens>
      </application>
      <application name="" id="uninstaller" beanClass="com.install4j.runtime.beans.applications.UninstallerApplication" enabled="true" commentSet="false" comment="" customIcnsFile="" customIcoFile="">
        <serializedBean>
          <java class="java.beans.XMLDecoder">
            <object class="com.install4j.runtime.beans.applications.UninstallerApplication" />
          </java>
        </serializedBean>
        <startup>
          <screen name="" id="16" beanClass="com.install4j.runtime.beans.screens.StartupScreen" enabled="true" commentSet="false" comment="" rollbackBarrier="false" backButton="2" finishScreen="false">
            <serializedBean>
              <java class="java.beans.XMLDecoder">
                <object class="com.install4j.runtime.beans.screens.StartupScreen" />
              </java>
            </serializedBean>
            <condition />
            <validation />
            <preActivation />
            <postActivation />
            <actions>
              <action name="" id="103" beanClass="com.install4j.runtime.beans.actions.misc.RequireAdminAction" 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.misc.RequireAdminAction" />
                  </java>
                </serializedBean>
                <condition>Util.isWindows() || Util.isMacOS()</condition>
              </action>
            </actions>
            <formComponents />
          </screen>
        </startup>
        <screens>
          <screen name="" id="61" beanClass="com.install4j.runtime.beans.screens.UninstallWelcomeScreen" enabled="true" commentSet="false" comment="" rollbackBarrier="false" backButton="2" finishScreen="false">
            <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="" id="62" beanClass="com.install4j.runtime.beans.screens.UninstallationScreen" enabled="true" commentSet="false" comment="" rollbackBarrier="false" backButton="2" finishScreen="false">
            <serializedBean>
              <java class="java.beans.XMLDecoder">
                <object class="com.install4j.runtime.beans.screens.UninstallationScreen" />
              </java>
            </serializedBean>
            <condition />
            <validation />
            <preActivation />
            <postActivation />
            <actions>
              <action name="" id="325" 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>Stopping services</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" 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" beanClass="com.install4j.runtime.beans.actions.services.StopServiceAction" 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.StopServiceAction">
                      <void property="launcherId">
                        <string>19</string>
                      </void>
                    </object>
                  </java>
                </serializedBean>
                <condition />
              </action>
              <action name="" id="862" 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="file">
                        <object class="java.io.File">
                          <string>${installer:sys.userHome}/hello.properties</string>
                        </object>
                      </void>
                    </object>
                  </java>
                </serializedBean>
                <condition />
              </action>
              <action name="" id="102" 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="file">
                        <object class="java.io.File">
                          <string>bin/service_demo.log</string>
                        </object>
                      </void>
                    </object>
                  </java>
                </serializedBean>
                <condition />
              </action>
              <action name="" id="464" 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="file">
                        <object class="java.io.File">
                          <string>bin/nohup.out</string>
                        </object>
                      </void>
                    </object>
                  </java>
                </serializedBean>
                <condition />
              </action>
              <action name="" id="63" beanClass="com.install4j.runtime.beans.actions.UninstallFilesAction" 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.UninstallFilesAction" />
                  </java>
                </serializedBean>
                <condition />
              </action>
            </actions>
            <formComponents />
          </screen>
          <screen name="" id="64" beanClass="com.install4j.runtime.beans.screens.UninstallFailureScreen" enabled="true" commentSet="false" comment="" rollbackBarrier="false" backButton="2" finishScreen="true">
            <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" beanClass="com.install4j.runtime.beans.screens.UninstallSuccessScreen" enabled="true" commentSet="false" comment="" rollbackBarrier="false" backButton="2" finishScreen="true">
            <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" 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." customIcnsFile="${compiler:sys.install4jHome}/resource/macos/updater.icns" customIcoFile="${compiler:sys.install4jHome}/resource/updater.ico">
        <serializedBean>
          <java class="java.beans.XMLDecoder">
            <object class="com.install4j.runtime.beans.applications.CustomApplication">
              <void property="customPngIcon16File">
                <object class="com.install4j.api.beans.ExternalFile">
                  <string>${compiler:sys.install4jHome}/resource/updater_16.png</string>
                </object>
              </void>
              <void property="customPngIcon32File">
                <object class="com.install4j.api.beans.ExternalFile">
                  <string>${compiler:sys.install4jHome}/resource/updater_32.png</string>
                </object>
              </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>
        <startup>
          <screen name="" id="536" beanClass="com.install4j.runtime.beans.screens.StartupScreen" enabled="true" commentSet="false" comment="" rollbackBarrier="false" backButton="2" finishScreen="false">
            <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="537" beanClass="com.install4j.runtime.beans.screens.CustomizableBannerScreen" enabled="true" commentSet="false" comment="" rollbackBarrier="false" backButton="2" finishScreen="false">
            <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="538" beanClass="com.install4j.runtime.beans.screens.CustomizableProgressScreen" enabled="true" commentSet="false" comment="" rollbackBarrier="false" backButton="2" finishScreen="false">
            <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="539" 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="540" 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>http://download.ej-technologies.com/hello/updates.xml</string>
                      </void>
                      <void property="variable">
                        <string>updateDescriptor</string>
                      </void>
                    </object>
                  </java>
                </serializedBean>
                <condition />
              </action>
              <action name="" id="541" 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="542" 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="543" 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="544" 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="545" 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="546" 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="547" 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="548" 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="935" 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="549" 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="550" beanClass="com.install4j.runtime.beans.screens.CustomizableBannerScreen" enabled="true" commentSet="false" comment="" rollbackBarrier="false" backButton="2" finishScreen="true">
                <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="551" 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="552" beanClass="com.install4j.runtime.beans.screens.FormScreen" enabled="true" commentSet="false" comment="" rollbackBarrier="false" backButton="2" finishScreen="false">
                <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="553" 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 />
                  </formComponent>
                  <formComponent name="" id="554" 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 />
                  </formComponent>
                  <formComponent name="" id="555" 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>context.goForward(1, false, false);</string>
                              </void>
                            </object>
                          </void>
                          <void property="hyperlinkText">
                            <string>${i18n:updater.ShowComments}</string>
                          </void>
                        </object>
                      </java>
                    </serializedBean>
                    <initScript>boolean hasComment = ((String)context.getVariable("updaterComment")).length() &gt; 0;
component.setVisible(hasComment);</initScript>
                  </formComponent>
                  <formComponent name="" id="556" 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 />
                  </formComponent>
                  <formComponent name="" id="557" 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 />
                  </formComponent>
                  <formComponent name="" id="558" 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 />
                  </formComponent>
                  <formComponent name="" id="559" 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 />
                  </formComponent>
                </formComponents>
              </screen>
              <screen name="Update message" id="560" beanClass="com.install4j.runtime.beans.screens.CustomizableInfoScreen" enabled="true" commentSet="false" comment="" rollbackBarrier="false" backButton="2" finishScreen="false">
                <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="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();
if (wizardContext != null) {
    wizardContext.setNextButtonVisible(false);
    wizardContext.setCancelButtonVisible(false);
}</preActivation>
                <postActivation />
                <actions />
                <formComponents />
              </screen>
              <screen name="Download new version" id="561" beanClass="com.install4j.runtime.beans.screens.CustomizableProgressScreen" enabled="true" commentSet="false" comment="" rollbackBarrier="false" backButton="2" finishScreen="false">
                <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="562" 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="563" 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="710" 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="file">
                            <object class="java.io.File">
                              <string>${installer:updaterDownloadFile}</string>
                            </object>
                          </void>
                          <void property="mode">
                            <string>755</string>
                          </void>
                        </object>
                      </java>
                    </serializedBean>
                    <condition />
                  </action>
                </actions>
                <formComponents />
              </screen>
              <screen name="Finish" id="936" beanClass="com.install4j.runtime.beans.screens.BannerFormScreen" enabled="true" commentSet="false" comment="" rollbackBarrier="false" backButton="2" finishScreen="true">
                <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="937" 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="989" 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="990" 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="991" 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="940" 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 />
                  </formComponent>
                  <formComponent name="" id="941" 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 />
                  </formComponent>
                  <formComponent name="" id="942" 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>if (context.getBooleanVariable("isArchive")) {
    component.setVisible(false);
}</initScript>
                  </formComponent>
                  <formComponent name="" id="943" 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 />
                  </formComponent>
                  <formComponent name="" id="944" 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 />
                  </formComponent>
                </formComponents>
              </screen>
            </beans>
          </group>
        </screens>
      </application>
      <application name="Configure greeting" id="594" 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." customIcnsFile="" customIcoFile="">
        <serializedBean>
          <java class="java.beans.XMLDecoder">
            <object class="com.install4j.runtime.beans.applications.CustomApplication">
              <void property="changeWorkingDir">
                <boolean>true</boolean>
              </void>
              <void property="customPngIcon16File">
                <object class="com.install4j.api.beans.ExternalFile">
                  <string>./resources/preferences16x16.png</string>
                </object>
              </void>
              <void property="customPngIcon32File">
                <object class="com.install4j.api.beans.ExternalFile">
                  <string>./resources/preferences32x32.png</string>
                </object>
              </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>
        <startup>
          <screen name="" id="595" beanClass="com.install4j.runtime.beans.screens.StartupScreen" enabled="true" commentSet="false" comment="" rollbackBarrier="false" backButton="2" finishScreen="false">
            <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" 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" beanClass="" enabled="true" targetId="73" />
          <screen name="Finish" id="598" beanClass="com.install4j.runtime.beans.screens.CustomizableBannerScreen" enabled="true" commentSet="false" comment="" rollbackBarrier="false" backButton="2" finishScreen="true">
            <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" beanClass="" enabled="true" targetId="1145" />
            </actions>
            <formComponents />
          </screen>
        </screens>
      </application>
    </applications>
  </installerGui>
  <mediaSets>
    <win32 name="Windows" id="8" mediaFileName="" installDir="hello" overridePrincipalLanguage="false" requires64bit="false" runPostProcessor="false" postProcessor="" failOnPostProcessorError="false" includedJRE="" manualJREEntry="false" bundleType="1" jreURL="" jreFtpURL="" jreShared="false" customInstallBaseDir="" createUninstallIcon="true" contentFilesType="1" downloadURL="" runAsAdmin="true">
      <excludedLaunchers />
      <excludedComponents />
      <excludedBeans />
      <overriddenPrincipalLanguage id="en" customLocalizationFile="" />
      <exclude />
      <variables />
    </win32>
    <linuxRPM name="Linux RPM" id="9" mediaFileName="" installDir="/opt/hello" overridePrincipalLanguage="false" requires64bit="false" runPostProcessor="false" postProcessor="" failOnPostProcessorError="false" includedJRE="" manualJREEntry="false" os="linux" arch="i386">
      <excludedLaunchers />
      <excludedComponents />
      <excludedBeans />
      <overriddenPrincipalLanguage id="en" customLocalizationFile="" />
      <exclude>
        <entry location=".i4j_fileset_1148" fileType="regular" />
      </exclude>
      <variables />
      <preInstallScript mode="1" file="">
        <scriptLines />
      </preInstallScript>
      <postInstallScript mode="1" file="">
        <scriptLines />
      </postInstallScript>
      <preUninstallScript mode="1" file="">
        <scriptLines />
      </preUninstallScript>
      <postUninstallScript mode="1" file="">
        <scriptLines />
      </postUninstallScript>
    </linuxRPM>
    <macos name="Mac OS X Single Bundle" id="10" mediaFileName="" installDir="hello" overridePrincipalLanguage="false" requires64bit="false" runPostProcessor="false" postProcessor="" failOnPostProcessorError="false" customInstallBaseDir="" createUninstallIcon="true" contentFilesType="1" downloadURL="" launcherId="5">
      <excludedComponents />
      <excludedBeans />
      <overriddenPrincipalLanguage id="en" customLocalizationFile="" />
      <exclude>
        <entry location=".i4j_fileset_1148" fileType="regular" />
      </exclude>
      <variables />
    </macos>
    <macosFolder name="Mac OS X Folder" id="11" mediaFileName="${compiler:sys.shortName}_${compiler:sys.platform}_${compiler:sys.version}_folder" installDir="hello" overridePrincipalLanguage="false" requires64bit="false" runPostProcessor="false" postProcessor="" failOnPostProcessorError="false" customInstallBaseDir="" createUninstallIcon="true" contentFilesType="1" downloadURL="">
      <excludedLaunchers />
      <excludedComponents />
      <excludedBeans />
      <overriddenPrincipalLanguage id="en" customLocalizationFile="" />
      <exclude>
        <entry location=".i4j_fileset_1148" fileType="regular" />
      </exclude>
      <variables />
    </macosFolder>
    <unixInstaller name="Unix Installer" id="12" mediaFileName="" installDir="hello" overridePrincipalLanguage="false" requires64bit="false" runPostProcessor="false" postProcessor="" failOnPostProcessorError="false" includedJRE="" manualJREEntry="false" bundleType="1" jreURL="" jreFtpURL="" jreShared="false" customInstallBaseDir="" createUninstallIcon="true" contentFilesType="1" downloadURL="">
      <excludedLaunchers />
      <excludedComponents />
      <excludedBeans />
      <overriddenPrincipalLanguage id="en" customLocalizationFile="" />
      <exclude />
      <variables />
      <installerScript mode="1" file="">
        <scriptLines />
      </installerScript>
    </unixInstaller>
    <win32 name="Windows x64" id="463" mediaFileName="${compiler:sys.shortName}_${compiler:sys.platform}-x64_${compiler:sys.version}" installDir="hello" overridePrincipalLanguage="false" requires64bit="true" runPostProcessor="false" postProcessor="" failOnPostProcessorError="false" includedJRE="" manualJREEntry="false" bundleType="1" jreURL="" jreFtpURL="" jreShared="false" customInstallBaseDir="" createUninstallIcon="true" contentFilesType="1" downloadURL="" runAsAdmin="true">
      <excludedLaunchers />
      <excludedComponents />
      <excludedBeans />
      <overriddenPrincipalLanguage id="en" customLocalizationFile="" />
      <exclude />
      <variables />
    </win32>
  </mediaSets>
  <buildIds buildAll="true" />
</install4j>

