This is an automated email from the ASF dual-hosted git repository.

djencks pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/felix-antora-site.git


The following commit(s) were added to refs/heads/main by this push:
     new 97cedc0  FELIX-5076 fix some broken links and anchors, convert 
Markdown tables to AsciiDoc
     new b4ae68d  Merge pull request #3 from ahus1/FELIX-5076-fix-broken-links
97cedc0 is described below

commit 97cedc01eb6b593dbd1db701dd58e6207d7bc977
Author: Alexander Schwartz <[email protected]>
AuthorDate: Sun Jan 2 17:12:36 2022 +0100

    FELIX-5076 fix some broken links and anchors, convert Markdown tables to 
AsciiDoc
---
 conversion-notes.adoc                              |   9 +-
 modules/ROOT/pages/community/contributing.adoc     |   2 +-
 .../pages/faqs/apache-felix-scr-plugin-faq.adoc    |   2 +-
 .../reference/dm-annotations.adoc                  |   4 +-
 ...he-felix-framework-launching-and-embedding.adoc |   2 +
 ...apache-felix-framework-usage-documentation.adoc |  15 +--
 .../apache-felix-gogo/rfc-147-overview.adoc        |  20 ++--
 .../pages/subprojects/apache-felix-inventory.adoc  |   8 +-
 .../apache-felix-maven-bundle-plugin-bnd.adoc      |   6 +-
 .../apache-felix-maven-scr-plugin-use.adoc         |  31 ++---
 .../scr-annotations.adoc                           | 126 ++++++++++++---------
 .../scr-javadoc-tags.adoc                          |  12 +-
 .../extending-the-apache-felix-web-console.adoc    |   2 +-
 13 files changed, 124 insertions(+), 115 deletions(-)

diff --git a/conversion-notes.adoc b/conversion-notes.adoc
index 6c81cd8..aa83a56 100644
--- a/conversion-notes.adoc
+++ b/conversion-notes.adoc
@@ -186,11 +186,8 @@ Since Asciidoc has some notion of grammar, you'll need to 
fix the problems.
 
 Title: ` :: replace with `= `
 
-Error `level 0 sections can only be used when doctype is book` :: More deeply 
nest sections so body sections are at least `== `.
-This may be facilitated in jetbrains products with an on-page regex 
search/replace from `
-(=+ )` to `
-
-=$1`.
+Error `level 0 sections can only be used when doctype is book` :: More deeply 
nest sections so body sections are at least ``== ``.
+This may be facilitated in jetbrains products with an on-page regex 
search/replace from ``(=+ )`` to `=$1`.
 
 There are numerous classes of problems this does not cover.
 The first step is probably to eliminate the command line errors/warnings.
@@ -236,7 +233,7 @@ echo '#!/bin/sh' >move-png.sh
 find modules -name "*.png" -exec sh -c     'echo mkdir -p `dirname $0`\\ngit 
mv $0 $0' {} \; |sed 's/\([gp]\) modules\/ROOT\/pages/\1 
modules\/ROOT\/images/g' >>move-png.sh
 chmod u+x move-png.sh
 ./move-png.sh
----
+----
 
 You may need to move pngs with spaces in their filenames by hand.
 
diff --git a/modules/ROOT/pages/community/contributing.adoc 
b/modules/ROOT/pages/community/contributing.adoc
index b9276ba..cdb149b 100644
--- a/modules/ROOT/pages/community/contributing.adoc
+++ b/modules/ROOT/pages/community/contributing.adoc
@@ -44,7 +44,7 @@ The steps for granting software are a little more complicated 
since we need to e
 For grants, you should:
 
 . Verify that you have the authorization to donate the code.
-. Review our xref:development.adoc[developer documentation] as well as the 
general https://www.apache.org/foundation/getinvolved.html[Apache 
documentation] to determine whether you would really like be involved with us 
and how we work.
+. Review our xref:development/coding-standards.adoc[developer documentation] 
as well as the general 
https://www.apache.org/foundation/getinvolved.html[Apache documentation] to 
determine whether you would really like be involved with us and how we work.
 . Assuming you're still interested, create a 
https://issues.apache.org/jira/browse/Felix[JIRA] issue describing the code you 
wish to donate.
 . Attach an archive containing the code along with an MD5 signature of the 
archive to the above issue.
 You should remove any existing headers from the source files and add the 
standard Apache header to each.
diff --git a/modules/ROOT/pages/faqs/apache-felix-scr-plugin-faq.adoc 
b/modules/ROOT/pages/faqs/apache-felix-scr-plugin-faq.adoc
index d1cecdc..35b487e 100644
--- a/modules/ROOT/pages/faqs/apache-felix-scr-plugin-faq.adoc
+++ b/modules/ROOT/pages/faqs/apache-felix-scr-plugin-faq.adoc
@@ -3,7 +3,7 @@
 
 
 This page provides answers to frequently asked questions using the Maven SCR 
Plugin.
-See xref:subprojects/apache-felix-maven-scr-plugin.adoc[] for documentation on 
that plugin.
+See 
xref:subprojects/apache-felix-maven-scr-plugin/apache-felix-maven-scr-plugin-use.adoc[]
 for documentation on that plugin.
 
 == Should I still use the Apache Felix SCR annotations over the official OSGi 
annotations?
 
diff --git 
a/modules/ROOT/pages/subprojects/apache-felix-dependency-manager/reference/dm-annotations.adoc
 
b/modules/ROOT/pages/subprojects/apache-felix-dependency-manager/reference/dm-annotations.adoc
index b6db0d2..b949ab7 100644
--- 
a/modules/ROOT/pages/subprojects/apache-felix-dependency-manager/reference/dm-annotations.adoc
+++ 
b/modules/ROOT/pages/subprojects/apache-felix-dependency-manager/reference/dm-annotations.adoc
@@ -335,7 +335,7 @@ The  manager which is in charge of maintaining the state of 
components is implem
 So, during activation, the component goes through a number of states, where 
each transition  includes the invocation of the following lifecycle method 
callbacks on the service implementation:
 
 * 
http://felix.apache.org/apidocs/dependencymanager.annotations/r13/org/apache/felix/dm/annotation/api/Init.html[@Init]:
 this callback is invoked after all required dependencies have been injected.
-In this method, you can  yet add more dynamic dependencies using the DM API, 
or you can possibly configure other dependencies filter and required flags (see 
<<# Dynamic dependency configuration,Dynamic dependency configuration>>).
+In this method, you can  yet add more dynamic dependencies using the DM API, 
or you can possibly configure other dependencies filter and required flags (see 
<<_dynamic_dependency_configuration,Dynamic dependency configuration>>).
 * 
http://felix.apache.org/apidocs/dependencymanager.annotations/r13/org/apache/felix/dm/annotation/api/Start.html[@Start]:
 this callback is invoked after all required dependencies added in the @Init 
method have been injected.
 * 
http://felix.apache.org/apidocs/dependencymanager.annotations/r13/org/apache/felix/dm/annotation/api/Registered.html[@Registered]:
 this callback is invoked after the service component is registered (if the 
component provides a service).
 The callback can takes as argument a ServiceRegistration parameter.
@@ -354,7 +354,7 @@ When all required dependencies are  available:
 * inject all optional dependencies defined on class fields, possibly with a 
_NullObject_ if the  dependency is not available.
 * call the component init method (annotated with _@Init_, see (see  
http://felix.apache.org/apidocs/dependencymanager.annotations/r13/org/apache/felix/dm/annotation/api/Init.html[@Init
 javadoc]).).
 In the init method, you are yet allowed to add some additional dependencies 
using the Dependency  Manager API or DM Lambda).
-Alternatively, you can also configure some  dependencies dynamically  
(explained later, in <<#dynamic-dependency-configuration,Dynamic Dependency 
Configuration>>.
+Alternatively, you can also configure some  dependencies dynamically  
(explained later, in <<_dynamic_dependency_configuration,Dynamic Dependency 
Configuration>>.
 
 2) Wait for extra required dependencies optionally configured from the init() 
method.
 When all extra  required dependencies are available:
diff --git 
a/modules/ROOT/pages/subprojects/apache-felix-framework/apache-felix-framework-launching-and-embedding.adoc
 
b/modules/ROOT/pages/subprojects/apache-felix-framework/apache-felix-framework-launching-and-embedding.adoc
index 277823f..0275952 100644
--- 
a/modules/ROOT/pages/subprojects/apache-felix-framework/apache-felix-framework-launching-and-embedding.adoc
+++ 
b/modules/ROOT/pages/subprojects/apache-felix-framework/apache-felix-framework-launching-and-embedding.adoc
@@ -117,6 +117,7 @@ To know when the framework has finished its shutdown 
sequence, use the `waitForS
 A stopped framework will be in the `Bundle.RESOLVED` state.
 It is possible to restart the framework, using the normal combination of 
