Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 70397 - OpenOffice 1.1.3 hangs when started
Summary: OpenOffice 1.1.3 hangs when started
Status: RESOLVED NEEDINFO
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: x86 Linux
: High major (vote)
Assignee: Gentoo X packagers
URL:
Whiteboard:
Keywords:
: 73714 (view as bug list)
Depends on:
Blocks:
 
Reported: 2004-11-07 18:04 UTC by Johannes Bauer
Modified: 2005-04-05 16:42 UTC (History)
3 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Johannes Bauer 2004-11-07 18:04:16 UTC
I yesterday tried to switch from OpenOffice 1.1.2 to 1.1.3. I compile Oo from source. It was successfully emerged, but when trying to start, it says:

---------8<---------
acer joe [~]: ooffice
Gnome session manager detected - session management disabled
running openoffice.org setup...
---------8<---------

And then it just sits there, doing nothing anymore! Also, trying

---------8<---------
acer joe [~]: oowriter
Gnome session manager detected - session management disabled
running openoffice.org setup...
---------8<---------

or "oosetup" aways fails in the same fashion.

I also tried removing the whole ~/.openoffice directory tree. Didn't change a thing.

I tried a strace on oowriter (except shown):
---------8<---------
rt_sigaction(SIGINT, {SIG_DFL}, {0x80771b3, [], 0}, 8) = 0
pipe([3, 4])                            = 0
rt_sigprocmask(SIG_BLOCK, [INT CHLD], [RTMIN], 8) = 0
fork()                                  = 14221
rt_sigprocmask(SIG_SETMASK, [RTMIN], NULL, 8) = 0
rt_sigaction(SIGCHLD, {0x807819b, [], 0}, {0x807819b, [], 0}, 8) = 0
close(4)                                = 0
read(3, "/home/joe/.openoffice/1.1.3\n", 128) = 28
--- SIGCHLD (Child exited) @ 0 (0) ---
waitpid(-1, [WIFEXITED(s) && WEXITSTATUS(s) == 0], WNOHANG) = 14221
waitpid(-1, 0xbfffe7c4, WNOHANG)        = -1 ECHILD (No child processes)
sigreturn()                             = ? (mask now [RTMIN])
read(3, "", 128)                        = 0
close(3)                                = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [RTMIN], 8) = 0
rt_sigaction(SIGINT, {0x80771b3, [], 0}, {SIG_DFL}, 8) = 0
rt_sigprocmask(SIG_SETMASK, [RTMIN], NULL, 8) = 0
rt_sigaction(SIGINT, {SIG_DFL}, {0x80771b3, [], 0}, 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [RTMIN], 8) = 0
stat64("/home/joe/.openoffice/1.1.3", 0xbfffec10) = -1 ENOENT (No such file or directory)
rt_sigprocmask(SIG_SETMASK, [RTMIN], NULL, 8) = 0
write(1, "running openoffice.org setup...\n", 32running openoffice.org setup...
) = 32
rt_sigprocmask(SIG_BLOCK, [INT CHLD], [RTMIN], 8) = 0
fork()                                  = 14224
rt_sigprocmask(SIG_SETMASK, [RTMIN], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [RTMIN], 8) = 0
rt_sigprocmask(SIG_SETMASK, [RTMIN], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [RTMIN], 8) = 0
rt_sigaction(SIGINT, {0x80771b3, [], 0}, {SIG_DFL}, 8) = 0
waitpid(-1,
---------8<---------

The last line (the waitpid) really _is_ truncated, don't know why. I wonder which child waitpid waits for:

---------8<---------
14210 pts/4    00:00:00 strace
14211 pts/4    00:00:00 oowriter
14224 pts/4    00:00:00 setup.bin
---------8<---------

No others there.

I also then tried

# emerge unmerge openoffice
# emerge openoffice

but that didn't change anything, either. Also tried starting OO as root, same thing.

I'm clueless. Compiled OO twice and couldn't get it working :-( Can anyone please point me into the right direction?

Reproducible: Always
Steps to Reproduce:




Portage 2.0.51-r2 (default-linux/x86/2004.0, gcc-3.3.4, glibc-2.3.4.20040808-r1,
2.6.9 i686)
=================================================================
System uname: 2.6.9 i686 Intel(R) Pentium(R) M processor 1400MHz
Gentoo Base System version 1.4.16
distcc 2.16 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [disabled]
Autoconf: sys-devel/autoconf-2.59-r5
Automake: sys-devel/automake-1.8.5-r1
Binutils: sys-devel/binutils-2.14.90.0.8-r1
Headers:  sys-kernel/linux-headers-2.4.21-r1
Libtools: sys-devel/libtool-1.5.2-r5
ACCEPT_KEYWORDS="x86"
AUTOCLEAN="yes"
CFLAGS="-O2 -march=pentium4 -fomit-frame-pointer"
CHOST="i686-pc-linux-gnu"
COMPILER=""
CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config
/usr/kde/3.2/share/config /usr/kde/3.3/env /usr/kde/3.3/share/config
/usr/kde/3.3/shutdown /usr/kde/3/share/config /usr/lib/mozilla/defaults/pref
/usr/share/config /usr/share/texmf/dvipdfm/config/
/usr/share/texmf/dvips/config/ /usr/share/texmf/tex/generic/config/
/usr/share/texmf/tex/platex/config/ /usr/share/texmf/xdvi/ /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d"
CXXFLAGS="-O2 -march=pentium4 -fomit-frame-pointer"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoaddcvs ccache distlocks sandbox sfperms"
GENTOO_MIRRORS="http://ftp.uni-erlangen.de/mirrors/gentoo/"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY=""
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="X aalib acl acpi apm avi berkdb bitmap-fonts bonobo cdr crypt cups dba dvd
dvdr encode esd f77 fam fbcon flac foomaticdb gd gdbm gif gnome gpm gstreamer
gtk gtk2 gtkhtml guile hbci imagemagick imlib java jpeg ldap libg++ libwww mad
mikmod motif mpeg mysql ncurses nls oggvorbis opengl oss pam pcmcia pdflib perl
png python quicktime readline samba scanner sdl slang spell ssl svga tcltk tcpd
tetex tiff truetype unicode usb x86 xml xml2 xmms xv zlib"
Comment 1 Paul de Vrieze (RETIRED) gentoo-dev 2004-11-10 02:16:41 UTC
What you could try is to remove the setup information (your setup has not been completed) and start the setup manually. For some reason the setup hangs somewhere where it shouldn't. Just run
/opt/OpenOffice.org/program/setup as your user bypassing the autoconfiguration. If the install is successfull you have worked around the issue, else we might have some indication on what went wrong. If it succeeds openoffice should run correctly next time.
Comment 2 Johannes Bauer 2004-11-10 04:02:48 UTC
Okay, this _is_ weird. It first sits a while (about 30 seconds), then displays:

acer joe [~]: /opt/OpenOffice.org/program/setup
cannot connect to X server

However, my $DISPLAY variable is okay:

acer joe [~]: echo $DISPLAY
:0.0

I updated to the latest version of x.org recently (when I also updated OpenOffice). Might that be it? I'm currently using X.org 6.8.0-r1.

I'll try the binary package later today, see if that works.

Greetings,
Johannes
Comment 3 Paul de Vrieze (RETIRED) gentoo-dev 2004-11-10 04:08:30 UTC
If instead of the setup command you run "xterm" does that work?
Comment 4 Johannes Bauer 2004-11-10 07:42:01 UTC
Yes, it works.

Appearently, the "cannot connect to X server" problem seems to have disappeared after I updated my video drivers (ATI fglrx)... now when I start

acer joe [~]: /opt/OpenOffice.org/program/setup

it just sits there again infinitely (after doing some hard disk accesses), not doing anything. It doesn't time out.

strace shows:
[...]
readv(10, [{"PCI:1:0:0", 9}, {"\0\0\1", 3}], 2) = 12
geteuid32()                             = 1001
stat64("/dev/dri", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
stat64("/dev/dri/card0", {st_mode=S_IFCHR|0666, st_rdev=makedev(226, 0), ...}) = 0
open("/dev/dri/card0", O_RDWR)          = 11
ioctl(11, DECODER_SET_PICTURE, 0xbfffd650) = -1 EINVAL (Invalid argument)
ioctl(11, DECODER_GET_CAPABILITIES, 0xbfffd658) = 0
ioctl(11, DECODER_GET_CAPABILITIES, 0xbfffd658) = 0
ioctl(11, DEVFSDIOC_SET_EVENT_MASK or DECODER_GET_STATUS, 0xbfffd6c0) = 0
ioctl(11, DEVFSDIOC_GET_PROTO_REV, 0x80a3648) = 0
ioctl(11, DEVFSDIOC_GET_PROTO_REV, 0x80a3648) = 0
write(10, "\217\v\3\0\0\0\0\0\3\0\0\0", 12) = 12
read(10, 0xbfffd6a0, 32)                = -1 EAGAIN (Resource temporarily unavailable)
select(11, [10], NULL, NULL, NULL)      = 1 (in [10])
read(10, "\1\0\23\0\0\0\0\0\1\0\0\0P\265\255\10\240\316\255\10\0"..., 32) = 32
write(10, "\217\4\2\0\0\0\0\0", 8)      = 8
read(10, 0xbfffd690, 32)                = -1 EAGAIN (Resource temporarily unavailable)
select(11, [10], NULL, NULL, NULL)      = 1 (in [10])
read(10, "\1\0\24\0\2\0\0\0\3\0\0\0\16\0\0\0\1\0\0\0\5\0\0\0h\362"..., 32) = 32
readv(10, [{"fglrx", 5}, {":0:", 3}], 2) = 8
write(10, "\217\n\2\0\0\0\0\0", 8)      = 8
read(10, 0xbfffd690, 32)                = -1 EAGAIN (Resource temporarily unavailable)
select(11, [10], NULL, NULL, NULL)      = 1 (in [10])
read(10, "\1\0\25\0\260\0\0\0\0\0\0\250\0\0\0\0\0\0\0\0\0\0\0\4\0"..., 32) = 32
read(10, "PN\0\0\0\4\0\0\0\3\0\0\30\0\0\0 \0\0\0\0\0\0\0\24\3\0\37"..., 704) = 704
old_mmap(NULL, 67108864, PROT_READ|PROT_WRITE, MAP_SHARED, 11, 0xa8000000) = 0x430dc000
old_mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_SHARED, 11, 0xe08a4000) = 0x470dc000
getpid()                                = 8270
writev(10, [{"b\n\5\0\v\0\0\0", 8}, {"ATIFGLRXDRI", 11}, {"\0", 1}], 3) = 20
read(10, 0xbfffd130, 32)                = -1 EAGAIN (Resource temporarily unavailable)
select(11, [10], NULL, NULL, NULL)      = 1 (in [10])
read(10, "\1\243\26\0\0\0\0\0\1\220W\0\0\0\0\0\1\0\0\0\33\0\0\0\300"..., 32) = 32
write(10, "\220\0\1\0", 4)              = 4
read(10, 0xbfffd210, 32)                = -1 EAGAIN (Resource temporarily unavailable)
select(11, [10], NULL, NULL, NULL)      = 1 (in [10])
read(10, "\1\243\27\0\0\0\0\0\3\0\16\0\1\0\0\0\1\0\0\0\33\0\0\0\300"..., 32) = 32
ioctl(11, 0x80106454, 0xbfffd210)       = 0
ioctl(11, 0x80046457, 0xbfffd234)       = 0
ioctl(11, 0x80046446, 0xbfffd230)       = 0
ioctl(11, DEVFSDIOC_SET_EVENT_MASK or DECODER_GET_STATUS, 0xbfffd230) = 0
old_mmap(NULL, 65536, PROT_READ|PROT_WRITE, MAP_SHARED, 11, 0xe0010000) = 0x470de000
old_mmap(NULL, 4194304, PROT_READ|PROT_WRITE, MAP_SHARED, 11, 0xe4b81000) = 0x470ee000
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_SHARED, 11, 0xdf9f1000) = 0x474ee000
old_mmap(NULL, 1048576, PROT_READ|PROT_WRITE, MAP_SHARED, 11, 0xb0001000) = 0x474ef000
old_mmap(NULL, 2867200, PROT_READ|PROT_WRITE, MAP_SHARED, 11, 0xb0101000) = 0x475ef000
write(10, "\220\2\2\0\0\0\0\0", 8)      = 8
read(10, 0xbfffd200, 32)                = -1 EAGAIN (Resource temporarily unavailable)
select(11, [10], NULL, NULL, NULL)      = 1 (in [10])
read(10, "\1\0\30\0\30\0\0\0\f\0\0\0P\265\255\10\240\316\255\10\0"..., 32) = 32
read(10, "`\2234\10\1\0\0\0", 8)        = 8
read(10, "\0\16m\10gl_U", 8)            = 8
read(10, "A\10\205\311\354\30\213U", 8) = 8
read(10, "\204g\5\0gl_U", 8)            = 8
read(10, "\0\213D$\3548\211]", 8)       = 8
read(10, "h\17\214agl_F", 8)            = 8
read(10, "\314\0\0\0\0\0\211\345", 8)   = 8
read(10, "d\17\204ygl_I", 8)            = 8
read(10, "$P\323\350\10\300\211\345", 8) = 8
read(10, "L9D$gl_M", 8)                 = 8
read(10, "\240\0\0\0\377\377\211\345", 8) = 8
read(10, 0x80a42f8, 8)                  = -1 EAGAIN (Resource temporarily unavailable)
select(11, [10], NULL, NULL, NULL

Why would OpenOffice try to directly interface my graphics card?!
Comment 5 Johannes Bauer 2004-11-10 10:31:13 UTC
X.Org was the reason!

I just downgraded to xorg-x11-6.7.0-r2 and OpenOffice now works perfectly, like a charm! All users also having this trouble: avoid x11-base/xorg-x11-6.8.0-r1

I'm leaving this bug as "NEW" because I don't know how you're going to treat that situation.
Comment 6 Paul de Vrieze (RETIRED) gentoo-dev 2004-11-10 12:29:41 UTC
Ok, the thing is, openoffice uses opengl (by default) for some 3d graphical stuff. Apparently your opengl is broken in some way. I'll reassign this to the X people, in the meantime, please try to run glxgears, and indicate the make and model of your videocard (and the driver version if applicable).
Comment 7 Johannes Bauer 2004-11-22 00:03:52 UTC
Glxgears runs fine, so do all my OpenGL games (UT2004 or Parsec).

I'm having a Radeon 9600 Mobility running with the proprietary drivers from ATI. Driver version is 3.14.1 (the latest one).

Output of glxinfo:

name of display: :0.0
display: :0  screen: 0
direct rendering: Yes
server glx vendor string: SGI
server glx version string: 1.2
server glx extensions:
    GLX_ARB_multisample, GLX_EXT_visual_info, GLX_EXT_visual_rating,
    GLX_EXT_import_context, GLX_SGI_make_current_read, GLX_SGIS_multisample
client glx vendor string: SGI
client glx version string: 1.2
client glx extensions:
    GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_import_context,
    GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_MESA_allocate_memory,
    GLX_MESA_swap_control, GLX_MESA_swap_frame_usage, GLX_OML_swap_method,
    GLX_OML_sync_control, GLX_SGI_make_current_read, GLX_SGI_swap_control,
    GLX_SGI_video_sync, GLX_SGIS_multisample, GLX_SGIX_fbconfig,
    GLX_SGIX_visual_select_group
GLX extensions:
    GLX_ARB_get_proc_address, GLX_EXT_import_context, GLX_EXT_visual_info,
    GLX_EXT_visual_rating
OpenGL vendor string: ATI Technologies Inc.
OpenGL renderer string: MOBILITY RADEON 9700 Generic
OpenGL version string: 1.3.4641 (X4.3.0-3.14.1)
OpenGL extensions:
    GL_ARB_multitexture, GL_EXT_texture_env_add, GL_EXT_compiled_vertex_array,
    GL_S3_s3tc, GL_ARB_depth_texture, GL_ARB_fragment_program,
    GL_ARB_fragment_program_shadow, GL_ARB_multisample,
    GL_ARB_occlusion_query, GL_ARB_point_parameters, GL_ARB_point_sprite,
    GL_ARB_shadow, GL_ARB_shadow_ambient, GL_ARB_texture_border_clamp,
    GL_ARB_texture_compression, GL_ARB_texture_cube_map,
    GL_ARB_texture_env_add, GL_ARB_texture_env_combine,
    GL_ARB_texture_env_crossbar, GL_ARB_texture_env_dot3,
    GL_ARB_texture_mirrored_repeat, GL_ARB_transpose_matrix,
    GL_ARB_vertex_blend, GL_ARB_vertex_buffer_object, GL_ARB_vertex_program,
    GL_ARB_window_pos, GL_ATI_draw_buffers, GL_ATI_element_array,
    GL_ATI_envmap_bumpmap, GL_ATI_fragment_shader, GL_ATI_map_object_buffer,
    GL_ATI_separate_stencil, GL_ATI_texture_env_combine3,
    GL_ATI_texture_float, GL_ATI_texture_mirror_once,
    GL_ATI_vertex_array_object, GL_ATI_vertex_attrib_array_object,
    GL_ATI_vertex_streams, GL_ATIX_texture_env_combine3,
    GL_ATIX_texture_env_route, GL_ATIX_vertex_shader_output_point_size,
    GL_EXT_abgr, GL_EXT_bgra, GL_EXT_blend_color, GL_EXT_blend_func_separate,
    GL_EXT_blend_minmax, GL_EXT_blend_subtract, GL_EXT_clip_volume_hint,
    GL_EXT_draw_range_elements, GL_EXT_fog_coord, GL_EXT_multi_draw_arrays,
    GL_EXT_packed_pixels, GL_EXT_point_parameters, GL_EXT_rescale_normal,
    GL_EXT_secondary_color, GL_EXT_separate_specular_color,
    GL_EXT_shadow_funcs, GL_EXT_stencil_wrap, GL_EXT_texgen_reflection,
    GL_EXT_texture3D, GL_EXT_texture_compression_s3tc,
    GL_EXT_texture_cube_map, GL_EXT_texture_edge_clamp,
    GL_EXT_texture_env_combine, GL_EXT_texture_env_dot3,
    GL_EXT_texture_filter_anisotropic, GL_EXT_texture_lod_bias,
    GL_EXT_texture_mirror_clamp, GL_EXT_texture_object,
    GL_EXT_texture_rectangle, GL_EXT_vertex_array, GL_EXT_vertex_shader,
    GL_HP_occlusion_test, GL_NV_texgen_reflection, GL_NV_blend_square,
    GL_NV_occlusion_query, GL_SGI_color_matrix, GL_SGIS_texture_edge_clamp,
    GL_SGIS_texture_border_clamp, GL_SGIS_texture_lod,
    GL_SGIS_generate_mipmap, GL_SUN_multi_draw_arrays
glu version: 1.3
glu extensions:
    GLU_EXT_nurbs_tessellator, GLU_EXT_object_space_tess

   visual  x  bf lv rg d st colorbuffer ax dp st accumbuffer  ms  cav
 id dep cl sp sz l  ci b ro  r  g  b  a bf th cl  r  g  b  a ns b eat
----------------------------------------------------------------------
0x23 24 tc  0 32  0 r  y  .  8  8  8  8  0 24  8 16 16 16 16  0 0 None
0x24 24 tc  0 32  0 r  .  .  8  8  8  8  0 24  8 16 16 16 16  0 0 None
0x25 24 tc  0 32  0 r  y  .  8  8  8  8  0 24  0 16 16 16 16  0 0 None
0x26 24 tc  0 32  0 r  .  .  8  8  8  8  0 24  0 16 16 16 16  0 0 None
0x27 24 tc  0 32  0 r  y  .  8  8  8  8  0 24  8  0  0  0  0  0 0 None
0x28 24 tc  0 32  0 r  .  .  8  8  8  8  0 24  8  0  0  0  0  0 0 None
0x29 24 tc  0 32  0 r  y  .  8  8  8  8  0 24  0  0  0  0  0  0 0 None
0x2a 24 tc  0 32  0 r  .  .  8  8  8  8  0 24  0  0  0  0  0  0 0 None
0x2b 24 dc  0 32  0 r  y  .  8  8  8  8  0 24  8 16 16 16 16  0 0 None
0x2c 24 dc  0 32  0 r  .  .  8  8  8  8  0 24  8 16 16 16 16  0 0 None
0x2d 24 dc  0 32  0 r  y  .  8  8  8  8  0 24  0 16 16 16 16  0 0 None
0x2e 24 dc  0 32  0 r  .  .  8  8  8  8  0 24  0 16 16 16 16  0 0 None
0x2f 24 dc  0 32  0 r  y  .  8  8  8  8  0 24  8  0  0  0  0  0 0 None
0x30 24 dc  0 32  0 r  .  .  8  8  8  8  0 24  8  0  0  0  0  0 0 None
0x31 24 dc  0 32  0 r  y  .  8  8  8  8  0 24  0  0  0  0  0  0 0 None
0x32 24 dc  0 32  0 r  .  .  8  8  8  8  0 24  0  0  0  0  0  0 0 None

As said, I've never had any OpenGL related trouble so far... I'm even programming an own game using OpenGL - it all runs fine. Any more information?
Comment 8 Andreas Proschofsky (RETIRED) gentoo-dev 2005-01-16 09:06:17 UTC
*** Bug 73714 has been marked as a duplicate of this bug. ***
Comment 9 Andreas Proschofsky (RETIRED) gentoo-dev 2005-01-23 15:38:28 UTC
@X-herd: Could you please comment on this one. What is the correct solution for such problems? Is this a bug in x.org / ati-drivers or a user setup problem? What would be the correct solution?
Comment 10 Donnie Berkholz (RETIRED) gentoo-dev 2005-01-23 19:26:43 UTC
Can you reproduce this with the open ati driver?
Comment 11 Andreas Proschofsky (RETIRED) gentoo-dev 2005-04-05 14:12:05 UTC
People, you will have to give some feedback else there is nothing we can do here, so closing for now. Please reopen, if someone has new info.
Comment 12 Michael Trausch 2005-04-05 15:18:22 UTC
There was another bug report on this issue I believe, that was solved.  The solution to the report was a workaround in which the permissions of a device file related to direct rendering management I think was enabled to be read and written by the user.

http://bugs.gentoo.org/show_bug.cgi?id=73714#c8 is the link to the comment.  The bug was marked a duplicate of this one, ironically enough.

The device in question was /dev/dri/card0 and when you made it read/write to users, it worked.  You'll probably find that when you run OOo as root, it works, but if you run it as a regular user, then it doesn't.  OOo should gracefully display an error if this happens and continue, or run without attempting to use the device.  I've only witnessed this quirk on Gentoo, by the way, so it's something to do with default permissions, I'm sure.

I'm not going to change the status of the bug, but this is more information, I'm not sure if it's what you're looking for exactly.  See bug #73714 for more information that I have posted in there.
Comment 13 Johannes Bauer 2005-04-05 16:42:42 UTC
Well, I can't provide any more information... posted my solution and I'm now using a newer version of X.org (6.8.2) and haven't had any more trouble with OOffice 1.1.3.

This might be, however, due to my change to the free ATI-driver (the proprietary crap driver doesn't support the 2.6.11 kernel...) which provides me with no 3d-acceleration.

HTH,
Johannes