<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [

<!-- Process this file with docbook-to-man to generate an nroff manual
page: `docbook-to-man manpage.sgml > manpage.1'.  You may view
the manual page with: `docbook-to-man manpage.sgml | nroff -man |
less'.  A typical entry in a Makefile or Makefile.am is:

manpage.1: manpage.sgml
docbook-to-man $< > $@


The docbook-to-man binary is found in the docbook-to-man package.
Please remember that if you create the nroff version in one of the
debian/rules file targets (such as build), you will need to include
docbook-to-man in your Build-Depends control field.

-->

<!-- Fill in your name for FIRSTNAME and SURNAME. -->
<!ENTITY dhfirstname "<firstname>Michael</firstname>">
<!ENTITY dhsurname   "<surname>Fladischer</surname>">
<!-- Please adjust the date whenever revising the manpage. -->
<!ENTITY dhdate      "<date>9 September 2013</date>">
<!-- SECTION should be 1-8, maybe w/ subsection other parameters are
allowed: see man(7), man(1). -->
<!ENTITY dhsection   "<manvolnum>1</manvolnum>">
<!ENTITY dhemail     "<email>FladischerMichael@fladi.at</email>">
<!ENTITY dhusername  "fladi">
<!ENTITY dhucpackage "<refentrytitle>PYXBGEN</refentrytitle>">
<!ENTITY dhpackage   "pyxbgen">

<!ENTITY debian      "<productname>Debian</productname>">
<!ENTITY gnu         "<acronym>GNU</acronym>">
<!ENTITY gpl         "&gnu; <acronym>GPL</acronym>">
]>