`init()`/`start()` methods as previously described.
 
+[[_launching]]
 == Launching a Framework
 
 Launching a framework is fairly simple and involves only four steps:
@@ -282,6 +283,7 @@ this is necessary because the framework never calls 
`System.exit()` and some lib
 The framework is not active until the `start()` method is called.
 If no shell bundles are installed and started or if there is difficulty 
locating the shell bundles specified in the auto-start property, then it will 
appear as if the framework is hung, but it is actually running without any way 
to interact with it since the shell bundles provide the only means of 
interaction.
 
+[[_custom-launcher]]
 === Custom Framework Launcher
 
 This section creates a bare-bones launcher to demonstrate the minimum 
requirements for creating an interactive launcher for the Felix framework.
diff --git 
a/modules/ROOT/pages/subprojects/apache-felix-framework/apache-felix-framework-usage-documentation.adoc
 
b/modules/ROOT/pages/subprojects/apache-felix-framework/apache-felix-framework-usage-documentation.adoc
index dca5ed0..4c9af94 100644
--- 
a/modules/ROOT/pages/subprojects/apache-felix-framework/apache-felix-framework-usage-documentation.adoc
+++ 
b/modules/ROOT/pages/subprojects/apache-felix-framework/apache-felix-framework-usage-documentation.adoc
@@ -1,16 +1,5 @@
 = Apache Felix Framework Usage Documentation
 
-* <<downloading-the-framework,Downloading the Framework>>
-* <<starting-the-framework,Starting the Framework>>
-* <<framework-shell,Framework Shell>>
- ** <<installing-bundles,Installing Bundles>>
- ** <<web-proxy-issues-when-installing-bundles,Web Proxy Issues when 
Installing Bundles>>
-* <<bundle-auto-deploy,Bundle Auto-Deploy>>
-* <<configuring-the-framework,Configuring the Framework>>
- ** <<system-property-substitution,System Property Substitution>>
-* <<configuring-bundles,Configuring Bundles>>
-* <<feedback,Feedback>>
-
 == Downloading the Framework
 
 Go to the link:{{ refs.downloads.path }}[downloads] page and download the 
latest Felix framework distribution.
@@ -115,7 +104,7 @@ These properties are:
 this string should be the user name and password separated by a colon (e.g., 
`rickhall:mypassword`).
 
 These system properties can be set directly on the command line when starting 
the JVM using the standard "[.code]``\-D<prop>=<value>``" syntax or you can put 
them in the `lib/system.properties` file of your Felix installation;
-see the next section on <<configuring-the-framework,configuring Felix>> for 
more information.
+see the next section on <<_configuring_the_framework,configuring Felix>> for 
more information.
 
 == Bundle Auto-Deploy
 
@@ -174,7 +163,7 @@ To learn about the configuration options for specific 
bundles, refer to the docu
 Bundle properties may also be defined in the `conf/config.properties` property 
file.
 Any property placed in this file will be accessible via 
`BundleContext.getProperty()` at run time.
 The property file uses the standard Java property file syntax (i.e., 
attribute-value pairs).
-For information on changing the default location of this file, refer to the 
section on <<configuring-the-framework,configuring Felix>>.
+For information on changing the default location of this file, refer to the 
section on <<_configuring_the_framework,configuring Felix>>.
 
 == Feedback
 
diff --git 
a/modules/ROOT/pages/subprojects/apache-felix-gogo/rfc-147-overview.adoc 
b/modules/ROOT/pages/subprojects/apache-felix-gogo/rfc-147-overview.adoc
index e8b8aef..0379af5 100644
--- a/modules/ROOT/pages/subprojects/apache-felix-gogo/rfc-147-overview.adoc
+++ b/modules/ROOT/pages/subprojects/apache-felix-gogo/rfc-147-overview.adoc
@@ -53,20 +53,20 @@ The `CommandSession` interface provides methods for 
executing commands and getti
 
 * basic commands
 
