Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Follow these steps to start Aspire and shut it down.

Review information to install Aspire as a service and set the Aspire Home directory.

If you haven't already, follow the steps at: Download and Install Aspire.

Anchor
LaunchControl-StartingUpAspire
LaunchControl-StartingUpAspire
Start Aspire


To start Aspire, run the startup script “aspire.bat” in the “bin” directory.

Linux

Set your working directory to your Aspire distribution and then execute "bin/aspire.sh":

Code Block
languagetext
themeFadeToGrey
$ cd my-aspire/target/my-aspire-1.0-SNAPSHOT-distribution.dir
$ bin/aspire.sh
Removing Felix-Cache and AppBundle-Cache directories
 
************************************************************************
*
* ASPIRE BOOTLOADER
*
* Bundle id : 10
*
* Location  : file:bundles/boot/aspire-bootloader-3.1.jar
*

2014-02-04T14:24:22Z INFO [BOOTLOADER]: Maven repository: stPublic - http://repository.searchtechnologies.com/artifactory/simple/community-public/
2014-02-04T14:24:22Z INFO [BOOTLOADER]: Maven local repository: /home/aspire/.m2/repository
2014-02-04T14:24:22Z INFO [BOOTLOADER]: Maven update policy: always
2014-02-04T14:24:22Z INFO [BOOTLOADER]: Default version: 3.1
2014-02-04T14:24:22Z INFO [BOOTLOADER]: Fetching: com.searchtechnologies.aspire:aspire-application:3.1
2014-02-04T14:24:25Z INFO [AspireActivator]: Starting bundle: 11 - file:/home/aspire/.m2/repository/com/searchtechnologies/aspire/aspire-application/3.1/aspire-application-3.1.jar
2014-02-04T14:24:25Z INFO [aspire]: Settings successfully set on OSGi Configuration Admin service
log4j:WARN No appenders could be found for logger (org.apache.zookeeper.server.ZooKeeperServer).
log4j:WARN Please initialize the log4j system properly.
2014-02-04T14:24:25Z INFO [aspire]: Starting embedded ZooKeeper server at port 1112
2014-02-04T14:24:32Z INFO [aspire]: Embedded ZooKeeper server started on port 1112
2014-02-04T14:24:32Z INFO [aspire]: Working Directory: /home/aspire/my-aspire/target/my-aspire-3.1-distribution.dir
2014-02-04T14:24:32Z INFO [aspire]: Aspire Home: /home/aspire/my-aspire/target/my-aspire-3.1-distribution.dir
2014-02-04T14:24:32Z INFO [aspire]: Using settings file: /home/aspire/my-aspire/target/my-aspire-3.1-distribution.dir/config/settings.xml
2014-02-04T14:24:32Z INFO [aspire]: Aspire Logs: /home/aspire/my-aspire/target/my-aspire-3.1-distribution.dir/log
2014-02-04T14:24:32Z INFO [AspireActivator]: Started component factory: aspire-application (bundle 11)
Felix> 2014-02-04T14:24:32Z INFO [aspire]: Maven repository: stPublic - http://repository.searchtechnologies.com/artifactory/simple/community-public/
2014-02-04T14:24:32Z INFO [aspire]: Maven local repository: /home/aspire/.m2/repository
2014-02-04T14:24:32Z INFO [aspire]: Maven update policy: always
2014-02-04T14:24:32Z INFO [aspire]: Default version: 2.0
2014-02-04T14:24:32Z INFO [aspire]: Starting scheduler (enabled)
2014-02-04T14:24:32Z INFO [aspire]: ZooKeeper connection established
2014-02-04T14:24:33Z INFO [aspire]: AUTOSTART: Application -> com.searchtechnologies.aspire:app-workflow-manager (N/A)
2014-02-04T14:24:33Z INFO [aspire]: Starting appBundle: com.searchtechnologies.aspire:app-workflow-manager
2014-02-04T14:24:33Z INFO [aspire]: Fetching: com.searchtechnologies.aspire:app-workflow-manager:2.0
2014-02-04T14:24:34Z INFO [aspire]: Loaded factory com.searchtechnologies.aspire:app-workflow-manager:2.0 (jar file file:/C:/Users/Administrator/.m2/repository/com/searchtechnologies/aspire/app-workflow-manager/2.0/app-workflow-manager-2.0.jar) using repository MavenRepository[/home/aspire/.m2/repository].
2014-02-04T14:24:34Z INFO [aspire]: Registering component: /Workflow
2014-02-04T14:24:34Z INFO [/Workflow]: Starting component: aspire-business-rules  (Name: WfManager)
2014-02-04T14:24:34Z INFO [aspire]: Fetching: com.searchtechnologies.aspire:aspire-business-rules:2.0
2014-02-04T14:24:35Z INFO [aspire]: Starting bundle: 12 - file:/C:/Users/Administrator/.m2/repository/com/searchtechnologies/aspire/aspire-business-rules/2.0/aspire-business-rules-2.0.jar
2014-02-04T14:24:35Z INFO [aspire]: Started component factory: aspire-business-rules (bundle 12)
2014-02-04T14:24:35Z INFO [aspire]: Loaded factory com.searchtechnologies.aspire:aspire-business-rules:2.0 (jar file file:/C:/Users/Administrator/.m2/repository/com/searchtechnologies/aspire/aspire-business-rules/2.0/aspire-business-rules-2.0.jar) using repository MavenRepository[/home/aspire/.m2/repository].
2014-02-04T14:24:35Z INFO [aspire]: Registering component: /Workflow/WfManager
2014-02-04T14:24:35Z WARN [/Workflow/WfManager]: Creation of custom rules enabled
2014-02-04T14:24:35Z INFO [/Workflow/WfManager]: Loaded 0 libraries from directory: /home/aspire/my-aspire/target/my-aspire-3.1-distribution.dir/config/workflow-libraries
2014-02-04T14:24:35Z INFO [/Workflow/WfManager]: Template file: /home/aspire/my-aspire/target/my-aspire-3.1-distribution.dir/cache/appbundles/com.searchtechnologies.aspire/app-workflow-manager/2.0/data/templates.xml
2014-02-04T14:24:35Z INFO [/Workflow]: Installed component: /Workflow/WfManager
2014-02-04T14:24:35Z INFO [aspire]: Successfully started appBundle: /Workflow (location: com.searchtechnologies.aspire:app-workflow-manager)
2014-02-04T14:24:35Z INFO [aspire]: AUTOSTART: Complete

