components/python/taskflow/taskflow-PYVER.p5m
author Devjani Ray <devjani.ray@oracle.com>
Fri, 05 Feb 2016 17:54:17 -0500
changeset 5405 66fd59fecd68
parent 3998 5bd484384122
child 6839 2e1e503d4307
permissions -rw-r--r--
PSARC 2015/535 OpenStack service updates for Kilo PSARC 2015/458 aioeventlet - asyncio event loop scheduling callbacks in eventlet PSARC 2015/460 msgpack - C/Python bindings for MessagePack (de)serializer data PSARC 2015/466 openstackclient - OpenStack Command-line Client PSARC 2015/467 oslo.versionedobjects - Oslo Versioned Objects library PSARC 2015/468 pint - A physical quantities module PSARC 2015/469 pysaml2 - A pure Python implementation of SAML2 PSARC 2015/471 semantic_version - A library implementing the 'SemVer' scheme PSARC 2015/472 testresources - PyUnit extension for managing expensive test resources PSARC 2015/473 testscenarios - Extensions to Python unittest to support scenarios PSARC 2015/474 trollius - Port of the Tulip project (asyncio module, PEP 3156) on Python 2 PSARC 2015/475 urllib3 - HTTP library with thread-safe connection pooling, file post, and more PSARC 2015/520 oslo.concurrency - Oslo Concurrency library PSARC 2015/521 oslo.log - Oslo Logging Configuration library PSARC 2015/529 oslo.policy - Oslo Policy library PSARC 2015/530 psutil - Python system and process utilities PSARC 2015/538 fixtures - Python module to support reusable state for writing clean tests PSARC 2015/539 sqlparse - An SQL parser module for Python PSARC 2016/017 extras - Useful extra utilities for Python PSARC 2016/018 linecache2 - Port of the standard linecache module PSARC 2016/019 python-mimeparse - Basic functions for parsing mime-types PSARC 2016/020 testtools - Extensions to the Python unit testing framework PSARC 2016/021 traceback2 - Port of the standard traceback module PSARC 2016/014 OpenStack Cinder NFS driver for Solaris 22384068 OpenStack service updates for Kilo (Umbrella) 21974208 The Python module msgpack should be added to Userland 22010630 The Python trollius module should be added to Userland 22011755 The Python module pint should be added to Userland 22012256 The Python aioeventlet module should be added to Userland 22012282 The Python oslo.versionedobjects module should be added to Userland 22012317 The Python semantic_version module should be added to Userland 22012321 The Python testresources module should be added to Userland 22012329 The Python testscenarios module should be added to Userland 22012336 The Python urllib3 module should be added to Userland 22012343 The Python openstackclient module should be added to Userland 22299389 The Python oslo.concurrency module should be added to Userland 22299409 The Python oslo.log module should be added to Userland 22299418 The Python oslo.policy module should be added to Userland 22299469 The Python psutil module should be added to Userland 22337793 The Python sqlparse module should be added to Userland 22338325 The Python fixtures module should be added to Userland 22535728 The Python testtools module should be added to Userland 22535739 The Python extras module should be added to Userland 22535748 The Python linecache2 module should be added to Userland 22535753 The Python traceback2 module should be added to Userland 22535760 The Python python-mimeparse module should be added to Userland 18961001 Image filtering does not function as expected 21678935 NFS for Cinder in Solaris OpenStack 22548630 derived manifest should not enforce presence of global when installing from UAR 22629795 problem in SERVICE/KEYSTONE

#
# CDDL HEADER START
#
# The contents of this file are subject to the terms of the
# Common Development and Distribution License (the "License").
# You may not use this file except in compliance with the License.
#
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
# or http://www.opensolaris.org/os/licensing.
# See the License for the specific language governing permissions
# and limitations under the License.
#
# When distributing Covered Code, include this CDDL HEADER in each
# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
# If applicable, add the following below this CDDL HEADER, with the
# fields enclosed by brackets "[]" replaced with your own identifying
# information: Portions Copyright [yyyy] [name of copyright owner]
#
# CDDL HEADER END
#

#
# Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
#

set name=pkg.fmri \
    value=pkg:/library/python/taskflow-$(PYV)@$(IPS_COMPONENT_VERSION),$(BUILD_VERSION)
set name=pkg.summary \
    value="A Python library that provides task execution insurance."