-[source,sh]ell
+[source,sh]
    g! echo hello world
    hello world
 
 * session variables
 
-[source,sh]ell
+[source,sh]
    g! msg = "hello world"
    g! echo $msg
    hello world
 
 * execution quotes `()` - similar to bash backquotes
 
-[source,sh]ell
+[source,sh]
    g! (bundle 1) location
    
file:/Users/derek/Downloads/felix-framework-3.0.0/bundle/org.apache.felix.bundlerepository-1.6.2.jar
 
@@ -74,7 +74,7 @@ The `CommandSession` interface provides methods for executing 
commands and getti
 
 * lists - `[]`
 
-[source,sh]ell
+[source,sh]
    g! list = [1 2 a b]
    1
    2
@@ -83,7 +83,7 @@ The `CommandSession` interface provides methods for executing 
commands and getti
 
 * maps - `[]`
 
-[source,sh]ell
+[source,sh]
    g! map = [Jan=1 Feb=2 Mar=3]
    Jan                 1
    Feb                 2
@@ -91,7 +91,7 @@ The `CommandSession` interface provides methods for executing 
commands and getti
 
 * pipes - `|`
 
-[source,sh]ell
+[source,sh]
    g! bundles | grep gogo
        2|Active     |    1|org.apache.felix.gogo.command (0.6.0)
        3|Active     |    1|org.apache.felix.gogo.runtime (0.6.0)
@@ -99,7 +99,7 @@ The `CommandSession` interface provides methods for executing 
commands and getti
 
 * closures - `{}`
 
-[source,sh]ell
+[source,sh]
    g! echo2 = { echo xxx $args yyy }
    g! echo2 hello world
    xxx hello world yyy
@@ -108,7 +108,7 @@ The `CommandSession` interface provides methods for 
executing commands and getti
 
 * exception handling - console shows summary, but full context available
 
-[source,sh]ell
+[source,sh]
    g! start xxx
    E: Cannot coerce start[xxx] to any of [(Bundle)]
    g! $exception printstacktrace
@@ -122,7 +122,7 @@ The `CommandSession` interface provides methods for 
executing commands and getti
 
 * add all public methods on `java.lang.System` as commands:
 
-[source,sh]ell
+[source,sh]
    g! addcommand system (loadClass java.lang.System)
    g! system:getproperties
    sun.io.unicode.encodingUnicodeLittle
@@ -158,7 +158,7 @@ The `ThreadIO` service transparently manages the singleton 
`System.out` etc, so
 
 then
 
-[source,sh]ell
+[source,sh]
  g! each [Jan Feb Mar] { echo $it | grep . }
  Jan
  Feb
diff --git a/modules/ROOT/pages/subprojects/apache-felix-inventory.adoc 
b/modules/ROOT/pages/subprojects/apache-felix-inventory.adoc
index 0392c4b..3e2964e 100644
--- a/modules/ROOT/pages/subprojects/apache-felix-inventory.adoc
+++ b/modules/ROOT/pages/subprojects/apache-felix-inventory.adoc
@@ -25,7 +25,7 @@ In and of itself the Apache Felix Inventory Printer module is 
independent of oth
 
 To actually get access to the output of Inventory Printer services, though, 
the Apache Felix Web Console must be installed.
 
-In the future <<gogo-shell,Integration with the Apache Felix Gogo Shell>> will 
also be provided in which case the Apache Felix Gogo Shell must be installed.
+In the future <<_integration_with_the_apache_felix_gogo_shell,Integration with 
the Apache Felix Gogo Shell>> will also be provided in which case the Apache 
Felix Gogo Shell must be installed.
 
 == Inventory Printer Services
 
@@ -49,7 +49,7 @@ It should be descriptive but short.
 | `felix.inventory.printer.format`
 | --
 | The property defining the supported rendering formats.
-The value of this property is either a string or a string array containing 
valid names of 
xref:apidocs/inventory/1.0.0/org/apache/felix/inventory/Format.html[`Format`].
+The value of this property is either a string or a string array containing 
valid names of 
link:{attachmentsdir}/apidocs/inventory/1.0.0/org/apache/felix/inventory/Format.html[`Format`].
 If this property is missing or contains invalid values, the printer is ignored.
 
 | `felix.inventory.printer.webconsole`
@@ -63,7 +63,7 @@ The first three properties are required for the Inventory 
Printer service to be
 Otherwise the service is ignored by the framework printing a message to the 
log.
 
 To prevent bundle resolution failure if the `InventoryPrinter` API is not 
available in the framework it is suggested to register the Inventory Printer 
services as service factories and dynamically import the API.
-See the question 
xref:tutorials-examples-and-presentations/apache-felix-osgi-faq.adoc#how-to-provide-optional-services[{{
 ref.apache-felix-osgi-faq.title }}] in the Apache Felix OSGi FAQ for more 
details.
+See the question 
xref:tutorials-examples-and-presentations/apache-felix-osgi-faq.adoc#_how_to_provide_optional_services[How
 to provide optional services?] in the Apache Felix OSGi FAQ for more details.
 
 === Example Inventory Printer Service
 
@@ -95,7 +95,7 @@ See the question 
xref:tutorials-examples-and-presentations/apache-felix-osgi-faq
      }
  }
 
-See also the link:/apidocs/inventory/1.0.0/[API JavaDoc].
+See also the link:{attachmentsdir}/apidocs/inventory/1.0.0/[API JavaDoc].
 
 == ZIP Attachment Provider
 
diff --git 
a/modules/ROOT/pages/subprojects/apache-felix-maven-bundle-plugin-bnd.adoc 
b/modules/ROOT/pages/subprojects/apache-felix-maven-bundle-plugin-bnd.adoc
index 2362d7c..ca35702 100644
--- a/modules/ROOT/pages/subprojects/apache-felix-maven-bundle-plugin-bnd.adoc
+++ b/modules/ROOT/pages/subprojects/apache-felix-maven-bundle-plugin-bnd.adoc
@@ -22,7 +22,7 @@ TIP: http://bnd.bndtools.org/chapters/790-format.html[A 
complete list of instruc
 == Simple Example
 
 Rather than going straight to a detailed list of plugin features, we will 
first look at a simple example of how to use the plugin to give an immediate 
flavor.
-A detailed "<<detailed-how-to,how to>>" will follow.
+A detailed "<<_detailed_how_to,how to>>" will follow.
 
 Assume that we have a simple bundle project that has a pubic API package an 