Microsoft Windows from the command prompt

Set your working directory to your Aspire distribution and then execute "bin\aspire.bat -shell":

Code Block
languagetext
themeFadeToGrey
Removing Felix-Cache and AppBundle-Cache directories
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0
2016-02-22 11:47:11.409:INFO::FelixStartLevel: Logging initialized @896ms
2016-02-22 11:47:11.457:INFO:oejs.Server:FelixStartLevel: jetty-9.2.12.v20150709
2016-02-22 11:47:11.516:INFO:oejsh.ContextHandler:FelixStartLevel: Started o.e.j.s.ServletContextHandler@c883ef7{/,null,AVAILABLE}
2016-02-22 11:47:11.517:INFO:oejs.Server:FelixStartLevel: Started @1004ms
2016-02-22 11:47:11.606:INFO:oejs.ServerConnector:FelixStartLevel: Started ServerConnector@3c4e86c{HTTP/1.1}{0.0.0.0:50666}



************************************************************************
*
* ASPIRE BOOTLOADER
*
* Bundle id : 13
*
* Location  : file:bundles/boot/aspire-bootloader-3.1.jar
*

2016-02-22T17:47:12Z INFO [BOOTLOADER]: Maven repository: stPublic - http://repository.searchtechnologies.com/artifactory/public
2016-02-22T17:47:12Z INFO [BOOTLOADER]: Maven local repository: C:\Users\aspire/.m2/repository
2016-02-22T17:47:12Z INFO [BOOTLOADER]: Maven update policy: always
2016-02-22T17:47:12Z INFO [BOOTLOADER]: Default version: 3.1
2016-02-22T17:47:12Z INFO [BOOTLOADER]: Fetching: com.searchtechnologies.aspire:aspire-application:3.1
2016-02-22T17:47:14Z INFO [AspireActivator]: Starting bundle: 14 - file:/C:/Users/aspire/.m2/repository/com/searchtechnologies/aspire/aspire-application/3.1/aspire-application-3.1.jar
2016-02-22T17:47:14Z INFO [aspire]: Settings successfully set on OSGi Configuration Admin service
2016-02-22T17:47:14Z INFO [aspire]: Working directory: C:\Users\aspire\Distributions\aspire
2016-02-22T17:47:14Z INFO [aspire]: Aspire home: C:\Users\aspire\Distributions\aspire
2016-02-22T17:47:14Z INFO [aspire]: Using settings file: C:\Users\aspire\Distributions\aspire-ui\config\settings.xml
2016-02-22T17:47:14Z INFO [aspire]: Aspire logs: C:\Users\aspire\Distributions\aspire/log
2016-02-22T17:47:14Z INFO [AspireActivator]: Started component factory: aspire-application (bundle 14)
2016-02-22T17:47:15Z INFO [aspire]: Maven repository: stPublic - http://repository.searchtechnologies.com/artifactory/public
2016-02-22T17:47:15Z INFO [aspire]: Maven local repository: C:\Users\aspire/.m2/repository
2016-02-22T17:47:15Z INFO [aspire]: Maven update policy: always
2016-02-22T17:47:15Z INFO [aspire]: Default version: 3.1
2016-02-22T17:47:15Z INFO [aspire]: Fetching: com.searchtechnologies.aspire:aspire-dcm-enterprise:3.1
2016-02-22T17:47:15Z INFO [aspire]: Attempting to load noSQL Connection Provider service bundle: 14 - file:/C:/Users/aspire/.m2/repository/com/searchtechnologies/aspire/aspire-application/3.1/aspire-application-3.1.jar
2016-02-22T17:47:15Z INFO [aspire]: Fetching: com.searchtechnologies.aspire:aspire-mongodb-provider:3.1
2016-02-22T17:47:16Z INFO [aspire]: Loaded factory com.searchtechnologies.aspire:aspire-mongodb-provider:3.1 (jar file file:/C:/Users/aspire/.m2/repository/com/searchtechnologies/aspire/aspire-mongodb-provider/3.1/aspire-mongodb-provider-3.1.jar) using repository MavenRepository[C:\Users\aspire/.m2/repository]
2016-02-22T17:47:16Z INFO [aspire]: Starting MongoDB connection pool
2016-02-22T17:47:16Z INFO [aspire]: MongoDB: localhost:27017
Feb 22, 2016 11:47:16 AM com.mongodb.diagnostics.logging.JULLogger log
INFO: Cluster created with settings {hosts=[localhost:27017], mode=MULTIPLE, requiredClusterType=UNKNOWN, serverSelectionTimeout='30000 ms', maxWaitQueueSize=500}
Feb 22, 2016 11:47:16 AM com.mongodb.diagnostics.logging.JULLogger log
INFO: Adding discovered server localhost:27017 to client view of cluster
Feb 22, 2016 11:47:16 AM com.mongodb.diagnostics.logging.JULLogger log
INFO: Opened connection [connectionId{localValue:1, serverValue:1}] to localhost:27017
Feb 22, 2016 11:47:16 AM com.mongodb.diagnostics.logging.JULLogger log
INFO: Monitor thread successfully connected to server with description ServerDescription{address=localhost:27017, type=STANDALONE, state=CONNECTED, ok=true, version=ServerVersion{versionList=[3, 0, 7]}, minWireVersion=0, maxWireVersion=3, electionId=null, maxDocumentSize=16777216, roundTripTimeNanos=2919818}
2016-02-22T17:47:16Z INFO [aspire]: AUTOSTART: Application -> com.searchtechnologies.aspire:app-admin-ui (N/A)
Feb 22, 2016 11:47:16 AM com.mongodb.diagnostics.logging.JULLogger log
INFO: Discovered cluster type of STANDALONE
2016-02-22T17:47:16Z INFO [aspire]: Starting appBundle: com.searchtechnologies.aspire:app-admin-ui
2016-02-22T17:47:17Z INFO [aspire]: Fetching: com.searchtechnologies.aspire:app-admin-ui:3.1
2016-02-22T17:47:17Z INFO [aspire]: Loaded factory com.searchtechnologies.aspire:app-admin-ui:3.1 (jar file file:/C:/Users/aspire/.m2/repository/com/searchtechnologies/aspire/app-admin-ui/3.1/app-admin-ui-3.1.jar) using repository MavenRepository[C:\Users\aspire/.m2/repository]
2016-02-22T17:47:17Z INFO [aspire]: Registering component: /admin
2016-02-22T17:47:17Z INFO [/admin]: Starting component: aspire-admin-ui  (Name: ui)
2016-02-22T17:47:18Z INFO [aspire]: Fetching: com.searchtechnologies.aspire:aspire-admin-ui:3.1
2016-02-22T17:47:18Z INFO [aspire]: Starting bundle: 16 - file:/C:/Users/aspire/.m2/repository/com/searchtechnologies/aspire/aspire-admin-ui/3.1/aspire-admin-ui-3.1.jar
2016-02-22T17:47:18Z INFO [aspire]: Started component factory: aspire-admin-ui (bundle 16)
2016-02-22T17:47:18Z INFO [aspire]: Loaded factory com.searchtechnologies.aspire:aspire-admin-ui:3.1 (jar file file:/C:/Users/aspire/.m2/repository/com/searchtechnologies/aspire/aspire-admin-ui/3.1/aspire-admin-ui-3.1.jar) using repository MavenRepository[C:\Users\ealvarado/.m2/repository]
2016-02-22T17:47:18Z INFO [aspire]: Registering component: /admin/ui
2016-02-22T17:47:18Z INFO [/admin/ui]:


         _              _            _   _ ___
        / \   ___ _ __ (_)_ __ ___  | | | |_ _|
       / _ \ / __| '_ \| | '__/ _ \ | | | || |
      / ___ \\__ \ |_) | | | |  __/ | |_| || |
     /_/   \_\___/ .__/|_|_|  \___|  \___/|___|
                 |_|


                  Up and Running