<refentry>
    <refentryinfo>
        <address>
            &dhemail;
        </address>
        <author>
            &dhfirstname;
            &dhsurname;
        </author>
        <copyright>
            <year>2013</year>
            <holder>&dhusername;</holder>
        </copyright>
        &dhdate;
    </refentryinfo>
    <refmeta>
        &dhucpackage;
        &dhsection;
    </refmeta>
    <refnamediv>
        <refname>&dhpackage;</refname>
        <refpurpose>Python XML Schema Bindings Generator</refpurpose>
    </refnamediv>
    <refsynopsisdiv>
        <cmdsynopsis>
            <command>&dhpackage;</command>
            <arg>command</arg>
            <arg><option>[options]</option></arg>
            <arg><option>[more schema locations...]</option></arg>
        </cmdsynopsis>
    </refsynopsisdiv>
    <refsect1>
        <title>DESCRIPTION</title>
        <para>
            This manual page documents briefly the <command>&dhpackage;</command> command.
        </para>
        <para>
            This manual page was written for the &debian; distribution because the original program does not have a manual page.
        </para>
        <para>
            <command>&dhpackage;</command> is a program that generates Python bindings from XML schema files or WSDL input.
        </para>
    </refsect1>
    <refsect1>
        <title>Generic Options</title>
        <variablelist>
            <varlistentry>
                <term>
                    <option>--version</option>
                </term>
                <listitem>
                    <para>
                        Show program’s version number and exit.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>
                    <option>--help</option>
                </term>
                <listitem>
                    <para>
                        Show help message and exit.
                    </para>
                </listitem>
            </varlistentry>
        </variablelist>
    </refsect1>
    <refsect1>
        <title>Identifying Schema</title>
        <para>Specify and locate schema for which bindings should be generated.</para>
        <variablelist>
            <varlistentry>
                <term>
                    <option>-u <replaceable class="parameter">FILE_or_URL</replaceable></option>
                    <option>--schema-location=<replaceable class="parameter">FILE_or_URL</replaceable></option>
                </term>
                <listitem>
                    <para>
                        Add the location of an entrypoint schema. The provided value should be a URL. If it does not have a URL scheme (e.g., http:), it is
                        assumed to be a file, and if it is not an absolute path is located relative to the schemaRoot.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>
                    <option>--schema-root=<replaceable class="parameter">DIRECTORY</replaceable></option>
                </term>
                <listitem>
                    <para>
                        The directory from which entrypoint schemas specified as relative file paths will be read.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>
                    <option>--schema-stripped-prefix=<replaceable class="parameter">TEXT</replaceable></option>
                </term>
                <listitem>
                    <para>
                        Optional string that is stripped from the beginning of schemaLocation values before loading from them. This applies only to the values
                        of schemaLocation attributes in import and include elements. Its purpose is to convert absolute schema locations into relative ones to
                        allow offline processing when all schema are available in a local directory. See schemaRoot.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>
                    <option>--location-prefix-rewrite=<replaceable class="parameter">TEXT</replaceable></option>
                </term>
                <listitem>
                    <para>
                        Add a rewrite entry for schema locations. Parameter values are strings of the form pfx=sub. The effect is that a schema location that
                        begins with pfx is rewritten so that it instead begins with sub.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>
                    <option>--uri-content-archive-directory=<replaceable class="parameter">DIRECTORY</replaceable></option>
                </term>
                <listitem>
                    <para>
                        The directory path into which any content retrieved by URI will be written. This serves as a local cache, and to give you an opportunity
                        to inspect material retrieved from some other system.
                    </para>
                </listitem>
            </varlistentry>
        </variablelist>
    </refsect1>
    <refsect1>
        <title>Configuring Bindings</title>
        <para>
            Specify where generated bindings should be written, and how they will be accessed from Python.
        </para>
        <variablelist>
            <varlistentry>
                <term>
                    <option>-m <replaceable class="parameter">MODULE</replaceable></option>
                    <option>--module=<replaceable class="parameter">MODULE</replaceable></option>
                </term>
                <listitem>
                    <para>
                        Add a module name corresponding to an entrypoint schema. The namespace defined by the corresponding schema will be written to a binding
                        using the given module name, adjusted by modulePrefix.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>
                    <option>--module-prefix=<replaceable class="parameter">MODULE</replaceable></option>
                </term>
                <listitem>
                    <para>
                        The prefix for binding modules. The base name for the module holding a binding is taken from the moduleList, moduleMap, or an XMLNS
                        prefix associated with the namespace in a containing schema. This value, if present, is used as a prefix to allow a deeper module
                        hierarchy.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>
                    <option>--binding-root=<replaceable class="parameter">DIRECTORY</replaceable></option>
                </term>
                <listitem>
                    <para>
                        The directory path into which generated bindings will be written.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>
                    <option>--write-for-customization</option>
                </term>
                <listitem>
                    <para>
                        Indicates whether the binding Python code should be written into a sub-module for customization. If enabled, a module path.to.namespace
                        will be written to the file path/to/raw/namespace.py, so that the file path/to/namespace.py can import it and override behavior. This
                        option turns on the feature.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>
                    <option>--no-write-for-customization</option>
                </term>
                <listitem>
                    <para>
                        Indicates whether the binding Python code should be written into a sub- module for customization. If enabled, a module path.to.namespace
                        will be written to the file path/to/raw/namespace.py, so that the file path/to/namespace.py can import it and override behavior. This
                        option turns off the feature (default).
                    </para>
                </listitem>
            </varlistentry>
        </variablelist>
    </refsect1>
    <refsect1>
        <title>SEE ALSO</title>

        <para>pyxbdump(1), pyxbwsdl(1).</para>
    </refsect1>
    <refsect1>
        <title>AUTHOR</title>

        <para>This manual page was written by &dhusername; &dhemail; for
            the &debian; system (and may be used by others).  Permission is
            granted to copy, distribute and/or modify this document under
            the terms of the &gnu; General Public License, Version 2 any
            later version published by the Free Software Foundation.
        </para>
        <para>
            On Debian systems, the complete text of the GNU General Public
            License can be found in /usr/share/common-licenses/GPL.
        </para>

    </refsect1>
</refentry>

<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:2
sgml-indent-data:t
sgml-parent-document:nil
sgml-default-dtd-file:nil
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
-->
<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [

<!-- Process this file with docbook-to-man to generate an nroff manual
page: `docbook-to-man manpage.sgml > manpage.1'.  You may view
the manual page with: `docbook-to-man manpage.sgml | nroff -man |
less'.  A typical entry in a Makefile or Makefile.am is:

manpage.1: manpage.sgml
docbook-to-man $< > $@


The docbook-to-man binary is found in the docbook-to-man package.
Please remember that if you create the nroff version in one of the
debian/rules file targets (such as build), you will need to include
docbook-to-man in your Build-Depends control field.

-->

<!-- Fill in your name for FIRSTNAME and SURNAME. -->
<!ENTITY dhfirstname "<firstname>Michael</firstname>">
<!ENTITY dhsurname   "<surname>Fladischer</surname>">
<!-- Please adjust the date whenever revising the manpage. -->
<!ENTITY dhdate      "<date>12 July 2013</date>">
<!-- SECTION should be 1-8, maybe w/ subsection other parameters are
allowed: see man(7), man(1). -->
<!ENTITY dhsection   "<manvolnum>1</manvolnum>">
<!ENTITY dhemail     "<email>FladischerMichael@fladi.at</email>">
<!ENTITY dhusername  "fladi">
<!ENTITY dhucpackage "<refentrytitle>CELERY</refentrytitle>">
<!ENTITY dhpackage   "celery">

<!ENTITY debian      "<productname>Debian</productname>">
<!ENTITY gnu         "<acronym>GNU</acronym>">
<!ENTITY gpl         "&gnu; <acronym>GPL</acronym>">
]>