set name=pkg.description \
    value="Taskflow is a Python library for OpenStack that helps make task execution easy, consistent, and reliable. It allows the creation of lightweight task objects and/or functions that are combined together into flows (aka: workflows). It includes engines for running these flows in a manner that can be stopped, resumed, and safely reverted.  Projects implemented using the this library enjoy added state resiliency, fault tolerance and simplified crash recovery. Think of it as a way to protect an action, similar to the way transactions protect operations in a RDBMS. Typically if a manager process is terminated while an action was in progress, there is a risk that unprotected code would leave the system in a degraded or inconsistent state. With this library, interrupted actions may be resumed or rolled back automatically when a manager process is resumed."
set name=com.oracle.info.description \
    value="the Taskflow task execution insurance Python module"
set name=com.oracle.info.tpno value=$(TPNO)
set name=info.classification \
    value=org.opensolaris.category.2008:Development/Python
set name=info.source-url value=$(COMPONENT_ARCHIVE_URL)
set name=info.upstream value="OpenStack <[email protected]>"
set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
set name=org.opensolaris.arc-caseid value=PSARC/2014/305
set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
#
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow-$(COMPONENT_VERSION)-py$(PYVER).egg-info/PKG-INFO
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow-$(COMPONENT_VERSION)-py$(PYVER).egg-info/SOURCES.txt
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow-$(COMPONENT_VERSION)-py$(PYVER).egg-info/dependency_links.txt
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow-$(COMPONENT_VERSION)-py$(PYVER).egg-info/entry_points.txt
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow-$(COMPONENT_VERSION)-py$(PYVER).egg-info/not-zip-safe
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow-$(COMPONENT_VERSION)-py$(PYVER).egg-info/pbr.json
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow-$(COMPONENT_VERSION)-py$(PYVER).egg-info/requires.txt
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow-$(COMPONENT_VERSION)-py$(PYVER).egg-info/top_level.txt
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/__init__.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/atom.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/conductors/__init__.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/conductors/base.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/conductors/single_threaded.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/engines/__init__.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/engines/action_engine/__init__.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/engines/action_engine/actions/__init__.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/engines/action_engine/actions/base.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/engines/action_engine/actions/retry.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/engines/action_engine/actions/task.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/engines/action_engine/analyzer.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/engines/action_engine/compiler.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/engines/action_engine/completer.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/engines/action_engine/engine.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/engines/action_engine/executor.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/engines/action_engine/runner.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/engines/action_engine/runtime.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/engines/action_engine/scheduler.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/engines/action_engine/scopes.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/engines/base.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/engines/helpers.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/engines/worker_based/__init__.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/engines/worker_based/dispatcher.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/engines/worker_based/endpoint.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/engines/worker_based/engine.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/engines/worker_based/executor.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/engines/worker_based/protocol.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/engines/worker_based/proxy.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/engines/worker_based/server.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/engines/worker_based/types.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/engines/worker_based/worker.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/examples/alphabet_soup.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/examples/build_a_car.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/examples/buildsystem.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/examples/calculate_in_parallel.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/examples/calculate_linear.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/examples/create_parallel_volume.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/examples/delayed_return.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/examples/distance_calculator.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/examples/echo_listener.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/examples/example_utils.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/examples/fake_billing.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/examples/graph_flow.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/examples/hello_world.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/examples/job_board_no_test.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/examples/jobboard_produce_consume_colors.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/examples/parallel_table_multiply.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/examples/persistence_example.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/examples/pseudo_scoping.out.txt
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/examples/pseudo_scoping.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/examples/resume_from_backend.out.txt
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/examples/resume_from_backend.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/examples/resume_many_flows.out.txt
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/examples/resume_many_flows.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/examples/resume_many_flows/my_flows.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/examples/resume_many_flows/resume_all.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/examples/resume_many_flows/run_flow.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/examples/resume_vm_boot.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/examples/resume_volume_create.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/examples/retry_flow.out.txt
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/examples/retry_flow.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/examples/reverting_linear.out.txt
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/examples/reverting_linear.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/examples/run_by_iter.out.txt
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/examples/run_by_iter.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/examples/run_by_iter_enumerate.out.txt
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/examples/run_by_iter_enumerate.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/examples/simple_linear.out.txt
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/examples/simple_linear.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/examples/simple_linear_listening.out.txt
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/examples/simple_linear_listening.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/examples/simple_linear_pass.out.txt
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/examples/simple_linear_pass.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/examples/simple_map_reduce.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/examples/timing_listener.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/examples/wbe_event_sender.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/examples/wbe_mandelbrot.out.txt
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/examples/wbe_mandelbrot.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/examples/wbe_simple_linear.out.txt
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/examples/wbe_simple_linear.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/examples/wrapped_exception.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/exceptions.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/flow.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/jobs/__init__.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/jobs/backends/__init__.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/jobs/backends/impl_zookeeper.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/jobs/base.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/listeners/__init__.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/listeners/base.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/listeners/capturing.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/listeners/claims.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/listeners/logging.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/listeners/printing.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/listeners/timing.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/logging.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/patterns/__init__.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/patterns/graph_flow.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/patterns/linear_flow.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/patterns/unordered_flow.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/persistence/__init__.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/persistence/backends/__init__.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/persistence/backends/impl_dir.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/persistence/backends/impl_memory.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/persistence/backends/impl_sqlalchemy.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/persistence/backends/impl_zookeeper.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/persistence/backends/sqlalchemy/__init__.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/persistence/backends/sqlalchemy/alembic/README
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/persistence/backends/sqlalchemy/alembic/alembic.ini
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/persistence/backends/sqlalchemy/alembic/env.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/persistence/backends/sqlalchemy/alembic/script.py.mako
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/persistence/backends/sqlalchemy/alembic/versions/14b227d79a87_add_intention_column.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/persistence/backends/sqlalchemy/alembic/versions/1c783c0c2875_replace_exception_an.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/persistence/backends/sqlalchemy/alembic/versions/1cea328f0f65_initial_logbook_deta.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/persistence/backends/sqlalchemy/alembic/versions/589dccdf2b6e_rename_taskdetails_to_atomdetails.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/persistence/backends/sqlalchemy/alembic/versions/84d6e888850_add_task_detail_type.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/persistence/backends/sqlalchemy/alembic/versions/README
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/persistence/backends/sqlalchemy/migration.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/persistence/backends/sqlalchemy/tables.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/persistence/base.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/persistence/logbook.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/retry.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/states.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/storage.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/task.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/test.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/types/__init__.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/types/cache.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/types/failure.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/types/fsm.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/types/futures.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/types/graph.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/types/latch.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/types/notifier.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/types/periodic.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/types/table.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/types/timing.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/types/tree.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/utils/__init__.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/utils/async_utils.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/utils/deprecation.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/utils/eventlet_utils.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/utils/kazoo_utils.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/utils/kombu_utils.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/utils/lock_utils.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/utils/misc.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/utils/persistence_utils.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/utils/threading_utils.py
file path=usr/lib/python$(PYVER)/vendor-packages/taskflow/version.py
#
license taskflow.license license="Apache v2.0"