2016-02-22T17:47:18Z INFO [/admin]: Installed component: /admin/ui
2016-02-22T17:47:18Z INFO [aspire]: Successfully started appBundle: /admin (location: com.searchtechnologies.aspire:app-admin-ui)
2016-02-22T17:47:18Z INFO [aspire]: AUTOSTART: Application -> com.searchtechnologies.aspire:app-workflow-manager (N/A)
2016-02-22T17:47:18Z INFO [aspire]: Starting appBundle: com.searchtechnologies.aspire:app-workflow-manager
2016-02-22T17:47:19Z INFO [aspire]: Fetching: com.searchtechnologies.aspire:app-workflow-manager:3.1
2016-02-22T17:47:20Z INFO [aspire]: Loaded factory com.searchtechnologies.aspire:app-workflow-manager:3.1 (jar file file:/C:/Users/aspire/.m2/repository/com/searchtechnologies/aspire/app-workflow-manager/3.1/app-workflow-manager-3.1.jar) using repository MavenRepository[C:\Users\aspire/.m2/repository]
2016-02-22T17:47:20Z INFO [aspire]: Registering component: /Workflow
2016-02-22T17:47:20Z INFO [/Workflow]: Starting component: aspire-business-rules  (Name: WfManager)
2016-02-22T17:47:20Z INFO [aspire]: Fetching: com.searchtechnologies.aspire:aspire-business-rules:3.1
2016-02-22T17:47:20Z INFO [aspire]: Starting bundle: 17 - file:/C:/Users/aspire/.m2/repository/com/searchtechnologies/aspire/aspire-business-rules/3.1/aspire-business-rules-3.1.jar
2016-02-22T17:47:20Z INFO [aspire]: Started component factory: aspire-business-rules (bundle 17)
2016-02-22T17:47:20Z INFO [aspire]: Loaded factory com.searchtechnologies.aspire:aspire-business-rules:3.1 (jar file file:/C:/Users/aspire/.m2/repository/com/searchtechnologies/aspire/aspire-business-rules/3.1/aspire-business-rules-3.1.jar) using repository MavenRepository[C:\Users\aspire/.m2/repository]
2016-02-22T17:47:21Z INFO [aspire]: Registering component: /Workflow/WfManager
2016-02-22T17:47:21Z WARN [/Workflow/WfManager]: Creation of custom rules enabled
2016-02-22T17:47:21Z INFO [/Workflow/WfManager]: Loaded 0 libraries from directory: C:\Users\aspire\Distributions\aspire\config/workflow-libraries
2016-02-22T17:47:21Z INFO [/Workflow/WfManager]: Template file: C:\Users\aspire\Distributions\aspire/cache/appbundles/com.searchtechnologies.aspire/app-workflow-manager/3.1/data/templates.xml
2016-02-22T17:47:21Z INFO [/Workflow/WfManager]: Starting workflow libraries update thread. Poll: 15000ms
2016-02-22T17:47:21Z INFO [/Workflow/WfManager]: Reloading libraries after 15000ms
2016-02-22T17:47:21Z INFO [/Workflow]: Installed component: /Workflow/WfManager
2016-02-22T17:47:21Z INFO [aspire]: Successfully started appBundle: /Workflow (location: com.searchtechnologies.aspire:app-workflow-manager)
2016-02-22T17:47:21Z INFO [aspire]: AUTOSTART: Complete
log4j:WARN No appenders could be found for logger (org.quartz.impl.StdSchedulerFactory).
log4j:WARN Please initialize the log4j system properly.
2016-02-22T17:47:21Z INFO [aspire]: Starting scheduler (enabled)
2016-02-22T17:47:21Z INFO [aspire]:



             _              _
            / \   ___ _ __ (_)_ __ ___
           / _ \ / __| '_ \| | '__/ _ \
          / ___ \\__ \ |_) | | | |  __/
         /_/   \_\___/ .__/|_|_|  \___|
                     |_|

                 Version: 3.1.0


             Aspire is now running

  Go to http://aspire.search.local:50505 for the Aspire console

