Skip to content
Other versions

Loading…

Repository samples

First, you must create the webservice object:

OKMWebservices ws = OKMWebservicesFactory.getInstance(host);

Then you should log in using the method “login”. You can access the “login” method from the webservice object “ws” as shown below:

ws.login(user, password);

At this point you can use all the Repository methods in the “repository” class as shown below:

ws.repository.getAppVersion();

Description:

Method Return values Description
getRootFolder()
Folder Returns the Folder object for the node “/okm:root”.

Example:

package com.openkm;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
System.out.println(ws.repository.getRootFolder());
} catch (Exception e) {
e.printStackTrace();
}
}
}

Description:

Method Return values Description
getTrashFolder()
Folder Returns the Folder object for the node “/okm:trash/{userId}”.
  • The returned folder will be the user’s trash folder.

Example:

package com.openkm;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
System.out.println(ws.repository.getTrashFolder());
} catch (Exception e) {
e.printStackTrace();
}
}
}

Description:

Method Return values Description
getTrashFolderBase()
Folder Returns the Folder object for the node “/okm:trash”.

Example:

package com.openkm;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
System.out.println(ws.repository.getTrashFolderBase());
} catch (Exception e) {
e.printStackTrace();
}
}
}

Description:

Method Return values Description
getTemplatesFolder()
Folder Returns the Folder object for the node “/okm:templates”.

Example:

package com.openkm;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
System.out.println(ws.repository.getTemplatesFolder());
} catch (Exception e) {
e.printStackTrace();
}
}
}

Description:

Method Return values Description
getPersonalFolder()
Folder Returns the Folder object for the node “/okm:personal/{userId}”.
  • The returned folder will be the user’s personal folder.

Example:

package com.openkm;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
System.out.println(ws.repository.getPersonalFolder());
} catch (Exception e) {
e.printStackTrace();
}
}
}

Description:

Method Return values Description
getPersonalFolderBase()
Folder Returns the Folder object for the node “/okm:personal”.

Example:

package com.openkm;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
System.out.println(ws.repository.getPersonalFolderBase());
} catch (Exception e) {
e.printStackTrace();
}
}
}

Description:

Method Return values Description
getMailFolder()
Folder Returns the Folder object for the node “/okm:mail/{userId}”.
  • The returned folder will be the user’s mail folder.

Example:

package com.openkm;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
System.out.println(ws.repository.getMailFolder());
} catch (Exception e) {
e.printStackTrace();
}
}
}

Description:

Method Return values Description
getMailFolderBase()
Folder Returns the Folder object for the node “/okm:mail”.

Example:

package com.openkm;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
System.out.println(ws.repository.getMailFolderBase());
} catch (Exception e) {
e.printStackTrace();
}
}
}

Description:

Method Return values Description
getCategoriesFolder()
Folder Returns the Folder object for the node “/okm:categories”.

Example:

package com.openkm;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
System.out.println(ws.repository.getCategoriesFolder());
} catch (Exception e) {
e.printStackTrace();
}
}
}

Description:

Method Return values Description
purgeTrash()
void Permanently removes all nodes in “/okm:trash/{userId}” from the repository.

Example:

package com.openkm;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
ws.repository.purgeTrash();
} catch (Exception e) {
e.printStackTrace();
}
}
}

Description:

Method Return values Description
getUpdateMessage()
String Retrieves a message when a new OpenKM release is available.
  • There is an official OpenKM update message service available that is based on your local OpenKM version. 

Example:

package com.openkm;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
System.out.println(ws.repository.getUpdateMessage());
} catch (Exception e) {
e.printStackTrace();
}
}
}

Description:

Method Return values Description
getRepositoryUuid()
String Retrieves the installation’s unique identifier.

Example:

package com.openkm;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
System.out.println(ws.repository.getRepositoryUuid());
} catch (Exception e) {
e.printStackTrace();
}
}
}

Description:

Method Return values Description
hasNode(String nodeId) Boolean Returns a boolean indicating whether a node exists.

Example:

package com.openkm;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
System.out.println("Exists node:" + ws.repository.hasNode("373bcdd0-c082-4e7b-addd-e10ef813946e"));
} catch (Exception e) {
e.printStackTrace();
}
}
}

Description:

Method Return values Description
getNodePath(String uuid) String Converts a node UUID to a path.

Example:

package com.openkm;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
System.out.println(ws.repository.getNodePath("373bcdd0-c082-4e7b-addd-e10ef813946e"));
} catch (Exception e) {
e.printStackTrace();
}
}
}

Description:

Method Return values Description
getNodeUuid(String nodePath) String Converts a node path to a UUID.