# force a group dependency on the optional eventlet; pkgdepend work is needed to
# flush this out.
depend type=group fmri=library/python/eventlet-$(PYV)

# force a group dependency on the optional pbr; pkgdepend work is needed to
# flush this out.
depend type=group fmri=library/python/pbr-$(PYV)

# force a dependency on the Python runtime
depend type=require fmri=__TBD pkg.debug.depend.file=python$(PYVER) \
    pkg.debug.depend.path=usr/bin

# force a dependency on alembic; pkgdepend work is needed to flush this out.
depend type=require fmri=library/python/alembic-$(PYV)

# force a dependency on futures; pkgdepend work is needed to flush this out.
depend type=require fmri=library/python/futures-$(PYV)

# force a dependency on jsonschema; pkgdepend work is needed to flush this out.
depend type=require fmri=library/python/jsonschema-$(PYV)

# force a dependency on kombu; pkgdepend work is needed to flush this out.
depend type=require fmri=library/python/kombu-$(PYV)

# force a dependency on networkx; pkgdepend work is needed to flush this out.
depend type=require fmri=library/python/networkx-$(PYV)

# force a dependency on ordereddict; pkgdepend work is needed to flush this out.
depend type=require fmri=library/python/ordereddict-$(PYV)

# force a dependency on oslo.serialization; pkgdepend work is needed to flush
# this out.
depend type=require fmri=library/python/oslo.serialization-$(PYV)

# force a dependency on oslo.utils; pkgdepend work is needed to flush this out.
depend type=require fmri=library/python/oslo.utils-$(PYV)

# force a dependency on setuptools; pkgdepend work is needed to flush this out.
depend type=require fmri=library/python/setuptools-$(PYV)

# force a dependency on six; pkgdepend work is needed to flush this out.
depend type=require fmri=library/python/six-$(PYV)

# force a dependency on sqlalchemy; pkgdepend work is needed to flush this out.
depend type=require fmri=library/python/sqlalchemy-$(PYV)

# force a dependency on stevedore; pkgdepend work is needed to flush this out.
depend type=require fmri=library/python/stevedore-$(PYV)

# force a dependency on the taskflow package
depend type=require \
    fmri=library/python/taskflow@$(IPS_COMPONENT_VERSION),$(BUILD_VERSION)