Anchor
restartAspire
restartAspire
Restart Aspire (optional)


After Aspire is running, only changes to base configuration settings or to the Aspire launcher require a restart. The following rules apply:

  • Changes to anything in the ‘bin’ folder, or changes in config/felix.properties or config/settings.xml require an Aspire restart.
  • Anything else shouldn’t require a whole system restart, but may require a reload of specific components.

This is thanks to the Open Services Gateway initiative (OSGi).

Info
titleOSGi
A modular system and service platform for Java that implements a complete, dynamic component model. Applications or components, in the form of bundles for deployment, can be installed, started, stopped, updated, and uninstalled without a reboot. Management of Java packages/classes is specified in detail. Application lifecycle management is implemented using APIs that allow for remote downloading of management policies. The service registry allows bundles to detect the addition or removal of services, and adapt accordingly.

This is one of the nicest features of Aspire. You can change the configuration of components and just reload them dynamically.

Anchor
LaunchControl-ShuttingDownAspire
LaunchControl-ShuttingDownAspire
Shut Down Aspire


There are different methods for shutting down Aspire.

Shut down by URL

To shutdown your server you can execute the following URL in a browser:

Code Block
languagetext
http://localhost:50505/aspire?cmd=shutdown

Shut down using the debug interface


There is a shutdown link on the debug interface.

  1. Go to http://localhost:50505/aspire.
  2. Click Shutdown.

