2005-08-20 14:00:11 +00:00
|
|
|
include $(top_srcdir)/common/check.mak
|
|
|
|
|
2005-11-30 17:05:29 +00:00
|
|
|
CHECK_REGISTRY = $(top_builddir)/tests/check/test-registry.xml
|
2005-07-12 12:20:01 +00:00
|
|
|
|
2005-08-20 20:15:53 +00:00
|
|
|
GST_TOOLS_DIR = $(top_builddir)/tools
|
|
|
|
|
2005-08-21 15:01:18 +00:00
|
|
|
REGISTRY_ENVIRONMENT = \
|
2005-07-12 12:20:01 +00:00
|
|
|
GST_REGISTRY=$(CHECK_REGISTRY)
|
check/: Added checks.
Original commit message from CVS:
* check/.cvsignore:
* check/Makefile.am:
* check/gst-libs/.cvsignore:
* check/gst-libs/gdp.c: (START_TEST), (gst_object_suite), (main):
* check/gst/.cvsignore:
* check/gst/gstbus.c: (pound_bus_with_messages), (pull_messages),
(START_TEST), (gstbus_suite), (main):
* check/gst/gstcaps.c: (START_TEST), (gst_caps_suite), (main):
* check/gst/gstdata.c: (START_TEST), (thread_ref), (thread_unref),
(gst_data_suite), (main):
* check/gst/gstiterator.c: (make_list_of_ints), (START_TEST),
(add_fold_func), (gstiterator_suite), (main):
* check/gst/gstobject.c: (gst_fake_object_get_type), (START_TEST),
(thread_name_object), (thread_name_object_default),
(gst_object_name_compare), (gst_object_suite), (main):
* check/gst/gstpad.c: (START_TEST), (thread_link_unlink),
(gst_pad_suite), (main):
* check/gstcheck.c: (gst_check_log_message_func),
(gst_check_log_critical_func), (gst_check_init):
* check/gstcheck.h:
* check/pipelines/simple_launch_lines.c: (setup_pipeline),
(run_pipeline), (START_TEST), (simple_launch_lines_suite), (main):
Added checks.
2005-03-07 18:33:37 +00:00
|
|
|
|
2005-08-21 15:01:18 +00:00
|
|
|
TESTS_ENVIRONMENT = \
|
|
|
|
$(REGISTRY_ENVIRONMENT) \
|
2005-09-16 08:17:49 +00:00
|
|
|
GST_PLUGIN_SYSTEM_PATH= \
|
2005-11-29 18:14:35 +00:00
|
|
|
GST_PLUGIN_PATH=$(top_builddir)/plugins
|
2005-08-21 15:01:18 +00:00
|
|
|
|
check/: Added checks.
Original commit message from CVS:
* check/.cvsignore:
* check/Makefile.am:
* check/gst-libs/.cvsignore:
* check/gst-libs/gdp.c: (START_TEST), (gst_object_suite), (main):
* check/gst/.cvsignore:
* check/gst/gstbus.c: (pound_bus_with_messages), (pull_messages),
(START_TEST), (gstbus_suite), (main):
* check/gst/gstcaps.c: (START_TEST), (gst_caps_suite), (main):
* check/gst/gstdata.c: (START_TEST), (thread_ref), (thread_unref),
(gst_data_suite), (main):
* check/gst/gstiterator.c: (make_list_of_ints), (START_TEST),
(add_fold_func), (gstiterator_suite), (main):
* check/gst/gstobject.c: (gst_fake_object_get_type), (START_TEST),
(thread_name_object), (thread_name_object_default),
(gst_object_name_compare), (gst_object_suite), (main):
* check/gst/gstpad.c: (START_TEST), (thread_link_unlink),
(gst_pad_suite), (main):
* check/gstcheck.c: (gst_check_log_message_func),
(gst_check_log_critical_func), (gst_check_init):
* check/gstcheck.h:
* check/pipelines/simple_launch_lines.c: (setup_pipeline),
(run_pipeline), (START_TEST), (simple_launch_lines_suite), (main):
Added checks.
2005-03-07 18:33:37 +00:00
|
|
|
plugindir = $(libdir)/gstreamer-@GST_MAJORMINOR@
|
|
|
|
|
|
|
|
# override to _not_ install the test plugins
|
|
|
|
install-pluginLTLIBRARIES:
|
|
|
|
|
2005-11-30 16:29:28 +00:00
|
|
|
# the core dumps of some machines have PIDs appended
|
2005-03-29 14:12:48 +00:00
|
|
|
CLEANFILES = core.* test-registry.xml
|
|
|
|
|
2005-08-20 14:00:11 +00:00
|
|
|
SUPPRESSIONS = $(top_srcdir)/common/gst.supp
|
2005-07-11 15:10:40 +00:00
|
|
|
|
2005-08-20 14:00:11 +00:00
|
|
|
clean-local: clean-local-check
|
check/: Added checks.
Original commit message from CVS:
* check/.cvsignore:
* check/Makefile.am:
* check/gst-libs/.cvsignore:
* check/gst-libs/gdp.c: (START_TEST), (gst_object_suite), (main):
* check/gst/.cvsignore:
* check/gst/gstbus.c: (pound_bus_with_messages), (pull_messages),
(START_TEST), (gstbus_suite), (main):
* check/gst/gstcaps.c: (START_TEST), (gst_caps_suite), (main):
* check/gst/gstdata.c: (START_TEST), (thread_ref), (thread_unref),
(gst_data_suite), (main):
* check/gst/gstiterator.c: (make_list_of_ints), (START_TEST),
(add_fold_func), (gstiterator_suite), (main):
* check/gst/gstobject.c: (gst_fake_object_get_type), (START_TEST),
(thread_name_object), (thread_name_object_default),
(gst_object_name_compare), (gst_object_suite), (main):
* check/gst/gstpad.c: (START_TEST), (thread_link_unlink),
(gst_pad_suite), (main):
* check/gstcheck.c: (gst_check_log_message_func),
(gst_check_log_critical_func), (gst_check_init):
* check/gstcheck.h:
* check/pipelines/simple_launch_lines.c: (setup_pipeline),
(run_pipeline), (START_TEST), (simple_launch_lines_suite), (main):
Added checks.
2005-03-07 18:33:37 +00:00
|
|
|
|
2005-09-17 18:14:40 +00:00
|
|
|
# checks to fix
|
|
|
|
# gst/gstplugin
|
|
|
|
|
2005-11-30 19:01:53 +00:00
|
|
|
if GST_DISABLE_PARSE
|
|
|
|
PARSE_CHECKS =
|
|
|
|
else
|
|
|
|
PARSE_CHECKS = pipelines/simple-launch-lines pipelines/cleanup
|
|
|
|
endif
|
|
|
|
|
2005-08-21 15:01:18 +00:00
|
|
|
check_PROGRAMS = \
|
2005-06-21 16:48:46 +00:00
|
|
|
gst/gst \
|
2005-12-07 17:36:44 +00:00
|
|
|
gst/gstabi \
|
2005-06-08 13:42:52 +00:00
|
|
|
gst/gstbin \
|
|
|
|
gst/gstbuffer \
|
|
|
|
gst/gstbus \
|
|
|
|
gst/gstcaps \
|
2005-07-08 16:41:45 +00:00
|
|
|
gst/gstelement \
|
2005-08-20 12:43:18 +00:00
|
|
|
gst/gstevent \
|
gst/gstutils.c: RPAD fixes all around.
Original commit message from CVS:
2005-06-08 Andy Wingo <wingo@pobox.com>
* gst/gstutils.c: RPAD fixes all around.
(gst_element_link_pads): Refcounting fixes.
* tools/gst-inspect.c:
* tools/gst-xmlinspect.c:
* parse/grammar.y:
* gst/base/gsttypefindhelper.c:
* gst/base/gstbasesink.c:
* gst/gstqueue.c: RPAD fixes.
* gst/gstghostpad.h:
* gst/gstghostpad.c: New ghost pad implementation as full proxy
pads. The tricky thing is they provide both source and sink
interfaces, since they proxy the internal pad for the external
pad, and vice versa. Implement with lower-level ProxyPad objects,
with the interior proxy pad as a child of the exterior ghost pad.
Should write a doc on this.
* gst/gstpad.h: s/RPAD/PAD/, s/RealPad/Pad/.
(gst_pad_set_name, gst_pad_set_parent): Macros removed, use
gst_object API.
* gst/gstpad.c: Big changes. No more stub base GstPad, now all
pads are real pads. No ghost pads in this file. Not documenting
the myriad s/RPAD/PAD/ and REALIZE fixes.
(gst_pad_class_init): Add properties for "direction" and
"template". Both are construct-only, so they can't change during
the life of the pad. Fixes properly deriving from GstPad.
(gst_pad_custom_new, gst_pad_custom_new_from_template): Gone. For
derived objects, just set properties when creating the objects via
g_object_new.
(gst_pad_get_parent): Implement as a function, return NULL if the
parent is not an element.
(gst_pad_get_real_parent, gst_pad_add_ghost_pad)
(gst_pad_remove_ghost_pad, gst_pad_realize): Removed.
* gst/gstobject.c (gst_object_class_init): Make name a construct
property. Don't set it in the object init.
* gst/gstelement.c (gst_element_add_pad): Don't allow adding pads
with UNKNOWN direction.
(gst_element_add_ghost_pad): Remove non-orthogonal API. Replace
with gst_element_add_pad (e, gst_ghost_pad_new (name, pad)).
(gst_element_remove_pad): Remove ghost-pad special cases.
(gst_element_pads_activate): Remove rpad cruft.
* gst/gstbin.c (gst_bin_change_state): Use gst_pad_get_parent to
catch the pad's-parent-not-an-element case.
* gst/gst.h: Include gstghostpad.h.
* gst/gst.c (init_post): No more real, ghost pads.
* gst/Makefile.am: Add gstghostpad.[ch].
* check/Makefile.am:
* check/gst/gstbin.c:
* check/gst/gstghostpad.c (test_ghost_pads): Check that linking
into a bin creates ghost pads, and that the refcounts are right.
Partly moved from gstbin.c.
2005-06-08 22:16:27 +00:00
|
|
|
gst/gstghostpad \
|
2005-06-08 13:42:52 +00:00
|
|
|
gst/gstiterator \
|
|
|
|
gst/gstmessage \
|
2005-07-11 15:10:40 +00:00
|
|
|
gst/gstminiobject \
|
2005-06-08 13:42:52 +00:00
|
|
|
gst/gstobject \
|
|
|
|
gst/gstpad \
|
2005-09-22 12:05:05 +00:00
|
|
|
gst/gstplugin \
|
2005-11-20 19:11:09 +00:00
|
|
|
gst/gstsegment \
|
2005-06-08 13:42:52 +00:00
|
|
|
gst/gstsystemclock \
|
2005-06-22 19:22:34 +00:00
|
|
|
gst/gststructure \
|
2005-06-19 11:32:42 +00:00
|
|
|
gst/gsttag \
|
2005-09-21 12:21:10 +00:00
|
|
|
gst/gstutils \
|
2005-06-21 16:48:46 +00:00
|
|
|
gst/gstvalue \
|
2006-01-18 17:57:57 +00:00
|
|
|
elements/fakesink \
|
2005-08-20 12:47:08 +00:00
|
|
|
elements/fakesrc \
|
check/: Add tests for fdsrc seekability
Original commit message from CVS:
* check/Makefile.am:
* check/elements/fdsrc.c: (event_func), (setup_fdsrc),
(cleanup_fdsrc), (GST_START_TEST), (fdsrc_suite), (main):
Add tests for fdsrc seekability
* gst/elements/gstfdsrc.c: (gst_fdsrc_class_init),
(gst_fdsrc_init), (gst_fdsrc_update_fd), (gst_fdsrc_start),
(gst_fdsrc_set_property), (gst_fdsrc_is_seekable),
(gst_fdsrc_get_size), (gst_fdsrc_uri_set_uri):
* gst/elements/gstfdsrc.h:
fdsrc should not be a 'live' source.
Implement seeking on seekable fd's.
* gst/gstquery.c: (gst_query_new_seeking),
(gst_query_parse_seeking):
* gst/gstquery.h:
Implement SEEKING query functions:
*_new_seeking and *_parse_seeking
2005-11-27 22:50:09 +00:00
|
|
|
elements/fdsrc \
|
2006-01-18 17:57:57 +00:00
|
|
|
elements/identity \
|
2005-11-30 16:08:31 +00:00
|
|
|
generic/sinks \
|
2005-08-25 10:16:21 +00:00
|
|
|
generic/states \
|
2005-11-30 19:01:53 +00:00
|
|
|
$(PARSE_CHECKS) \
|
check/: Small state change torture test.
Original commit message from CVS:
* check/Makefile.am:
* check/pipelines/stress.c: (GST_START_TEST),
(simple_launch_lines_suite), (main):
Small state change torture test.
* docs/design/part-states.txt:
* gst/base/gstbasesink.c: (gst_base_sink_commit_state),
(gst_base_sink_handle_object), (gst_base_sink_event), (do_playing),
(gst_base_sink_change_state):
Never take state lock from streaming thread, clean up ugly
hacks. Unfortunatly core does not yet support nice ways to
async commit state.
* gst/gstbin.c: (gst_bin_remove_func), (gst_bin_recalc_state),
(bin_bus_handler):
Start state recalc if a STATE_DIRTY message is posted, but only
on the toplevel bin.
* gst/gstelement.c: (gst_element_sync_state_with_parent),
(gst_element_get_state_func), (gst_element_abort_state),
(gst_element_commit_state), (gst_element_lost_state),
(gst_element_set_state_func), (gst_element_change_state):
* gst/gstelement.h:
State variables are now protected with the LOCK, the state
lock is only used to serialize _set_state().
2005-10-18 17:06:29 +00:00
|
|
|
pipelines/stress \
|
2005-12-07 19:03:54 +00:00
|
|
|
libs/libsabi \
|
2005-11-30 16:08:31 +00:00
|
|
|
libs/controller \
|
|
|
|
libs/gdp \
|
|
|
|
libs/gstnetclientclock \
|
|
|
|
libs/gstnettimeprovider
|
check/: Added checks.
Original commit message from CVS:
* check/.cvsignore:
* check/Makefile.am:
* check/gst-libs/.cvsignore:
* check/gst-libs/gdp.c: (START_TEST), (gst_object_suite), (main):
* check/gst/.cvsignore:
* check/gst/gstbus.c: (pound_bus_with_messages), (pull_messages),
(START_TEST), (gstbus_suite), (main):
* check/gst/gstcaps.c: (START_TEST), (gst_caps_suite), (main):
* check/gst/gstdata.c: (START_TEST), (thread_ref), (thread_unref),
(gst_data_suite), (main):
* check/gst/gstiterator.c: (make_list_of_ints), (START_TEST),
(add_fold_func), (gstiterator_suite), (main):
* check/gst/gstobject.c: (gst_fake_object_get_type), (START_TEST),
(thread_name_object), (thread_name_object_default),
(gst_object_name_compare), (gst_object_suite), (main):
* check/gst/gstpad.c: (START_TEST), (thread_link_unlink),
(gst_pad_suite), (main):
* check/gstcheck.c: (gst_check_log_message_func),
(gst_check_log_critical_func), (gst_check_init):
* check/gstcheck.h:
* check/pipelines/simple_launch_lines.c: (setup_pipeline),
(run_pipeline), (START_TEST), (simple_launch_lines_suite), (main):
Added checks.
2005-03-07 18:33:37 +00:00
|
|
|
|
2005-11-28 10:29:37 +00:00
|
|
|
# failing tests
|
|
|
|
noinst_PROGRAMS = \
|
|
|
|
gst/gstpipeline
|
|
|
|
|
2005-09-15 00:13:26 +00:00
|
|
|
TESTS = $(check_PROGRAMS)
|
check/: Added checks.
Original commit message from CVS:
* check/.cvsignore:
* check/Makefile.am:
* check/gst-libs/.cvsignore:
* check/gst-libs/gdp.c: (START_TEST), (gst_object_suite), (main):
* check/gst/.cvsignore:
* check/gst/gstbus.c: (pound_bus_with_messages), (pull_messages),
(START_TEST), (gstbus_suite), (main):
* check/gst/gstcaps.c: (START_TEST), (gst_caps_suite), (main):
* check/gst/gstdata.c: (START_TEST), (thread_ref), (thread_unref),
(gst_data_suite), (main):
* check/gst/gstiterator.c: (make_list_of_ints), (START_TEST),
(add_fold_func), (gstiterator_suite), (main):
* check/gst/gstobject.c: (gst_fake_object_get_type), (START_TEST),
(thread_name_object), (thread_name_object_default),
(gst_object_name_compare), (gst_object_suite), (main):
* check/gst/gstpad.c: (START_TEST), (thread_link_unlink),
(gst_pad_suite), (main):
* check/gstcheck.c: (gst_check_log_message_func),
(gst_check_log_critical_func), (gst_check_init):
* check/gstcheck.h:
* check/pipelines/simple_launch_lines.c: (setup_pipeline),
(run_pipeline), (START_TEST), (simple_launch_lines_suite), (main):
Added checks.
2005-03-07 18:33:37 +00:00
|
|
|
|
2005-12-07 19:03:54 +00:00
|
|
|
noinst_HEADERS = gst/capslist.h gst/struct_i386.h libs/struct_i386.h
|
check/: Added checks.
Original commit message from CVS:
* check/.cvsignore:
* check/Makefile.am:
* check/gst-libs/.cvsignore:
* check/gst-libs/gdp.c: (START_TEST), (gst_object_suite), (main):
* check/gst/.cvsignore:
* check/gst/gstbus.c: (pound_bus_with_messages), (pull_messages),
(START_TEST), (gstbus_suite), (main):
* check/gst/gstcaps.c: (START_TEST), (gst_caps_suite), (main):
* check/gst/gstdata.c: (START_TEST), (thread_ref), (thread_unref),
(gst_data_suite), (main):
* check/gst/gstiterator.c: (make_list_of_ints), (START_TEST),
(add_fold_func), (gstiterator_suite), (main):
* check/gst/gstobject.c: (gst_fake_object_get_type), (START_TEST),
(thread_name_object), (thread_name_object_default),
(gst_object_name_compare), (gst_object_suite), (main):
* check/gst/gstpad.c: (START_TEST), (thread_link_unlink),
(gst_pad_suite), (main):
* check/gstcheck.c: (gst_check_log_message_func),
(gst_check_log_critical_func), (gst_check_init):
* check/gstcheck.h:
* check/pipelines/simple_launch_lines.c: (setup_pipeline),
(run_pipeline), (START_TEST), (simple_launch_lines_suite), (main):
Added checks.
2005-03-07 18:33:37 +00:00
|
|
|
|
2005-08-21 10:54:47 +00:00
|
|
|
AM_CFLAGS = $(GST_OBJ_CFLAGS) $(CHECK_CFLAGS)
|
2005-11-29 19:12:30 +00:00
|
|
|
LDADD = $(top_builddir)/libs/gst/check/libgstcheck-@GST_MAJORMINOR@.la \
|
2005-10-15 13:58:18 +00:00
|
|
|
$(GST_OBJ_LIBS) \
|
2005-08-21 10:54:47 +00:00
|
|
|
$(CHECK_LIBS)
|
check/: Added checks.
Original commit message from CVS:
* check/.cvsignore:
* check/Makefile.am:
* check/gst-libs/.cvsignore:
* check/gst-libs/gdp.c: (START_TEST), (gst_object_suite), (main):
* check/gst/.cvsignore:
* check/gst/gstbus.c: (pound_bus_with_messages), (pull_messages),
(START_TEST), (gstbus_suite), (main):
* check/gst/gstcaps.c: (START_TEST), (gst_caps_suite), (main):
* check/gst/gstdata.c: (START_TEST), (thread_ref), (thread_unref),
(gst_data_suite), (main):
* check/gst/gstiterator.c: (make_list_of_ints), (START_TEST),
(add_fold_func), (gstiterator_suite), (main):
* check/gst/gstobject.c: (gst_fake_object_get_type), (START_TEST),
(thread_name_object), (thread_name_object_default),
(gst_object_name_compare), (gst_object_suite), (main):
* check/gst/gstpad.c: (START_TEST), (thread_link_unlink),
(gst_pad_suite), (main):
* check/gstcheck.c: (gst_check_log_message_func),
(gst_check_log_critical_func), (gst_check_init):
* check/gstcheck.h:
* check/pipelines/simple_launch_lines.c: (setup_pipeline),
(run_pipeline), (START_TEST), (simple_launch_lines_suite), (main):
Added checks.
2005-03-07 18:33:37 +00:00
|
|
|
|
2005-11-30 16:08:31 +00:00
|
|
|
libs_gdp_SOURCES = \
|
|
|
|
libs/gdp.c \
|
check/: Added checks.
Original commit message from CVS:
* check/.cvsignore:
* check/Makefile.am:
* check/gst-libs/.cvsignore:
* check/gst-libs/gdp.c: (START_TEST), (gst_object_suite), (main):
* check/gst/.cvsignore:
* check/gst/gstbus.c: (pound_bus_with_messages), (pull_messages),
(START_TEST), (gstbus_suite), (main):
* check/gst/gstcaps.c: (START_TEST), (gst_caps_suite), (main):
* check/gst/gstdata.c: (START_TEST), (thread_ref), (thread_unref),
(gst_data_suite), (main):
* check/gst/gstiterator.c: (make_list_of_ints), (START_TEST),
(add_fold_func), (gstiterator_suite), (main):
* check/gst/gstobject.c: (gst_fake_object_get_type), (START_TEST),
(thread_name_object), (thread_name_object_default),
(gst_object_name_compare), (gst_object_suite), (main):
* check/gst/gstpad.c: (START_TEST), (thread_link_unlink),
(gst_pad_suite), (main):
* check/gstcheck.c: (gst_check_log_message_func),
(gst_check_log_critical_func), (gst_check_init):
* check/gstcheck.h:
* check/pipelines/simple_launch_lines.c: (setup_pipeline),
(run_pipeline), (START_TEST), (simple_launch_lines_suite), (main):
Added checks.
2005-03-07 18:33:37 +00:00
|
|
|
$(top_srcdir)/libs/gst/dataprotocol/dataprotocol.c
|
2005-11-30 16:08:31 +00:00
|
|
|
libs_gdp_CFLAGS = $(AM_CFLAGS)
|
2005-07-11 15:10:40 +00:00
|
|
|
|
2005-11-28 11:31:31 +00:00
|
|
|
elements_fdsrc_CFLAGS=$(GST_OBJ_CFLAGS) $(CHECK_CFLAGS) -DTESTFILE=\"$(top_srcdir)/configure.ac\"
|
2005-11-28 10:07:38 +00:00
|
|
|
|
2005-11-30 16:08:31 +00:00
|
|
|
libs_controller_LDADD = \
|
2005-10-15 13:58:18 +00:00
|
|
|
$(top_builddir)/libs/gst/controller/libgstcontroller-@GST_MAJORMINOR@.la \
|
|
|
|
$(LDADD)
|
2005-08-03 15:59:11 +00:00
|
|
|
|
2005-11-30 16:08:31 +00:00
|
|
|
libs_gstnetclientclock_LDADD = \
|
2005-11-29 19:12:30 +00:00
|
|
|
$(top_builddir)/libs/gst/net/libgstnet-@GST_MAJORMINOR@.la \
|
2005-11-17 17:55:17 +00:00
|
|
|
$(LDADD)
|
2005-11-30 16:08:31 +00:00
|
|
|
libs_gstnettimeprovider_LDADD = \
|
2005-11-29 19:12:30 +00:00
|
|
|
$(top_builddir)/libs/gst/net/libgstnet-@GST_MAJORMINOR@.la \
|
2005-11-16 16:49:49 +00:00
|
|
|
$(LDADD)
|
|
|
|
|
2005-07-11 15:10:40 +00:00
|
|
|
# valgrind testing
|
2005-08-20 12:39:05 +00:00
|
|
|
# these just need valgrind fixing, period
|
2005-11-16 18:09:47 +00:00
|
|
|
VALGRIND_TO_FIX =
|
2005-07-11 15:10:40 +00:00
|
|
|
|
2005-11-22 12:15:19 +00:00
|
|
|
VALGRIND_IGNORE = \
|
|
|
|
pipelines/stress
|
|
|
|
|
2005-07-11 15:10:40 +00:00
|
|
|
# these need fixing because the threads cause segfaults under valgrind
|
|
|
|
TESTS_THREADED = \
|
|
|
|
gst/gstminiobject \
|
|
|
|
gst/gstobject
|
|
|
|
|
2005-08-21 15:01:18 +00:00
|
|
|
VALGRIND_TESTS_DISABLE = \
|
|
|
|
$(TESTS_THREADED) \
|
2005-11-22 12:15:19 +00:00
|
|
|
$(VALGRIND_IGNORE) \
|
2005-09-17 18:14:40 +00:00
|
|
|
$(VALGRIND_TO_FIX)
|