Example:

package com.openkm;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
System.out.println(ws.repository.getNodeUuid("/okm:root/test"));
} catch (Exception e) {
e.printStackTrace();
}
}
}

Description:

Method Return values Description
getAppVersion() AppVersion Returns information about the OpenKM version.

Example:

package com.openkm;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
System.out.println(ws.repository.getAppVersion());
} catch (Exception e) {
e.printStackTrace();
}
}
}

Description:

Method Return values Description
copyAttributes(String uuid, String dstId, boolean categories, boolean keywords, boolean propertyGroups, boolean notes) void Copies attributes from one node to another.
  • The value of the dstId parameter should be a node UUID.

Example:

package com.openkm;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
ws.repository.copyAttributes("46762f90-82c6-4886-8d21-ad3017dd78a7", "ac9fe744-8e45-4bf4-a293-85dafe1bfbca", true, true, true, true);
} catch (Exception e) {
e.printStackTrace();
}
}
}

Description:

Method Return values Description
executeScript(InputStream is)
ScriptExecutionResult Executes a script.
  • The local script - test.bsh - used in the sample below:

Example:

package com.openkm;
import java.io.FileInputStream;
import java.io.InputStream;
import org.apache.commons.io.IOUtils;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.bean.ScriptExecutionResult;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
InputStream is = new FileInputStream("/home/openkm/test.bsh");
ScriptExecutionResult result = ws.repository.executeScript(is);
System.out.println(result.getResult());
System.out.println(result.getStdout());
if (!result.getStderr().isEmpty()) {
System.out.println("Error happened");
System.out.println(result.getStderr());
}
IOUtils.closeQuietly(is);
} catch (Exception e) {
e.printStackTrace();
}
}
}

Description:

Method Return values Description
executeScript(String script)
ScriptExecutionResult Executes a script.

Example:

package com.openkm;
import java.io.FileInputStream;
import java.io.InputStream;
import org.apache.commons.io.IOUtils;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.bean.ScriptExecutionResult;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
String script = "import com.openkm.util.ContextWrapper;"
+ " import org.springframework.web.context.WebApplicationContext;"
+ " import com.openkm.api.OKMFolder;"
+ " import com.openkm.bean.Folder;"
+ " WebApplicationContext cc = (WebApplicationContext) ContextWrapper.getContext();"
+ " OKMFolder okmFolder = cc.getBean(OKMFolder.class);"
+ " for (Folder fld : okmFolder.getChildren(null,\"/okm:root\")) {"
+ " print(fld.getPath());"
+ "}";
ScriptExecutionResult result = ws.repository.executeScript(script);
System.out.println(result.getResult());
System.out.println(result.getStdout());
} catch (Exception e) {
e.printStackTrace();
}
}
}

Description:

Method Return values Description
executeSqlQuery(InputStream is)
SqlQueryResults Executes SQL statements.
  • The test.sql script used in the sample below:

Example:

package com.openkm;
import java.io.FileInputStream;
import java.io.InputStream;
import org.apache.commons.io.IOUtils;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.bean.SqlQueryResultColumns;
import com.openkm.sdk4j.bean.SqlQueryResults;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
InputStream is = new FileInputStream("/home/gnujavasergio/okm/test.sql");
SqlQueryResults result = ws.repository.executeSqlQuery(is);
for (SqlQueryResultColumns columns : result.getResults()) {
System.out.println("UUID:" + columns.getColumns().get(0));
System.out.println("Context:" + columns.getColumns().get(1));
System.out.println("Name:" + columns.getColumns().get(2));
}
IOUtils.closeQuietly(is);
} catch (Exception e) {
e.printStackTrace();
}
}
}

Also the InputStream can be set as:

String sql = "SELECT NBS_UUID, NBS_CONTEXT, NBS_NAME FROM OKM_NODE_BASE LIMIT 10;";
InputStream is = new ByteArrayInputStream(sql.getBytes("UTF-8"));

Description:

Method Return values Description
executeSqlQuery(String sql)
SqlQueryResults Executes SQL statements.

Example:

package com.openkm;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.bean.SqlQueryResultColumns;
import com.openkm.sdk4j.bean.SqlQueryResults;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
SqlQueryResults result = ws.repository.executeSqlQuery("SESELECT NBS_UUID, NBS_CONTEXT, NBS_NAME FROM OKM_NODE_BASE LIMIT 10;");
for (SqlQueryResultColumns columns : result.getResults()) {
System.out.println("UUID:" + columns.getColumns().get(0));
System.out.println("Context:" + columns.getColumns().get(1));
System.out.println("Name:" + columns.getColumns().get(2));
}
} catch (Exception e) {
e.printStackTrace();
}
}
}