<refentry>
    <refentryinfo>
        <address>
            &dhemail;
        </address>
        <author>
            &dhfirstname;
            &dhsurname;
        </author>
        <copyright>
            <year>2013</year>
            <holder>&dhusername;</holder>
        </copyright>
        &dhdate;
    </refentryinfo>
    <refmeta>
        &dhucpackage;

        &dhsection;
    </refmeta>
    <refnamediv>
        <refname>&dhpackage;</refname>

        <refpurpose>Celery Worker Daemon</refpurpose>
    </refnamediv>
    <refsynopsisdiv>
        <cmdsynopsis>
            <command>&dhpackage;</command>
            <arg>command</arg>

            <arg><option>-A/--app=<replaceable>APP</replaceable></option></arg>
            <arg><option>-b/--broker=<replaceable>BROKER</replaceable></option></arg>
            <arg><option>--loader=<replaceable>LOADER</replaceable></option></arg>
            <arg><option>--config=<replaceable>CONFIG</replaceable></option></arg>
            <arg><option>--workdir=<replaceable>WORKING_DIRECTORY</replaceable></option></arg>
            <arg><option>-q/--quiet</option></arg>
            <arg><option>-C/--no-color</option></arg>
            <arg><option>--version</option></arg>
            <arg><option>--help</option></arg>
        </cmdsynopsis>
    </refsynopsisdiv>
    <refsect1>
        <title>DESCRIPTION</title>

        <para>This manual page documents briefly the
            <command>&dhpackage;</command> command.</para>

        <para>This manual page was written for the &debian; distribution
            because the original program does not have a manual page.</para>

        <para>
            <command>&dhpackage;</command> is a program that manages the
            Celery Worker Daemons and their queues.
        </para>

    </refsect1>
    <refsect1>
        <title>COMMANDS</title>
        <para>
            All inspect commands supports a --timeout argument, This is the number of seconds to wait for responses. You may have to increase this timeout if
            you’re not getting a response due to latency.
        </para>
        <variablelist>
            <varlistentry>
                <term>
                    <arg>shell</arg>
                </term>
                <listitem>
                    <para>
                        Drop into a Python shell. The locals will include the celery variable, which is the current app. Also all known tasks will be
                        automatically added to locals (unless the --without-tasks flag is set). Uses Ipython, bpython, or regular python in that order if
                        installed. You can force an implementation using --force-ipython|-I, --force-bpython|-B, or --force-python|-P.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>
                    <arg>status</arg>
                </term>
                <listitem>
                    <para>
                        List active nodes in this cluster.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>
                    <arg>result <option>-t <replaceable>task name</replaceable></option> <replaceable>uuid</replaceable></arg>
                </term>
                <listitem>
                    <para>
                        Show the result of a task. Note that you can omit the name of the task as long as the task doesn’t use a custom result backend.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>
                    <arg>purge</arg>
                </term>
                <listitem>
                    <para>
                        Purge messages from all configured task queues.
                        Warning: There is no undo for this operation, and messages will be permanently deleted!
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>
                    <arg>inspect active</arg>
                </term>
                <listitem>
                    <para>
                        List active tasks. These are all the tasks that are currently being executed.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>
                    <arg>inspect scheduled</arg>
                </term>
                <listitem>
                    <para>
                        List scheduled ETA tasks. These are tasks reserved by the worker because they have the eta or countdown argument set.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>
                    <arg>inspect reserved</arg>
                </term>
                <listitem>
                    <para>
                        List reserved tasks. This will list all tasks that have been prefetched by the worker, and is currently waiting to be executed (does not
                        include tasks with an eta).
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>
                    <arg>inspect revoked</arg>
                </term>
                <listitem>
                    <para>
                        List history of revoked tasks.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>
                    <arg>inspect registered</arg>
                </term>
                <listitem>
                    <para>
                        List registered tasks.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>
                    <arg>inspect stats</arg>
                </term>
                <listitem>
                    <para>
                        Show worker statistics.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>
                    <arg>control enable_events</arg>
                </term>
                <listitem>
                    <para>
                        Enable events.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>
                    <arg>control disable_events</arg>
                </term>
                <listitem>
                    <para>
                        Disable events.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>
                    <arg>migrate <replaceable>from</replaceable> <replaceable>to</replaceable></arg>
                </term>
                <listitem>
                    <para>
                        Migrate tasks from one broker to another (EXPERIMENTAL). This command will migrate all the tasks on one broker to another. As this
                        command is new and experimental you should be sure to have a backup of the data before proceeding. The value for each broker should be
                        a URL.
                    </para>
                </listitem>
            </varlistentry>
        </variablelist>
    </refsect1>
    <refsect1>
        <title>OPTIONS</title>

        <para>This program follows the usual &gnu; command line syntax,
            with long options starting with two dashes (`-').  A summary of
            options is included below.</para>

        <variablelist>
            <varlistentry>
                <term>
                    <option>-A <replaceable class="parameter">APP</replaceable></option>
                    <option>--app=<replaceable class="parameter">APP</replaceable></option>
                </term>
                <listitem>
                    <para>App instance to use (e.g. module.attr_name).</para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>
                    <option>-b <replaceable class="parameter">BROKER</replaceable></option>
                    <option>--broker=<replaceable class="parameter">BROKER</replaceable></option>
                </term>
                <listitem>
                    <para>URL to the broker. Default is 'amqp://guest@localhost//'.</para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>
                    <option>--loader=<replaceable class="parameter">LOADER</replaceable></option>
                </term>
                <listitem>
                    <para>name of custom loader class to use.</para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>
                    <option>--config=<replaceable class="parameter">CONFIG</replaceable></option>
                </term>
                <listitem>
                    <para>Name of the configuration module.</para>
                </listitem>
            </varlistentry><varlistentry>
                <term>
                    <option>--workdir=<replaceable class="parameter">WORKING_DIRECTORY</replaceable></option>
                </term>
                <listitem>
                    <para>Optional directory to change to after detaching.</para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>
                    <option>--quiet</option>
                </term>
            </varlistentry>
            <varlistentry>
                <term>
                    <option>-C</option>
                    <option>--no-color</option>
                </term>
            </varlistentry>
            <varlistentry>
                <term>
                    <option>--version</option>
                </term>
                <listitem>
                    <para>Show program's version number and exit.</para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>
                    <option>-h</option>
                    <option>--help</option>
                </term>
                <listitem>
                    <para>Show help message and exit.</para>
                </listitem>
            </varlistentry>
        </variablelist>
    </refsect1>
    <refsect1>
        <title>Reading Namespace Archives</title>
        <para>
            Locating and loading (or inhibiting load of) namespace archives.
        </para>
        <variablelist>
            <varlistentry>
                <term>
                    <option>--archive-path=<replaceable class="parameter">PATH</replaceable></option>
                </term>
                <listitem>
                    <para>
                        A colon-separated list of paths from which namespace archives can be read. The default path is the contents of the PYXB_ARCHIVE_PATH
                        environment variable, or the standard path configured at installation time. Any file with the extension .wxs found in one of these
                        directories is examined to see whether it is a namespace archive.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>
                    <option>--pre-load-archive=<replaceable class="parameter">FILE</replaceable></option>
                </term>
                <listitem>
                    <para>
                        Name of a file containing a stored archive from which namespaces should be read prior to processing schema. Files to be pre-loaded are
                        not affected by noLoadNamespace.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>
                    <option>--no-load-namespace=<replaceable class="parameter">URI</replaceable></option>
                </term>
                <listitem>
                    <para>
                        Mark that the specified namespace should not be loaded from an archive. Use this when you are generating bindings for an application
                        that has a restricted profile of a namespace that would otherwise be read from an archive. Be aware that this removes any knowledge of
                        any archive in which this namespace is present as a non-private member.
                    </para>
                </listitem>
            </varlistentry>
        </variablelist>
    </refsect1>
    <refsect1>
        <title>Writing Namespace Archives</title>
        <para>
            Control the location and content of a namespace archive corresponding to a binding generation.
        </para>
        <variablelist>
            <varlistentry>
                <term>
                    <option>--archive-to-file=<replaceable class="parameter">FILE</replaceable></option>
                </term>
                <listitem>
                    <para>
                        Optional file into which the archive of namespaces will be written. Subsequent generation actions can read pre-parsed namespaces from
                        this file, and therefore reference the bindings that were built earlier rather than re-generating them. The file name should normally
                        end with .wxs.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>
                    <option>--public-namespace=<replaceable class="parameter">URI</replaceable></option>
                </term>
                <listitem>
                    <para>
                        Indicates, for specific namespaces, whether their visibility in the archive should be public or private. This option adds the namespace
                        as a public archive member.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>
                    <option>--private-namespace=<replaceable class="parameter">URI</replaceable></option>
                </term>
                <listitem>
                    <para>
                        Indicates, for specific namespaces, whether their visibility in the archive should be public or private. This option adds the namespace
                        as a private archive member.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>
                    <option>--default-namespace-public</option>
                </term>
                <listitem>
                    <para>
                        Indicates whether unmentioned namespaces will be public or private (default) in the archive. A namespace is mentioned if it is the
                        target namespace of an entrypoint schema, or appears in a namespace visibility specification. I.e., this default applies only to
                        namespaces that are modified as a result of including some schema, which is generally a local customization of something. This option
                        makes the default public (default).
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>
                    <option>--default-namespace-private</option>
                </term>
                <listitem>
                    <para>
                        Indicates whether unmentioned namespaces will be public or private (default) in the archive. A namespace is mentioned if it is the
                        target namespace of an entrypoint schema, or appears in a namespace visibility specification. I.e., this default applies only to
                        namespaces that are modified as a result of including some schema, which is generally a local customization of something. This option
                        makes the default private.
                    </para>
                </listitem>
            </varlistentry>
        </variablelist>
    </refsect1>
    <refsect1>
        <title>Configuring Binding Code Generation</title>
        <para>
            Control the style and content of the generated bindings. This is not well-supported, and you are advised to pretend these options don’t exist.
        </para>
        <variablelist>
            <varlistentry>
                <term>
                    <option>--validate-changes</option>
                </term>
                <listitem>
                    <para>
                        Indicates whether the bindings should validate mutations against the content model. This option turns on validation (default).
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>
                    <option>--no-validate-changes</option>
                </term>
                <listitem>
                    <para>
                        Indicates whether the bindings should validate mutations against the content model. This option turns off validation.
                    </para>
                </listitem>
            </varlistentry>
        </variablelist>
    </refsect1>
    <refsect1>
        <title>Miscellaneous Options</title>
        <variablelist>
            <varlistentry>
                <term>
                    <option>--logging-config-file=<replaceable class="parameter">FILE</replaceable></option>
                </term>
                <listitem>
                    <para>
                        A file provided to L{logging.config.fileConfig} to control log messages. In the absence of other configuration the Python standard
                        logging infrastructure is used in its default configuration.
                    </para>
                </listitem>
            </varlistentry>
        </variablelist>
    </refsect1>
    <refsect1>
        <title>WSDL Options</title>
        <para>
            Options relevant to generating bindings from WSDL service descriptions.
        </para>
        <variablelist>
            <varlistentry>
                <term>
                    <option>-W <replaceable class="parameter">FILE_or_URL</replaceable></option>
                    <option>--wsdl-location=<replaceable class="parameter">FILE_or_URL</replaceable></option>
                </term>
                <listitem>
                    <para>
                        Generate bindings for the types stanza of the WSDL at this location. This option is equivalent to retrieving the WSDL, extracting the
                        schema part of its types block to a file, and using that file as a --schema-location.
                    </para>
                </listitem>
            </varlistentry>
        </variablelist>
    </refsect1>
    <refsect1>
        <title>SEE ALSO</title>
        <para>pyxbdump(1), pyxbwsdl(1).</para>
    </refsect1>
    <refsect1>
        <title>AUTHOR</title>

        <para>This manual page was written by &dhusername; &dhemail; for
            the &debian; system (and may be used by others).  Permission is
            granted to copy, distribute and/or modify this document under
            the terms of the &gnu; General Public License, Version 2 any
            later version published by the Free Software Foundation.
        </para>
        <para>
            On Debian systems, the complete text of the GNU General Public
            License can be found in /usr/share/common-licenses/GPL.
        </para>

    </refsect1>
</refentry>

<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:2
sgml-indent-data:t
sgml-parent-document:nil
sgml-default-dtd-file:nil
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
-->