Shut down at the console

If you started Aspire at a console window, you can shut it down by simply typing "shutdown" in the console window.

This works because the default installation of Aspire starts up a Felix console command prompt, and "shutdown" is a Felix console command for shutting down.

Code Block
languagetext
themeFadeToGrey
> bin\aspire.bat
Removing Felix-Cache and AppBundle-Cache directories
-> Starting bundle: 9 - file:bundles/aspire/aspire-application-1.0-SNAPSHOT.jar
Settings (org.apache.felix.webconsole.internal.servlet.OsgiManager):  {password=admin, manager.root=/osgi, username=admin}
Started component factory: aspire-application (bundle 9)
Set update policy to always
AUTOSTART: No applications to start
shutdown
-> Stopping bundle: 9 - file:bundles/aspire/aspire-application-1.0-SNAPSHOT.jar
Stopped component factory: aspire-application (bundle 9)

Shut down using the Windows service

And finally, if you have Aspire installed as a Windows Service, you can shut it down using the Service "Stop" command.

Anchor
LaunchControl-InstallingAspireasaService
LaunchControl-InstallingAspireasaService
Install Aspire as a Service


Once you have Aspire running in production, you can install it as a service in a server. This way, any restarts of the server will bring Aspire up as well.

When run as a service, Aspire will run in the background, so it doesn’t require a user to be logged into the server all the time. It allows for more secure environments, as the account running Aspire is normally restricted from all non-Aspire related tasks (not even remote login to the server).