Description:

Method Return values Description
executeHqlQuery(InputStream is)
HqlQueryResults Executes HQL statements.
  • The test.sql script used in the sample below:

Example:

package com.openkm;
import java.io.FileInputStream;
import java.io.InputStream;
import org.apache.commons.io.IOUtils;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.bean.HqlQueryResultColumns;
import com.openkm.sdk4j.bean.HqlQueryResults;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
InputStream is = new FileInputStream("/home/gnujavasergio/okm/test.sql");
HqlQueryResults result = ws.repository.executeHqlQuery(is);
for (HqlQueryResultColumns row : result.getResults()) {
System.out.println("uuid: " + row.getColumns().get(0) + ", name: " + row.getColumns().get(1));
}
IOUtils.closeQuietly(is);
} catch (Exception e) {
e.printStackTrace();
}
}
}

Also the InputStream can be set as:

String sql = "SELECT uuid, name from NodeBase where name = 'okm:root';";
InputStream is = new ByteArrayInputStream(sql.getBytes("UTF-8"));

Description:

Method Return values Description
executeHqlQuery(String hql)
HqlQueryResults Executes HQL statements.

Example:

package com.openkm;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.bean.HqlQueryResultColumns;
import com.openkm.sdk4j.bean.HqlQueryResults;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
HqlQueryResults result = ws.repository.executeHqlQuery("SELECT uuid, author from NodeBase where name = 'okm:root';");
for (HqlQueryResultColumns row : result.getResults()) {
System.out.println("uuid: " + row.getColumns().get(0) + ", name: " + row.getColumns().get(1));
}
} catch (Exception e) {
e.printStackTrace();
}
}
}

Description:

Method Return values Description
getTranslations(String lang, String module) Map<String, String> Retrieves the translations of a module into a Map of values.

Example:

package com.openkm;
import java.util.Map;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
Map<String, String> translations = ws.repository.getTranslations("en-GB", "frontend");
for (String key : translations.keySet()) {
System.out.println("key:'" + key + "', with translation:'" + translations.get(key) + "'");
}
} catch (Exception e) {
e.printStackTrace();
}
}
}

Description:

Method Return values Description
getConfiguration(String key) Configuration Retrieves the value of a configuration parameter.

Example:

package com.openkm;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.bean.Configuration;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
Configuration configuration = ws.repository.getConfiguration("system.ocr");
System.out.println(configuration);
} catch (Exception e) {
e.printStackTrace();
}
}
}

Description:

Method Return values Description
getChangeLog(String nodePath, Calendar modificationsFrom) List Returns the list of changes in a path and its subfolders.

Example:

package com.openkm;
import java.util.Calendar;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.bean.ChangeLogged;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
Calendar now = Calendar.getInstance();
for (ChangeLogged cl : ws.repository.getChangeLog("/okm:root/synchronized", now)) {
System.out.println(cl);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}

Description:

Method Return values Description
getServerTime() String Returns the current server time.

Example:

package com.openkm;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
System.out.println(ws.repository.getServerTime());
} catch (Exception e) {
e.printStackTrace();
}
}
}

Description:

Method Return values Description
getAvailableLocales(String locale) Map<String, String>
Returns the available languages.

Example:

package com.openkm;
import java.util.Map;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
Map<String, String> locales = ws.repository.getAvailableLocales("en-GB");
for (String key : locales.keySet()) {
System.out.println("Language:" + key + "," + locales.get(key));
}
} catch (Exception e) {
e.printStackTrace();
}
}
}

Description:

Method Return values Description
getLicenseInfo() LicenseInfo Returns license information.

Example:

package com.openkm;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.bean.LicenseInfo;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
LicenseInfo licenseInfo = ws.repository.getLicenseInfo();
System.out.println(licenseInfo);
} catch (Exception e) {
e.printStackTrace();
}
}
}

Description:

Method Return values Description
getClusterUuid() String Returns the cluster UUID.

Example:

package com.openkm;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
String clusterUuid = ws.repository.getClusterUuid();
System.out.println(clusterUuid);
} catch (Exception e) {
e.printStackTrace();
}
}
}

Description:

Method Return values Description
createShortenUrl(String name, String url) String Creates a shortened URL. The name parameter is optional (auto-generated if null). Returns the shortened URL.

Example:

package com.openkm;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
String shortUrl = ws.repository.createShortenUrl(null, "https://www.example.com/very/long/url");
System.out.println(shortUrl);
} catch (Exception e) {
e.printStackTrace();
}
}
}