several implementation packages, such as:
 
@@ -53,14 +53,14 @@ If we also assume that we have a bundle activator in one of 
the implementation p
 The `<Export-Package>` and `<Private-Package>` instructions tell the plugin 
about the contents of the resulting bundle JAR file.
 The `<Export-Package>` instruction tells the plugin which of the available 
packages to copy into the bundle _and_ export, while the `<Private-Package>` 
instruction indicates which of the available packages to copy into the bundle 
_but not_ export.
 If the two sets overlap, as they do in the case, then the export takes 
precedence.
-Since we did not specify any values for any other bundle manifest headers, 
they will assume default values which are described <<default-behavior,below>>.
+Since we did not specify any values for any other bundle manifest headers, 
they will assume default values which are described <<_default_behavior,below>>.
 One specific behavior to highlight is that the plugin generates the 
`Import-Package` bundle manifest header based on the contents of the bundle, 
which means that you generally do not ever need to explicitly specify it 
yourself.
 That's it.
 
 == Features
 
 The BND library underlying the plugin defines instructions to direct its 
behavior.
-For this Maven plugin, these instructions are issued in the plugin 
configuration section of the POM file, as was illustrated 
<<simple-example,above>>.
+For this Maven plugin, these instructions are issued in the plugin 
configuration section of the POM file, as was illustrated 
<<_simple_example,above>>.
 BND recognizes three types of instructions:
 
 . _Manifest headers_ - Any instruction that starts with a capital letter will 
appear in the resulting bundle's manifest file;
diff --git 
a/modules/ROOT/pages/subprojects/apache-felix-maven-scr-plugin/apache-felix-maven-scr-plugin-use.adoc
 
b/modules/ROOT/pages/subprojects/apache-felix-maven-scr-plugin/apache-felix-maven-scr-plugin-use.adoc
index e0690f9..c337295 100644
--- 
a/modules/ROOT/pages/subprojects/apache-felix-maven-scr-plugin/apache-felix-maven-scr-plugin-use.adoc
+++ 
b/modules/ROOT/pages/subprojects/apache-felix-maven-scr-plugin/apache-felix-maven-scr-plugin-use.adoc
@@ -2,7 +2,7 @@
 
 == Using the Apache Felix Maven SCR Plugin to generate Declarative Services 
and Metatype Service descriptors during a Maven Build
 
-Support for automatic generation of the compenent and metadata descriptors is 
embeded in the `org.apache.felix:maven-scr-plugin` plugin.
+Support for automatic generation of the component and metadata descriptors is 
embedded in the `org.apache.felix:maven-scr-plugin` plugin.
 To use this plugin, it has to be declared in the project descriptor as a 
`<plugin>` element:
 [source,xml]
  <project>
@@ -69,32 +69,33 @@ If you want to process the standard annotations with the 
`maven-scr-plugin` add
    ...
  </project>
 
-These dependencies needs to be specified in order to have an easy way to 
opt-out the processing of one set or use other tools to process them.
+These dependencies need to be specified in order to have an easy way to 
opt-out the processing of one set or use other tools to process them.
 It's possible to specify both dependencies and use both annotations within a 