Install Aspire as a Windows service

See Running Aspire as a Windows Service (Aspire 2) for step-by-step instructions for running Aspire as a Windows Service.

Install Aspire as a Linux service

See Running Aspire as a Linux Service (Aspire 2) for instructions.

Anchor
LaunchControl-StartAspireShell
LaunchControl-StartAspireShell
Start Aspire Shell


To start Aspire, execute the "aspire.sh -shell" or "aspire.bat -shell" script in the "bin" directory.

Linux

Set your working directory to your Aspire distribution and then execute "bin/aspire.sh -shell" (make sure it has execute permission for your user):

Code Block
languagetext
themeFadeToGrey
$ cd my-aspire/target/my-aspire-1.0-SNAPSHOT-distribution.dir
$ bin/aspire.sh -shell



************************************************************************
*
* ASPIRE BOOTLOADER
*
* Bundle id : 10
*
* Location  : file:bundles/boot/aspire-bootloader-3.1.jar
*

Maven update policy: always


Settings (org.apache.felix.webconsole.internal.servlet.OsgiManager):  {password=admin, manager.root=/osgi, username=admin}
Maven update policy: always
Aspire Console Mode
Aspire>

Microsoft Windows from the command prompt

Set your working directory to your Aspire distribution and then execute "bin\aspire.bat -shell":

Code Block
languagetext
themeFadeToGrey
$> cd my-aspire\target\my-aspire-1.0-SNAPSHOT-distribution.dir
$> bin\aspire.bat -shell
Removing Felix-Cache and AppBundle-Cache directories



************************************************************************
*
* ASPIRE BOOTLOADER
*
* Bundle id : 10
*
* Location  : file:bundles/boot/aspire-bootloader-3.1.jar
*

Maven update policy: always


Settings (org.apache.felix.webconsole.internal.servlet.OsgiManager):  {password=admin, manager.root=/osgi, username=admin}
Maven update policy: always
Aspire Console Mode
Aspire>

For more details visit: Aspire Shell

Anchor
LaunchControl-SettingAspireHome
LaunchControl-SettingAspireHome
Set Aspire Home


The Aspire Home is the file system directory where the Aspire installation is installed. This directory should contain several sub-directories such as "bin", "bundles", "resources", etc.

What is Aspire Home used for?

Aspire Home is used to locate:

  • Configuration files.
  • XSL and other resources from the "resources" directory.T
  • the "log" directory.

Aspire Home is used any time a relative path to a file inside the Aspire installation is required. The Aspire Home directory will be pre-pended to all such paths.

By default, the settings.xml file loads from "config/settings.xml" located in the Aspire Home directory. The settings.xml file holds environmental information and properties about the Aspire installation as a whole. For more information about the settings.xml file, see [[Settings Configuration (Aspire 2)]|here].

Be aware that there is also a Java System property which can be used to set the location of the settings.xml file as well. It is "com.searchtechnologies.aspire.settings". For example:

Code Block
languagetext
java -Dcom.searchtechnologies.aspire.settings=/test/settings.xml ...

On Microsoft Windows

On Windows, there are several ways to set the Aspire Home directory.

  1. Set the environment variable ASPIRE_HOME to the full path of the Aspire Home directory.
  2. Set your working directory to either the Aspire Home directory or the binary directory before executing "bin/aspire.bat"
    • If no environment variable is set, the startup script will try and validate that your working directory (or the parent of your working directory) is a valid Aspire installation. If it is, it automatically sets Aspire Home to that directory.
  3. Edit the "bin/aspire.bat" and change the "java" call so it passes the correct directory to the Java JVM.

The Java JVM System property which specifies the Aspire Home directory is com.searchtechnologies.aspire.home. This can be set with a command-line argument when executing the "java" command as follows:

Code Block
languagetext
-Dcom.searchtechnologies.aspire.home={home-directory}

On Linux

In a bash shell on Linux, Aspire Home may be set by placing commands similar to the following in a script used to start Felix, or the user's profile:

Code Block
languagebash
if [ "${ASPIRE_HOME}" = "" ]
then
   # Set ASPIRE_HOME
   export ASPIRE_HOME=/home/aspire
 fi