single project (however it's better to stay with one set).
 The plugin may be configured with the following properties (Check the version 
column to make sure you use at least this version for the mentioned feature):
 
-'''
-
-*`specVersion`*      + _Default_: Automatically detected  + _Since_: 1.4.0  + 
The plugin will generate a descriptor for the Declarative Service version (e.g.
+[%header,cols="2a,2a,1a,3a"]
+|===
+| Property | Default | Since | Description
+| *`specVersion`*      | Automatically detected  | 1.4.0  | The plugin will 
generate a descriptor for the Declarative Service version (e.g.
 1.0, 1.1, or 1.2).
 If no value is specified, the plugin will detect the version and only use 1.1 
if features from this version are used.
---- *`generateAccessors`*      + _Default_: `true`  + _Since_:   + If this 
switch is turned on, the bind and unbind methods for unary references are 
automatically generated by the plugin.
---- *`scanClasses`*  + _Default_: `false`  + _Since_: 1.9.0  + By default the 
plugin scans the java source tree, if this is set to `true`, the generated 
classes directory is scanned instead.
---- *`sourceIncludes`*      + _Default_: `true`  + _Since_: 1.7.4  + Comma 
separated list of classes to include when processing the source.
---- *`sourceExcludes`*      + _Default_: `true`  + _Since_:  + Comma separated 
list of classes to exclude when processing the source.
---- *`strictMode`*      + _Default_: `false`  + _Since_:  + The plugin 
distinguishes between errors and warnings.
+| *`generateAccessors`*      | `true`  |   | If this switch is turned on, the 
bind and unbind methods for unary references are automatically generated by the 
plugin.
+| *`scanClasses`*  | `false`  | 1.9.0  | By default the plugin scans the java 
source tree, if this is set to `true`, the generated classes directory is 
scanned instead.
+| *`sourceIncludes`*      | `true`  | 1.7.4  | Comma separated list of classes 
to include when processing the source.
+| *`sourceExcludes`*      | `true`  |  | Comma separated list of classes to 
exclude when processing the source.
+| *`strictMode`*      | `false`  |  | The plugin distinguishes between errors 
and warnings.
 In strict mode warnings are treated as errors and cause the plugin to fail.
---- *`properties`*      + _Default_: None  + _Since_: 1.2.0  + A map of 
predefined properties.
+| *`properties`*      | None  | 1.2.0  | A map of predefined properties.
 These properties are set to each component (if the component does not define 
the property already).
 This is a map where the property name is made up by the included element name 
and the value is the value of the element.
---- *`outputDirectory`*      + _Default_: `${project.build.outputDirectory}`  
+ _Since_: 1.0.0  + The directory where all files are generated in.
---- *`supportedProjectTypes`*  + _Default_: `jar, bundle`  + _Since_: 1.8.0  + 
Project types which this plugin supports.
----
+| *`outputDirectory`*      | `${project.build.outputDirectory}`  | 1.0.0  | 
The directory where all files are generated in.
+| *`supportedProjectTypes`*  | `jar, bundle`  | 1.8.0  | Project types which 
this plugin supports.
+|===
 
 The metatype files are generated in the `OSGI-INF/metatype/` directory and the 
Declarative Services descriptor files in the `OSGI-INF` directory.
 
 The plugin will look for component annotations in all Java files found in the 
source directories of the project unless the `scanClasses` property indicates 
the class files are to be scanned instead.
-This is usefull if the annotations are actually defined in JVM-based languages 
such as Groovy or Scala.
+This is useful if the annotations are actually defined in JVM-based languages 
such as Groovy or Scala.
 
 == Using the descriptor
 
diff --git 
a/modules/ROOT/pages/subprojects/apache-felix-maven-scr-plugin/scr-annotations.adoc
 
b/modules/ROOT/pages/subprojects/apache-felix-maven-scr-plugin/scr-annotations.adoc
index b06cc2c..613936f 100644
--- 
a/modules/ROOT/pages/subprojects/apache-felix-maven-scr-plugin/scr-annotations.adoc
+++ 
b/modules/ROOT/pages/subprojects/apache-felix-maven-scr-plugin/scr-annotations.adoc
@@ -12,11 +12,11 @@ If you want to use the annotations in your project, you 
have to use a `maven-scr
 
 The following annotations are supported:
 
-* <<component,@Component>>
-* <<activate-deactivate-and-modified,@Activate, @Deactivate, and @Modified>>
-* <<service,@Service>>
-* <<property,@Property>>
-* <<reference,@Reference>>
+* <<_component,@Component>>
+* <<_activate_deactivate_and_modified,@Activate, @Deactivate, and @Modified>>
+* <<_service,@Service>>
+* <<_property,@Property>>
+* <<_reference,@Reference>>
 
 The annotations itself do _not_ support the new features from R6 or above.
 It is suggested to use the official OSGi annotations for Declarative Services 
instead.
@@ -32,31 +32,37 @@ The required `<implementation>` element is automatically 
generated with the full
 
 Supported attributes:
 
-'''
-
-*`ds`*  + _Default_: `true`  + _SCR Descriptor_: --  + _Metatype Descriptor_: 
--  + Whether Declarative Services descriptor is generated or not.
+[%header,cols="2a,2a,2a,2a,3a"]
+|===
+| Property | Default | SCR Descriptor | Metatype Descriptor | Description
+| *`ds`*  |  `true`  |   |   | Whether Declarative Services descriptor is 
generated or not.
 If this parameter is not set or set to `true` the Declarative Services 
descriptor is generated in the service descriptor file for this component.
 Otherwise no Declarative Services descriptor is generated for this component.
---- *`specVersion`*  + _Default_: `1.0`  + _SCR Descriptor_: --  + _Metatype 
Descriptor_: --  + Defines what Declarative Services specification the 
component is written against.
+| *`specVersion`*  |  `1.0`  |   |   | Defines what Declarative Services 
specification the component is written against.
 Though the Maven SCR Plugin is very good at detecting whether components are 
written against the original or a newer specification, there are some cases, 
where the plugin may fail.
 For these cases, the `specVersion` attribute may be set to the correct version.
 Currently supported values for this attribute are `1.0` and `1.1`.
 Since version 1.4.1 of the Maven SCR Plugin and version 1.0.1 of the SCR 
Annotations.
---- *`metatype`*  + _Default_: `false`  + _SCR Descriptor_: --  + _Metatype 
Descriptor_: --  + Whether Metatype Service data is generated or not.
+| *`metatype`*  |  `false`  |   |   | Whether Metatype Service data is 
generated or not.
 If this parameter is set to `true` Metatype Service data is generated in the 
`metatype.xml` file for this component.
 Otherwise no Metatype Service data is generated for this component.
---- *`componentAbstract`*  + _Default_: see 
<<abstract-service-descriptions,description>>  + _SCR Descriptor_: --  + 
_Metatype Descriptor_: --  + This marks an abstract service description which 
is not added to the descriptor but intended for reuse through inheritance.
+| *`componentAbstract`*  |  see <<_abstract_service_descriptions,description>> 
 |   |   | This marks an abstract service description which is not added to the 
descriptor but intended for reuse through inheritance.
 This attribute defaults to `true` for abstract classes and `false` for 
concrete classes.
---- *`inherit`*  + _Default_: `true`  + _SCR Descriptor_: --  + _Metatype 
Descriptor_: --  + Whether any service, property and reference declarations 
from base classes should be inherited by this class.
---- *`createPid`*  + _Default_: `true`  + _SCR Descriptor_: `service.pid`  + 
_Metatype Descriptor_: --  + Generate the `service.pid` property if non is 
declared.
---- *`name`*  + _Default_: Fully qualified name of the Java class  + _SCR 
Descriptor_: `component.name`  + _Metatype Descriptor_: `OCD.id`  + Defines the 
Component name also used as the PID for the Configuration Admin Service --- 
*`enabled`*  + _Default_: `true`  + _SCR Descriptor_: `component.enabled`  + 
_Metatype Descriptor_: --  + Whether the component is enabled when the bundle 
starts --- *`factory`*  + _Default_: --  + _SCR Descriptor_: 
`component.factory`  + _Metatype Descriptor_:  [...]
+| *`inherit`*  |  `true`  |   |   | Whether any service, property and 
reference declarations from base classes should be inherited by this class.
+| *`createPid`*  |  `true`  |  `service.pid`  |   | Generate the `service.pid` 
property if non is declared.
+| *`name`*  |  Fully qualified name of the Java class  |  `component.name`  | 
`OCD.id`  | Defines the Component name also used as the PID for the 
Configuration Admin Service
+| *`enabled`*  |  `true`  |  `component.enabled`  |   | Whether the component 
is enabled when the bundle starts
+| *`factory`*  |  |  `component.factory`  |   | Whether the component is a 
factory component
+| *`immediate`*  |  |  `component.immediate`  |   | Whether the component is 
immediately activated
+| *`policy`*  |  `OPTIONAL`  |  `component.policy`  |   | The configuration 
policy for this component: `OPTIONAL`, `IGNORE`, or `REQUIRE`.
 This attribute is supported since version 1.4.0 of the plugin and requires a 
Declarative Service implementation 1.1 or higher.
---- *`label`*  + _Default_: `%<name>.name`  + _SCR Descriptor_: --  + 
_Metatype Descriptor_: `OCD.name`  + This is generally used as a title for the 
object described by the meta type.
+| *`label`*  |  `%<name>.name`  |   | `OCD.name`  | This is generally used as 
a title for the object described by the meta type.
 This name may be localized by prepending a `%` sign to the name.
---- *`description`*  + _Default_: `%<name>.name`  + _SCR Descriptor_: --  + 
_Metatype Descriptor_: `OCD.description`  + This is generally used as a 
description for the object described by the meta type.
+| *`description`*  |  `%<name>.name`  |   | `OCD.description`  | This is 
generally used as a description for the object described by the meta type.
 This name may be localized by prepending a `%` sign to the name.
---- *`configurationFactory`*  + _Default_: `false`  + _SCR Descriptor_: --  + 
_Metatype Descriptor_: `Designate.factoryPid`  + Is this a configuration 
factory?
+| *`configurationFactory`*  |  `false`  |   | `Designate.factoryPid`  | Is 
this a configuration factory?
 (since 1.4.0)
+|===
 
 === Abstract Service Descriptions
 
@@ -73,7 +79,7 @@ The Declarative Service version 1.1 allows to specify the 
name for the activate,
 The `@Activate`, `@Deactivate`, and `@Modified` annotation can be used to mark 
a method to be used for the specified purpose.
 However, as the DS specifies a method search algorithm, there are rare cases 
where the marked method is not used (if there is another method with the same 
name, but a different signature this might happen).
 
-These annoations have no attribues.
+These annotations have no attributes.
 
 == @Service
 
@@ -85,15 +91,18 @@ See section 112.4.6, Service Elements, in the OSGi Service 
Platform Service Comp
 
 Supported attributes:
 
-'''
-
-*`value`*  + _Default_: All implemented interfaces  + _SCR Descriptor_: 
`provide.interface`  + The name of the service interface provided by the 
component.
+[%header,cols="2a,2a,2a,3a"]
+|===
+| Property | Default | SCR Descriptor | Description
+| *`value`*  | All implemented interfaces  | `provide.interface`  | The name 
of the service interface provided by the component.
 This can either be the fully qualified  name or just the interface class name 
if the interface is either in the same package or is imported.
-If this property is not set `provide` elements will be generated for all 
interfaces generated by the class --- *`serviceFactory`*  + _Default_: `false`  
+ _SCR Descriptor_: `service.servicefactory`  + Whether the component is 
registered as a `ServiceFactory` or not
+If this property is not set `provide` elements will be generated for all 
interfaces generated by the class 
+| *`serviceFactory`*  | `false`  | `service.servicefactory`  | Whether the 
component is registered as a `ServiceFactory` or not
+|===
 
 Omitting the `Service` annotation will just define (and activate if required) 
the component but not register it as a service.
 Multiple `Service` annotations may be declared each with its own `value`.
-These annotations need to be wrapped into a `Services` anotation.
+These annotations need to be wrapped into a `Services` annotation.
 The component is registered as a `ServiceFactory` if at least on `Service` 
annotations declares the `serviceFactory` attribute as `true`.
 
 == @Property
@@ -109,43 +118,45 @@ See section 112.4.5, Properties and Property Elements, in 
the OSGi Service Platf
 
 Supported attributes:
 
-'''
-
-*`name`*  + _Default_: The name of constant  + _SCR Descriptor_: 
`property.name`  + _Metatype Descriptor_: `AD.id`  + The name of the property.
+[%header,cols="2a,2a,2a,2a,3a"]
+|===
+| Property | Default | SCR Descriptor | Metatype Descriptor | Description
+| *`name`*  |  The name of constant  |  `property.name`  |  `AD.id`  | The 
name of the property.
 If this tag is defined on a field with an initialization expression, the value 
of that expression is used as the name if the field is of type `String`.
---- *`value`*  + _Default_: --  + _SCR Descriptor_: `property.value`  + 
_Metatype Descriptor_: `AD.default`  + The string value of the property.
+| *`value`*  |   |  `property.value`  |  `AD.default`  | The string value of 
the property.
 This can either be a single value or an array.
---- *`longValue`*  + _Default_: --  + _SCR Descriptor_: `property.value`  + 
_Metatype Descriptor_: `AD.default`  + The long value of the property.
+| *`longValue`*  |   |  `property.value`  |  `AD.default`  | The long value of 
the property.
 This can either be a single value or an array.
---- *`doubleValue`*  + _Default_: --  + _SCR Descriptor_: `property.value`  + 
_Metatype Descriptor_: `AD.default`  + The double value of the property.
+| *`doubleValue`*  |   |  `property.value`  |  `AD.default`  | The double 
value of the property.
 This can either be a single value or an array.
---- *`floatValue`*  + _Default_: --  + _SCR Descriptor_: `property.value`  + 
_Metatype Descriptor_: `AD.default`  + The float value of the property.
+| *`floatValue`*  |   |  `property.value`  |  `AD.default`  | The float value 
of the property.
 This can either be a single value or an array.
---- *`intValue`*  + _Default_: --  + _SCR Descriptor_: `property.value`  + 
_Metatype Descriptor_: `AD.default`  + The int value of the property.
+| *`intValue`*  |   |  `property.value`  |  `AD.default`  | The int value of 
the property.
 This can either be a single value or an array.
---- *`byteValue`*  + _Default_: --  + _SCR Descriptor_: `property.value`  + 
_Metatype Descriptor_: `AD.default`  + The byte value of the property.
+| *`byteValue`*  |   |  `property.value`  |  `AD.default`  | The byte value of 
the property.
 This can either be a single value or an array.
---- *`charValue`*  + _Default_: --  + _SCR Descriptor_: `property.value`  + 
_Metatype Descriptor_: `AD.default`  + The char value of the property.
+| *`charValue`*  |   |  `property.value`  |  `AD.default`  | The char value of 
the property.
 This can either be a single value or an array.
---- *`boolValue`*  + _Default_: --  + _SCR Descriptor_: `property.value`  + 
_Metatype Descriptor_: `AD.default`  + The boolean value of the property.
+| *`boolValue`*  |   |  `property.value`  |  `AD.default`  | The boolean value 
of the property.
 This can either be a single value or an array.
---- *`shortValue`*  + _Default_: --  + _SCR Descriptor_: `property.value`  + 
_Metatype Descriptor_: `AD.default`  + The short value of the property.
+| *`shortValue`*  |   |  `property.value`  |  `AD.default`  | The short value 
of the property.
 This can either be a single value or an array.
---- *`label`*  + _Default_: `%<name>.name`  + _SCR Descriptor_: --  + 
_Metatype Descriptor_: `AD.name`  + The label to display in a form to configure 
this property.
+| *`label`*  |  `%<name>.name`  |   |  `AD.name`  | The label to display in a 
form to configure this property.
 This name may be localized by prepending a `%` sign to the name.
---- *`description`*  + _Default_: `%<name>.description`  + _SCR Descriptor_: 
--  + _Metatype Descriptor_: `AD.description`  + A descriptive text to provide 
the client in a form to configure this property.
+| *`description`*  |  `%<name>.description`  |   |  `AD.description`  | A 
descriptive text to provide the client in a form to configure this property.
 This name may be localized by prepending a `%` sign to the name.
---- *`propertyPrivate`*  + _Default_: Depending on the name  + _SCR 
Descriptor_: --  + _Metatype Descriptor_: See description Boolean flag defining 
whether a metatype descriptor entry should be generated for this property or 
not.
+| *`propertyPrivate`*  |  Depending on the name  |   |   | See description 
Boolean flag defining whether a metatype descriptor entry should be generated 
for this property or not.
 By default a metatype descriptor entry, i.e.
 an `AD` element, is generated except for the properties `service.pid`, 
`service.description`, `service.id`, `service.ranking`, `service.vendor`, 
`service.bundlelocation` and `service.factoryPid`.
 If a property should not be available for display in a configuration user 
interface, this parameter should be set to `true`.
---- *`cardinality`*  + _Default_: Depends on property value(s)  + _SCR 
Descriptor_: --  + _Metatype Descriptor_: `AD.cardinality`  + Defines the 
cardinality of the property and its collection type.
-If the cardinality is negative, the property is expected to be stored in a 
`java.util.Vector` (primitive types such as `boolean` are boxed in the Wrapper 
class), if the cardinality is positive, the property is stored in an array 
(primitve types are unboxed, that is `Boolean` type values are stored in 
`boolean\[\]({{ refs..path }})`).
+| *`cardinality`*  |  Depends on property value(s)  |   |  `AD.cardinality`  | 
Defines the cardinality of the property and its collection type.
+If the cardinality is negative, the property is expected to be stored in a 
`java.util.Vector` (primitive types such as `boolean` are boxed in the Wrapper 
class), if the cardinality is positive, the property is stored in an array 
(primitve types are unboxed, that is `Boolean` type values are stored in 
`boolean`).
 The actual value defines the maximum number of elements in the vector or 
array, where `Integer.MIN*INT` describes an unbounded Vector and 
`Integer.MAX*INT` describes an unbounded array.
 If the cardinality is zero, the property is a scalar value.
 If the defined value of the property is set in the `value` attribute, the 
cardinality defaults to `0` (zero for scalar value).
 If the property is defined in one or more properties starting with `values`, 
the cardinality defaults to `Integer.MAX_INT`, that is an unbounded array.
---- *`options`*  + _Default_: --  + _SCR Descriptor_: --  + _Metatype 
Descriptor_: <<the-options-attribute,See below>>  + See below for a description 
of the `options` attribute.
+| *`options`*  |   |   |  <<_the_options_attribute,See below>>  | See below 
for a description of the `options` attribute.
+|===
 
 Generating `<properties>` elements referring to bundle entries is not 
currently supported.
 
@@ -199,10 +210,10 @@ Generally the value of a property is scalar, that is a 
property has a single val
 Such scalar values are defined with the different `value` attributes of the 
`Property` annotation.
 In the case of a scalar property value, the `cardinality` parameter value is 
assumed to be `0` (zero) unless of course set otherwise.
 
-There may be properties, which have a list of values, such as a list of 
possible URL mappings for an URL Mapper.
+There may be properties, which have a list of values, such as a list of 
possible URL mappings for a URL Mapper.
 Such multiple values are defined just by comma separate as the value of the 
annotation parameter.
 
-If the cardinality of the property is not explicilty set with the 
`cardinality` property, it defaults to `Integer.MAX_INT`, i.e.
+If the cardinality of the property is not explicitly set with the 
`cardinality` property, it defaults to `Integer.MAX_INT`, i.e.
 unbound array, if multiple values are defined.
 Otherwise the `cardinality` parameter may be set for example to a negative 
value to store the values in a `java.util.Vector` instead.
 
@@ -218,22 +229,31 @@ See section 112.4.7, Reference Element, in the OSGi 
Service Platform Service Com
 
 Supported parameters:
 
-'''
-
-*`name`*  + _Default_: Name of the field  + _SCR Descriptor_: `reference.name` 
 + The local name of the reference.
+[%header,cols="2a,2a,2a,3a"]
+|===
+| Property | Default | SCR Descriptor | Description
+| *`name`*  | Name of the field  | `reference.name`  | The local name of the 
reference.
 If the `Reference` annotation is declared in the class comment, this parameter 
is required.
-If the annotation is declared on a field, the default value for the `name` 
parameter is the name of the field --- *`interfaceReference`*  + _Default_: 
Type of the field  + _SCR Descriptor_: `reference.interface`  + The name of the 
service interface.
+If the annotation is declared on a field, the default value for the `name` 
parameter is the name of the field
+| *`interfaceReference`*  | Type of the field  | `reference.interface`  | The 
name of the service interface.
 This name is used by the Service Component Runtime to access the service on 
behalf of the component.
 If the `Reference` annotation is declared on a class level, this parameter is 
required.
-If the annoation is declared on a field, the default value for the 
`interfaceReference` parameter is the type of the field --- *`cardinality`*  + 
_Default_: `1..1`  + _SCR Descriptor_: `reference.cardinality`  + The 
cardinality of the service reference.
-This must be one of value from the enumeration `ReferenceCardinality` --- 
*`policy`*  + _Default_: `static`  + _SCR Descriptor_: `reference.policy`  + 
The dynamicity policy of the reference.
+If the annoation is declared on a field, the default value for the 
`interfaceReference` parameter is the type of the field
+| *`cardinality`*  | `1..1`  | `reference.cardinality`  | The cardinality of 
the service reference.
+This must be one of value from the enumeration `ReferenceCardinality`
+| *`policy`*  | `static`  | `reference.policy`  | The dynamicity policy of the 
reference.
 If `dynamic` the service will be made available to the component as it comes 
and goes.
 If `static` the component will be deactivated and re-activated if the service 
comes and/or goes away.
-This must be one of `static` and `dynamic` --- *`target`*  + _Default_: --  + 
_SCR Descriptor_: `reference.target`  + A service target filter to select 
specific services to be made available.
+This must be one of `static` and `dynamic`
+| *`target`*  |  | `reference.target`  | A service target filter to select 
specific services to be made available.
 In order to be able to overwrite the value of this value by a configuration 
property, this parameter must be declared.
-If the parameter is not declared, the respective declaration attribute will 
not be generated --- *`bind`*  + _Default_: See description  + _SCR 
Descriptor_: `reference.bind`  + The name of the method to be called when the 
service is to be bound to the component.
+If the parameter is not declared, the respective declaration attribute will 
not be generated
+| *`bind`*  | See description  | `reference.bind`  | The name of the method to 
be called when the service is to be bound to the component.
 The default value is the name created by appending the reference `name` to the 
string `bind`.
-The method must be declared `public` or `protected` and take single argument 
which is declared with the service interface type --- *`unbind`*  + _Default_: 
See description  + _SCR Descriptor_: `reference.unbind`  + The name of the 
method to be called when the service is to be unbound from the component.
+The method must be declared `public` or `protected` and take single argument 
which is declared with the service interface type
+| *`unbind`*  | See description  | `reference.unbind`  | The name of the 
method to be called when the service is to be unbound from the component.
 The default value is the name created by appending the reference `name` to the 
string `unbind`.
-The method must be declared `public` or `protected` and take single argument 
which is declared with the service interface type --- *`strategy`*  + 
_Default_: `event`  + _SCR Descriptor_: `reference.strategy`  + The strategy 
used for this reference, one of `event` or `lookup`.
+The method must be declared `public` or `protected` and take single argument 
which is declared with the service interface type
+| *`strategy`*  | `event`  | `reference.strategy`  | The strategy used for 
this reference, one of `event` or `lookup`.
 If the reference is defined on a field with a strategy of `event` and there is 
no bind or unbind method, the plugin will create the necessary methods.
+|===
\ No newline at end of file
diff --git 
a/modules/ROOT/pages/subprojects/apache-felix-maven-scr-plugin/scr-javadoc-tags.adoc
 
b/modules/ROOT/pages/subprojects/apache-felix-maven-scr-plugin/scr-javadoc-tags.adoc
index 7fed954..ff66af5 100644
--- 
a/modules/ROOT/pages/subprojects/apache-felix-maven-scr-plugin/scr-javadoc-tags.adoc
+++ 
b/modules/ROOT/pages/subprojects/apache-felix-maven-scr-plugin/scr-javadoc-tags.adoc
@@ -5,10 +5,10 @@ This page exists to define the support for JavaDoc tags upto 
Maven SCR Plugin ve
 
 The `scr` goal of the `maven-scr-plugin` looks for the following JavaDoc tags 
when building component descriptors:
 
-* <<scrcomponent,scr.component>>
-* <<scrproperty,scr.property>>
-* <<scrservice,scr.service>>
-* <<scrreference,scr.reference>>
+* <<_scr_component,scr.component>>
+* <<_scr_property,scr.property>>
+* <<_scr_service,scr.service>>
+* <<_scr_reference,scr.reference>>
 
 == scr.component
 
@@ -232,7 +232,7 @@ If a property should not be available for display in a 
configuration user interf
 | --
 | `AD.cardinality`
 | Defines the cardinality of the property and its collection type.
-If the cardinality is negative, the property is expected to be stored in a 
`java.util.Vector` (primitive types such as `boolean` are boxed in the Wrapper 
class), if the cardinality is positive, the property is stored in an array 
(primitve types are unboxed, that is `Boolean` type values are stored in 
`boolean\[\]({{ refs..path }})`).
+If the cardinality is negative, the property is expected to be stored in a 
`java.util.Vector` (primitive types such as `boolean` are boxed in the Wrapper 
class), if the cardinality is positive, the property is stored in an array 
(primitve types are unboxed, that is `Boolean` type values are stored in 
`boolean`).
 The actual value defines the maximum number of elements in the vector or 
array, where `Integer.MIN*INT` describes an unbounded Vector and 
`Integer.MAX*INT` describes an unbounded array.
 If the cardinality is zero, the property is a scalar value.
 If the defined value of the property is set in the `value` attribute, the 
cardinality defaults to `0` (zero for scalar value).
@@ -309,7 +309,7 @@ There may be properties, which have a list of values, such 
as a list of possible
 Such multiple values are defined in one more parameters whose name starts with 
`values`.
 Each parameter must of course have a unique name which is not in any except to 
differentiate the parameters.
 
-If the cardinality of the property is not explicilty set with the 
`cardinality` property, it defaults to `Integer.MAX_INT`, i.e.
+If the cardinality of the property is not explicitly set with the 
`cardinality` property, it defaults to `Integer.MAX_INT`, i.e.
 unbound array, if multiple values with a series of `values` parameters are 
defined.
 Otherwise the `cardinality` parameter may be set for example to a negative 
value to store the values in a `java.util.Vector` instead.
 
diff --git 
a/modules/ROOT/pages/subprojects/apache-felix-web-console/extending-the-apache-felix-web-console.adoc
 
b/modules/ROOT/pages/subprojects/apache-felix-web-console/extending-the-apache-felix-web-console.adoc
index a9916b3..4e3a45c 100644
--- 
a/modules/ROOT/pages/subprojects/apache-felix-web-console/extending-the-apache-felix-web-console.adoc
+++ 
b/modules/ROOT/pages/subprojects/apache-felix-web-console/extending-the-apache-felix-web-console.adoc
@@ -7,4 +7,4 @@ The xref:subprojects/apache-felix-web-console.adoc[Apache Felix 
Web Console] is
 * 
xref:subprojects/apache-felix-web-console/extending-the-apache-felix-web-console/branding-the-web-console.adoc[Branding
 the Web Console]
 * 
xref:subprojects/apache-felix-web-console/extending-the-apache-felix-web-console/web-console-output-templating.adoc[Web
 Console Output Templating]
 * 
xref:subprojects/apache-felix-web-console/extending-the-apache-felix-web-console/web-console-logging.adoc[Web
 Console Logging]
-* 
xref:subprojects/apache-felix-web-console/extending-the-apache-felix-web-console/web-console-security-provider.adoc[Web
 Console Security Provider]
+* 
xref:subprojects/apache-felix-web-console/web-console-security-provider.adoc[Web
 Console Security Provider]

Reply via email to