Remove generated Doxygen docs from git
diff --git a/static/docs/2.2.1/html/README_8md.html b/static/docs/2.2.1/html/README_8md.html
deleted file mode 100755
index 1c003d7..0000000
--- a/static/docs/2.2.1/html/README_8md.html
+++ /dev/null
@@ -1,78 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>Celix: README.md File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/searchdata.js"></script>
-<script type="text/javascript" src="search/search.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">Celix
-   &#160;<span id="projectnumber">2.2.1</span>
-   </div>
-   <div id="projectbrief">An implementation of the OSGi specification adapted to C and C++</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.18 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
-     onmouseover="return searchBox.OnSearchSelectShow()"
-     onmouseout="return searchBox.OnSearchSelectHide()"
-     onkeydown="return searchBox.OnSearchSelectKey(event)">
-</div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-</div><!-- top -->
-<div class="header">
-  <div class="headertitle">
-<div class="title">README.md File Reference</div>  </div>
-</div><!--header-->
-<div class="contents">
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.18
-</small></address>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/annotated.html b/static/docs/2.2.1/html/annotated.html
deleted file mode 100755
index 2631a9a..0000000
--- a/static/docs/2.2.1/html/annotated.html
+++ /dev/null
@@ -1,93 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>Celix: Class List</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/searchdata.js"></script>
-<script type="text/javascript" src="search/search.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">Celix
-   &#160;<span id="projectnumber">2.2.1</span>
-   </div>
-   <div id="projectbrief">An implementation of the OSGi specification adapted to C and C++</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.18 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
-     onmouseover="return searchBox.OnSearchSelectShow()"
-     onmouseout="return searchBox.OnSearchSelectHide()"
-     onkeydown="return searchBox.OnSearchSelectKey(event)">
-</div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="header">
-  <div class="headertitle">
-<div class="title">Class List</div>  </div>
-</div><!--header-->
-<div class="contents">
-<div class="textblock">Here are the classes, structs, unions and interfaces with brief descriptions:</div><div class="directory">
-<table class="directory">
-<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structcelix__bundle__tracker__options.html" target="_self">celix_bundle_tracker_options</a></td><td class="desc"></td></tr>
-<tr id="row_1_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structcelix__dm__component__info__struct.html" target="_self">celix_dm_component_info_struct</a></td><td class="desc"></td></tr>
-<tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structcelix__dm__dependency__manager__info__struct.html" target="_self">celix_dm_dependency_manager_info_struct</a></td><td class="desc"></td></tr>
-<tr id="row_3_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structcelix__dm__interface__info__struct.html" target="_self">celix_dm_interface_info_struct</a></td><td class="desc"></td></tr>
-<tr id="row_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structcelix__dm__service__dependency__callback__options.html" target="_self">celix_dm_service_dependency_callback_options</a></td><td class="desc"></td></tr>
-<tr id="row_5_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structcelix__dm__service__dependency__info__struct.html" target="_self">celix_dm_service_dependency_info_struct</a></td><td class="desc"></td></tr>
-<tr id="row_6_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structcelix__service__filter__options.html" target="_self">celix_service_filter_options</a></td><td class="desc"></td></tr>
-<tr id="row_7_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structcelix__service__registration__options.html" target="_self">celix_service_registration_options</a></td><td class="desc"></td></tr>
-<tr id="row_8_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structcelix__service__tracker__info.html" target="_self">celix_service_tracker_info</a></td><td class="desc"></td></tr>
-<tr id="row_9_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structcelix__service__tracking__options.html" target="_self">celix_service_tracking_options</a></td><td class="desc"></td></tr>
-<tr id="row_10_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structcelix__service__use__options.html" target="_self">celix_service_use_options</a></td><td class="desc"></td></tr>
-</table>
-</div><!-- directory -->
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.18
-</small></address>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/bc_s.png b/static/docs/2.2.1/html/bc_s.png
deleted file mode 100755
index 224b29a..0000000
--- a/static/docs/2.2.1/html/bc_s.png
+++ /dev/null
Binary files differ
diff --git a/static/docs/2.2.1/html/bdwn.png b/static/docs/2.2.1/html/bdwn.png
deleted file mode 100755
index 940a0b9..0000000
--- a/static/docs/2.2.1/html/bdwn.png
+++ /dev/null
Binary files differ
diff --git a/static/docs/2.2.1/html/celix__api_8h.html b/static/docs/2.2.1/html/celix__api_8h.html
deleted file mode 100755
index 6bdf6f7..0000000
--- a/static/docs/2.2.1/html/celix__api_8h.html
+++ /dev/null
@@ -1,101 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>Celix: libs/framework/include/celix_api.h File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/searchdata.js"></script>
-<script type="text/javascript" src="search/search.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">Celix
-   &#160;<span id="projectnumber">2.2.1</span>
-   </div>
-   <div id="projectbrief">An implementation of the OSGi specification adapted to C and C++</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.18 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
-     onmouseover="return searchBox.OnSearchSelectShow()"
-     onmouseout="return searchBox.OnSearchSelectHide()"
-     onkeydown="return searchBox.OnSearchSelectKey(event)">
-</div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div id="nav-path" class="navpath">
-  <ul>
-<li class="navelem"><a class="el" href="dir_6719ab1f1f7655efc2fa43f7eb574fd1.html">libs</a></li><li class="navelem"><a class="el" href="dir_edbb2ffdc3e165978e68de3a46f2e8a0.html">framework</a></li><li class="navelem"><a class="el" href="dir_bc286dd6b945a73064974dfd7e40f558.html">include</a></li>  </ul>
-</div>
-</div><!-- top -->
-<div class="header">
-  <div class="headertitle">
-<div class="title">celix_api.h File Reference</div>  </div>
-</div><!--header-->
-<div class="contents">
-<div class="textblock"><code>#include &quot;properties.h&quot;</code><br />
-<code>#include &quot;array_list.h&quot;</code><br />
-<code>#include &quot;celix_constants.h&quot;</code><br />
-<code>#include &quot;bundle.h&quot;</code><br />
-<code>#include &quot;bundle_context.h&quot;</code><br />
-<code>#include &quot;framework.h&quot;</code><br />
-<code>#include &quot;celix_array_list.h&quot;</code><br />
-<code>#include &quot;celix_utils_api.h&quot;</code><br />
-<code>#include &quot;<a class="el" href="celix__bundle_8h_source.html">celix_bundle.h</a>&quot;</code><br />
-<code>#include &quot;<a class="el" href="celix__bundle__context_8h_source.html">celix_bundle_context.h</a>&quot;</code><br />
-<code>#include &quot;<a class="el" href="celix__framework_8h_source.html">celix_framework.h</a>&quot;</code><br />
-<code>#include &quot;celix_framework_factory.h&quot;</code><br />
-<code>#include &quot;celix_launcher.h&quot;</code><br />
-<code>#include &quot;celix_dependency_manager.h&quot;</code><br />
-<code>#include &quot;<a class="el" href="celix__dm__component_8h_source.html">celix_dm_component.h</a>&quot;</code><br />
-<code>#include &quot;dm_service_dependency.h&quot;</code><br />
-<code>#include &quot;<a class="el" href="celix__bundle__activator_8h_source.html">celix_bundle_activator.h</a>&quot;</code><br />
-</div>
-<p><a href="celix__api_8h_source.html">Go to the source code of this file.</a></p>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.18
-</small></address>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/celix__api_8h_source.html b/static/docs/2.2.1/html/celix__api_8h_source.html
deleted file mode 100755
index 65aca3e..0000000
--- a/static/docs/2.2.1/html/celix__api_8h_source.html
+++ /dev/null
@@ -1,140 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>Celix: libs/framework/include/celix_api.h Source File</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/searchdata.js"></script>
-<script type="text/javascript" src="search/search.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">Celix
-   &#160;<span id="projectnumber">2.2.1</span>
-   </div>
-   <div id="projectbrief">An implementation of the OSGi specification adapted to C and C++</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.18 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
-     onmouseover="return searchBox.OnSearchSelectShow()"
-     onmouseout="return searchBox.OnSearchSelectHide()"
-     onkeydown="return searchBox.OnSearchSelectKey(event)">
-</div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div id="nav-path" class="navpath">
-  <ul>
-<li class="navelem"><a class="el" href="dir_6719ab1f1f7655efc2fa43f7eb574fd1.html">libs</a></li><li class="navelem"><a class="el" href="dir_edbb2ffdc3e165978e68de3a46f2e8a0.html">framework</a></li><li class="navelem"><a class="el" href="dir_bc286dd6b945a73064974dfd7e40f558.html">include</a></li>  </ul>
-</div>
-</div><!-- top -->
-<div class="header">
-  <div class="headertitle">
-<div class="title">celix_api.h</div>  </div>
-</div><!--header-->
-<div class="contents">
-<a href="celix__api_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div>
-<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div>
-<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div>
-<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div>
-<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div>
-<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div>
-<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div>
-<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div>
-<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div>
-<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div>
-<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div>
-<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div>
-<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div>
-<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div>
-<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> *  KIND, either express or implied.  See the License for the</span></div>
-<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div>
-<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div>
-<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div>
-<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160; </div>
-<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef CELIX_CELIX_API_H_</span></div>
-<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define CELIX_CELIX_API_H_</span></div>
-<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160; </div>
-<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &quot;properties.h&quot;</span></div>
-<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#include &quot;array_list.h&quot;</span></div>
-<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#include &quot;celix_constants.h&quot;</span></div>
-<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="preprocessor">#include &quot;bundle.h&quot;</span></div>
-<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="preprocessor">#include &quot;bundle_context.h&quot;</span></div>
-<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="preprocessor">#include &quot;framework.h&quot;</span></div>
-<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160; </div>
-<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#include &quot;celix_properties.h&quot;</span></div>
-<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#include &quot;celix_array_list.h&quot;</span></div>
-<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="comment">//#include &quot;celix_constants.h&quot;</span></div>
-<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="preprocessor">#include &quot;celix_utils_api.h&quot;</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="celix__bundle_8h.html">celix_bundle.h</a>&quot;</span></div>
-<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="celix__bundle__context_8h.html">celix_bundle_context.h</a>&quot;</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160; </div>
-<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="celix__framework_8h.html">celix_framework.h</a>&quot;</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="preprocessor">#include &quot;celix_framework_factory.h&quot;</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="preprocessor">#include &quot;celix_launcher.h&quot;</span></div>
-<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160; </div>
-<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="preprocessor">#include &quot;celix_dependency_manager.h&quot;</span></div>
-<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="celix__dm__component_8h.html">celix_dm_component.h</a>&quot;</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="preprocessor">#include &quot;dm_service_dependency.h&quot;</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160; </div>
-<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="celix__bundle__activator_8h.html">celix_bundle_activator.h</a>&quot;</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;<span class="preprocessor">#include &quot;celix_framework_factory.h&quot;</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160; </div>
-<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;<span class="preprocessor">#include &quot;celix/dm/DependencyManager.h&quot;</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160; </div>
-<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160; </div>
-<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;<span class="preprocessor">#endif //CELIX_CELIX_API_H_</span></div>
-</div><!-- fragment --></div><!-- contents -->
-<div class="ttc" id="acelix__framework_8h_html"><div class="ttname"><a href="celix__framework_8h.html">celix_framework.h</a></div></div>
-<div class="ttc" id="acelix__dm__component_8h_html"><div class="ttname"><a href="celix__dm__component_8h.html">celix_dm_component.h</a></div></div>
-<div class="ttc" id="acelix__bundle__activator_8h_html"><div class="ttname"><a href="celix__bundle__activator_8h.html">celix_bundle_activator.h</a></div></div>
-<div class="ttc" id="acelix__bundle_8h_html"><div class="ttname"><a href="celix__bundle_8h.html">celix_bundle.h</a></div></div>
-<div class="ttc" id="acelix__bundle__context_8h_html"><div class="ttname"><a href="celix__bundle__context_8h.html">celix_bundle_context.h</a></div></div>
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.18
-</small></address>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/celix__bundle_8h.html b/static/docs/2.2.1/html/celix__bundle_8h.html
deleted file mode 100755
index f8eb515..0000000
--- a/static/docs/2.2.1/html/celix__bundle_8h.html
+++ /dev/null
@@ -1,245 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>Celix: libs/framework/include/celix_bundle.h File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/searchdata.js"></script>
-<script type="text/javascript" src="search/search.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">Celix
-   &#160;<span id="projectnumber">2.2.1</span>
-   </div>
-   <div id="projectbrief">An implementation of the OSGi specification adapted to C and C++</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.18 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
-     onmouseover="return searchBox.OnSearchSelectShow()"
-     onmouseout="return searchBox.OnSearchSelectHide()"
-     onkeydown="return searchBox.OnSearchSelectKey(event)">
-</div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div id="nav-path" class="navpath">
-  <ul>
-<li class="navelem"><a class="el" href="dir_6719ab1f1f7655efc2fa43f7eb574fd1.html">libs</a></li><li class="navelem"><a class="el" href="dir_edbb2ffdc3e165978e68de3a46f2e8a0.html">framework</a></li><li class="navelem"><a class="el" href="dir_bc286dd6b945a73064974dfd7e40f558.html">include</a></li>  </ul>
-</div>
-</div><!-- top -->
-<div class="header">
-  <div class="summary">
-<a href="#func-members">Functions</a>  </div>
-  <div class="headertitle">
-<div class="title">celix_bundle.h File Reference</div>  </div>
-</div><!--header-->
-<div class="contents">
-<div class="textblock"><code>#include &quot;celix_types.h&quot;</code><br />
-<code>#include &quot;bundle_state.h&quot;</code><br />
-</div><div class="textblock"><div class="dynheader">
-Include dependency graph for celix_bundle.h:</div>
-<div class="dyncontent">
-<div class="center"><img src="celix__bundle_8h__incl.png" border="0" usemap="#libs_2framework_2include_2celix__bundle_8h" alt=""/></div>
-<map name="libs_2framework_2include_2celix__bundle_8h" id="libs_2framework_2include_2celix__bundle_8h">
-<area shape="rect" title=" " alt="" coords="42,5,193,47"/>
-<area shape="rect" title=" " alt="" coords="5,95,104,121"/>
-<area shape="rect" title=" " alt="" coords="128,95,235,121"/>
-</map>
-</div>
-</div><div class="textblock"><div class="dynheader">
-This graph shows which files directly or indirectly include this file:</div>
-<div class="dyncontent">
-<div class="center"><img src="celix__bundle_8h__dep__incl.png" border="0" usemap="#libs_2framework_2include_2celix__bundle_8hdep" alt=""/></div>
-<map name="libs_2framework_2include_2celix__bundle_8hdep" id="libs_2framework_2include_2celix__bundle_8hdep">
-<area shape="rect" title=" " alt="" coords="5,5,156,47"/>
-<area shape="rect" href="celix__api_8h.html" title=" " alt="" coords="5,95,156,136"/>
-</map>
-</div>
-</div>
-<p><a href="celix__bundle_8h_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:a8a9b02c9438f05099ff2bde9fea8c3cd"><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__bundle_8h.html#a8a9b02c9438f05099ff2bde9fea8c3cd">celix_bundle_getId</a> (const celix_bundle_t *bnd)</td></tr>
-<tr class="separator:a8a9b02c9438f05099ff2bde9fea8c3cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a7106fcc7b06c0506dd7e1678ba024a35"><td class="memItemLeft" align="right" valign="top">celix_bundle_state_e&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__bundle_8h.html#a7106fcc7b06c0506dd7e1678ba024a35">celix_bundle_getState</a> (const celix_bundle_t *bnd)</td></tr>
-<tr class="separator:a7106fcc7b06c0506dd7e1678ba024a35"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a5cbe24596271fc91c79c8f42c8b92bc5"><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__bundle_8h.html#a5cbe24596271fc91c79c8f42c8b92bc5">celix_bundle_getEntry</a> (const celix_bundle_t *bnd, const char *path)</td></tr>
-<tr class="separator:a5cbe24596271fc91c79c8f42c8b92bc5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a5abd44b1259599d08f2312760fb32170"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__bundle_8h.html#a5abd44b1259599d08f2312760fb32170">celix_bundle_getGroup</a> (const celix_bundle_t *bnd)</td></tr>
-<tr class="separator:a5abd44b1259599d08f2312760fb32170"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a391c2aa2fdf3c8d0c65fc07a07bb7545"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__bundle_8h.html#a391c2aa2fdf3c8d0c65fc07a07bb7545">celix_bundle_getSymbolicName</a> (const celix_bundle_t *bnd)</td></tr>
-<tr class="separator:a391c2aa2fdf3c8d0c65fc07a07bb7545"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-<h2 class="groupheader">Function Documentation</h2>
-<a id="a5cbe24596271fc91c79c8f42c8b92bc5"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a5cbe24596271fc91c79c8f42c8b92bc5">&#9670;&nbsp;</a></span>celix_bundle_getEntry()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">char* celix_bundle_getEntry </td>
-          <td>(</td>
-          <td class="paramtype">const celix_bundle_t *&#160;</td>
-          <td class="paramname"><em>bnd</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const char *&#160;</td>
-          <td class="paramname"><em>path</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Returns a the use-able entry path for the provided relative path to a bundle resource.</p>
-<p>For example if there is a resource entry in the bundle at path 'META-INF/descriptors/foo.descriptor` this call will return a absolute or relative path to the extracted location of the bundle resource, e.g.: .cache/bundle5/version0.0/META-INF/descriptors/foo.descriptor</p>
-<p>The caller is responsible for freeing the returned path entry. </p><dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">bnd</td><td>The bundle </td></tr>
-  </table>
-  </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>A use-able path to the bundle resource entry of NULL if the entry is not found. </dd></dl>
-
-</div>
-</div>
-<a id="a5abd44b1259599d08f2312760fb32170"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a5abd44b1259599d08f2312760fb32170">&#9670;&nbsp;</a></span>celix_bundle_getGroup()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">const char* celix_bundle_getGroup </td>
-          <td>(</td>
-          <td class="paramtype">const celix_bundle_t *&#160;</td>
-          <td class="paramname"><em>bnd</em></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-</div>
-</div>
-<a id="a8a9b02c9438f05099ff2bde9fea8c3cd"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a8a9b02c9438f05099ff2bde9fea8c3cd">&#9670;&nbsp;</a></span>celix_bundle_getId()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">long celix_bundle_getId </td>
-          <td>(</td>
-          <td class="paramtype">const celix_bundle_t *&#160;</td>
-          <td class="paramname"><em>bnd</em></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Returns the bundle id. </p><dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">bnd</td><td>The bundle </td></tr>
-  </table>
-  </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>The bundle id or &lt; 0 if something went wrong. </dd></dl>
-
-</div>
-</div>
-<a id="a7106fcc7b06c0506dd7e1678ba024a35"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a7106fcc7b06c0506dd7e1678ba024a35">&#9670;&nbsp;</a></span>celix_bundle_getState()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">celix_bundle_state_e celix_bundle_getState </td>
-          <td>(</td>
-          <td class="paramtype">const celix_bundle_t *&#160;</td>
-          <td class="paramname"><em>bnd</em></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Returns the bundle state. </p><dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">bnd</td><td>The bundle </td></tr>
-  </table>
-  </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>The bundle state or OSGI_FRAMEWORK_BUNDLE_UNKNOWN if something went wrong. </dd></dl>
-
-</div>
-</div>
-<a id="a391c2aa2fdf3c8d0c65fc07a07bb7545"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a391c2aa2fdf3c8d0c65fc07a07bb7545">&#9670;&nbsp;</a></span>celix_bundle_getSymbolicName()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">const char* celix_bundle_getSymbolicName </td>
-          <td>(</td>
-          <td class="paramtype">const celix_bundle_t *&#160;</td>
-          <td class="paramname"><em>bnd</em></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-</div>
-</div>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.18
-</small></address>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/celix__bundle_8h__dep__incl.map b/static/docs/2.2.1/html/celix__bundle_8h__dep__incl.map
deleted file mode 100755
index 089c19d..0000000
--- a/static/docs/2.2.1/html/celix__bundle_8h__dep__incl.map
+++ /dev/null
@@ -1,4 +0,0 @@
-<map id="libs/framework/include/celix_bundle.h" name="libs/framework/include/celix_bundle.h">
-<area shape="rect" id="node1" title=" " alt="" coords="5,5,156,47"/>
-<area shape="rect" id="node2" href="$celix__api_8h.html" title=" " alt="" coords="5,95,156,136"/>
-</map>
diff --git a/static/docs/2.2.1/html/celix__bundle_8h__dep__incl.md5 b/static/docs/2.2.1/html/celix__bundle_8h__dep__incl.md5
deleted file mode 100755
index 440464e..0000000
--- a/static/docs/2.2.1/html/celix__bundle_8h__dep__incl.md5
+++ /dev/null
@@ -1 +0,0 @@
-e0feb6000157269d96295652c994311c
\ No newline at end of file
diff --git a/static/docs/2.2.1/html/celix__bundle_8h__dep__incl.png b/static/docs/2.2.1/html/celix__bundle_8h__dep__incl.png
deleted file mode 100755
index 91e9bb6..0000000
--- a/static/docs/2.2.1/html/celix__bundle_8h__dep__incl.png
+++ /dev/null
Binary files differ
diff --git a/static/docs/2.2.1/html/celix__bundle_8h__incl.map b/static/docs/2.2.1/html/celix__bundle_8h__incl.map
deleted file mode 100755
index c30fa43..0000000
--- a/static/docs/2.2.1/html/celix__bundle_8h__incl.map
+++ /dev/null
@@ -1,5 +0,0 @@
-<map id="libs/framework/include/celix_bundle.h" name="libs/framework/include/celix_bundle.h">
-<area shape="rect" id="node1" title=" " alt="" coords="42,5,193,47"/>
-<area shape="rect" id="node2" title=" " alt="" coords="5,95,104,121"/>
-<area shape="rect" id="node3" title=" " alt="" coords="128,95,235,121"/>
-</map>
diff --git a/static/docs/2.2.1/html/celix__bundle_8h__incl.md5 b/static/docs/2.2.1/html/celix__bundle_8h__incl.md5
deleted file mode 100755
index b1ca130..0000000
--- a/static/docs/2.2.1/html/celix__bundle_8h__incl.md5
+++ /dev/null
@@ -1 +0,0 @@
-3504c0e9c0780f0be0e965a9e07124c8
\ No newline at end of file
diff --git a/static/docs/2.2.1/html/celix__bundle_8h__incl.png b/static/docs/2.2.1/html/celix__bundle_8h__incl.png
deleted file mode 100755
index ead1581..0000000
--- a/static/docs/2.2.1/html/celix__bundle_8h__incl.png
+++ /dev/null
Binary files differ
diff --git a/static/docs/2.2.1/html/celix__bundle_8h_source.html b/static/docs/2.2.1/html/celix__bundle_8h_source.html
deleted file mode 100755
index b155bc0..0000000
--- a/static/docs/2.2.1/html/celix__bundle_8h_source.html
+++ /dev/null
@@ -1,132 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>Celix: libs/framework/include/celix_bundle.h Source File</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/searchdata.js"></script>
-<script type="text/javascript" src="search/search.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">Celix
-   &#160;<span id="projectnumber">2.2.1</span>
-   </div>
-   <div id="projectbrief">An implementation of the OSGi specification adapted to C and C++</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.18 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
-     onmouseover="return searchBox.OnSearchSelectShow()"
-     onmouseout="return searchBox.OnSearchSelectHide()"
-     onkeydown="return searchBox.OnSearchSelectKey(event)">
-</div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div id="nav-path" class="navpath">
-  <ul>
-<li class="navelem"><a class="el" href="dir_6719ab1f1f7655efc2fa43f7eb574fd1.html">libs</a></li><li class="navelem"><a class="el" href="dir_edbb2ffdc3e165978e68de3a46f2e8a0.html">framework</a></li><li class="navelem"><a class="el" href="dir_bc286dd6b945a73064974dfd7e40f558.html">include</a></li>  </ul>
-</div>
-</div><!-- top -->
-<div class="header">
-  <div class="headertitle">
-<div class="title">celix_bundle.h</div>  </div>
-</div><!--header-->
-<div class="contents">
-<a href="celix__bundle_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div>
-<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div>
-<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div>
-<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div>
-<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div>
-<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div>
-<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div>
-<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div>
-<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div>
-<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div>
-<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div>
-<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div>
-<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div>
-<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div>
-<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> *  KIND, either express or implied.  See the License for the</span></div>
-<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div>
-<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div>
-<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div>
-<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160; </div>
-<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#include &quot;celix_types.h&quot;</span></div>
-<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#include &quot;bundle_state.h&quot;</span></div>
-<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160; </div>
-<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#ifndef CELIX_BUNDLE_H_</span></div>
-<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#define CELIX_BUNDLE_H_</span></div>
-<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160; </div>
-<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
-<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160; </div>
-<div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="celix__bundle_8h.html#a8a9b02c9438f05099ff2bde9fea8c3cd">   35</a></span>&#160;<span class="keywordtype">long</span> <a class="code" href="celix__bundle_8h.html#a8a9b02c9438f05099ff2bde9fea8c3cd">celix_bundle_getId</a>(<span class="keyword">const</span> celix_bundle_t *bnd);</div>
-<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160; </div>
-<div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="celix__bundle_8h.html#a7106fcc7b06c0506dd7e1678ba024a35">   42</a></span>&#160;celix_bundle_state_e <a class="code" href="celix__bundle_8h.html#a7106fcc7b06c0506dd7e1678ba024a35">celix_bundle_getState</a>(<span class="keyword">const</span> celix_bundle_t *bnd);</div>
-<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160; </div>
-<div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="celix__bundle_8h.html#a5cbe24596271fc91c79c8f42c8b92bc5">   55</a></span>&#160;<span class="keywordtype">char</span>* <a class="code" href="celix__bundle_8h.html#a5cbe24596271fc91c79c8f42c8b92bc5">celix_bundle_getEntry</a>(<span class="keyword">const</span> celix_bundle_t* bnd, <span class="keyword">const</span> <span class="keywordtype">char</span> *path);</div>
-<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160; </div>
-<div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="celix__bundle_8h.html#a5abd44b1259599d08f2312760fb32170">   57</a></span>&#160;<span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="celix__bundle_8h.html#a5abd44b1259599d08f2312760fb32170">celix_bundle_getGroup</a>(<span class="keyword">const</span> celix_bundle_t *bnd);</div>
-<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160; </div>
-<div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="celix__bundle_8h.html#a391c2aa2fdf3c8d0c65fc07a07bb7545">   59</a></span>&#160;<span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="celix__bundle_8h.html#a391c2aa2fdf3c8d0c65fc07a07bb7545">celix_bundle_getSymbolicName</a>(<span class="keyword">const</span> celix_bundle_t *bnd);</div>
-<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160; </div>
-<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160; </div>
-<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;}</div>
-<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160; </div>
-<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* CELIX_BUNDLE_H_ */</span><span class="preprocessor"></span></div>
-</div><!-- fragment --></div><!-- contents -->
-<div class="ttc" id="acelix__bundle_8h_html_a5cbe24596271fc91c79c8f42c8b92bc5"><div class="ttname"><a href="celix__bundle_8h.html#a5cbe24596271fc91c79c8f42c8b92bc5">celix_bundle_getEntry</a></div><div class="ttdeci">char * celix_bundle_getEntry(const celix_bundle_t *bnd, const char *path)</div></div>
-<div class="ttc" id="acelix__bundle_8h_html_a7106fcc7b06c0506dd7e1678ba024a35"><div class="ttname"><a href="celix__bundle_8h.html#a7106fcc7b06c0506dd7e1678ba024a35">celix_bundle_getState</a></div><div class="ttdeci">celix_bundle_state_e celix_bundle_getState(const celix_bundle_t *bnd)</div></div>
-<div class="ttc" id="acelix__bundle_8h_html_a391c2aa2fdf3c8d0c65fc07a07bb7545"><div class="ttname"><a href="celix__bundle_8h.html#a391c2aa2fdf3c8d0c65fc07a07bb7545">celix_bundle_getSymbolicName</a></div><div class="ttdeci">const char * celix_bundle_getSymbolicName(const celix_bundle_t *bnd)</div></div>
-<div class="ttc" id="acelix__bundle_8h_html_a5abd44b1259599d08f2312760fb32170"><div class="ttname"><a href="celix__bundle_8h.html#a5abd44b1259599d08f2312760fb32170">celix_bundle_getGroup</a></div><div class="ttdeci">const char * celix_bundle_getGroup(const celix_bundle_t *bnd)</div></div>
-<div class="ttc" id="acelix__bundle_8h_html_a8a9b02c9438f05099ff2bde9fea8c3cd"><div class="ttname"><a href="celix__bundle_8h.html#a8a9b02c9438f05099ff2bde9fea8c3cd">celix_bundle_getId</a></div><div class="ttdeci">long celix_bundle_getId(const celix_bundle_t *bnd)</div></div>
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.18
-</small></address>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/celix__bundle__activator_8h.html b/static/docs/2.2.1/html/celix__bundle__activator_8h.html
deleted file mode 100755
index 7b8829a..0000000
--- a/static/docs/2.2.1/html/celix__bundle__activator_8h.html
+++ /dev/null
@@ -1,374 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>Celix: libs/framework/include/celix_bundle_activator.h File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/searchdata.js"></script>
-<script type="text/javascript" src="search/search.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">Celix
-   &#160;<span id="projectnumber">2.2.1</span>
-   </div>
-   <div id="projectbrief">An implementation of the OSGi specification adapted to C and C++</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.18 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
-     onmouseover="return searchBox.OnSearchSelectShow()"
-     onmouseout="return searchBox.OnSearchSelectHide()"
-     onkeydown="return searchBox.OnSearchSelectKey(event)">
-</div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div id="nav-path" class="navpath">
-  <ul>
-<li class="navelem"><a class="el" href="dir_6719ab1f1f7655efc2fa43f7eb574fd1.html">libs</a></li><li class="navelem"><a class="el" href="dir_edbb2ffdc3e165978e68de3a46f2e8a0.html">framework</a></li><li class="navelem"><a class="el" href="dir_bc286dd6b945a73064974dfd7e40f558.html">include</a></li>  </ul>
-</div>
-</div><!-- top -->
-<div class="header">
-  <div class="summary">
-<a href="#define-members">Macros</a> &#124;
-<a href="#func-members">Functions</a>  </div>
-  <div class="headertitle">
-<div class="title">celix_bundle_activator.h File Reference</div>  </div>
-</div><!--header-->
-<div class="contents">
-<div class="textblock"><code>#include &lt;stdlib.h&gt;</code><br />
-<code>#include &quot;<a class="el" href="celix__bundle__context_8h_source.html">celix_bundle_context.h</a>&quot;</code><br />
-</div><div class="textblock"><div class="dynheader">
-Include dependency graph for celix_bundle_activator.h:</div>
-<div class="dyncontent">
-<div class="center"><img src="celix__bundle__activator_8h__incl.png" border="0" usemap="#libs_2framework_2include_2celix__bundle__activator_8h" alt=""/></div>
-<map name="libs_2framework_2include_2celix__bundle__activator_8h" id="libs_2framework_2include_2celix__bundle__activator_8h">
-<area shape="rect" title=" " alt="" coords="220,5,385,47"/>
-<area shape="rect" title=" " alt="" coords="204,95,268,121"/>
-<area shape="rect" href="celix__bundle__context_8h.html" title=" " alt="" coords="292,95,447,121"/>
-<area shape="rect" title=" " alt="" coords="5,169,104,196"/>
-<area shape="rect" title=" " alt="" coords="128,169,283,196"/>
-<area shape="rect" title=" " alt="" coords="307,169,431,196"/>
-<area shape="rect" title=" " alt="" coords="456,169,576,196"/>
-<area shape="rect" title=" " alt="" coords="600,169,691,196"/>
-</map>
-</div>
-</div><div class="textblock"><div class="dynheader">
-This graph shows which files directly or indirectly include this file:</div>
-<div class="dyncontent">
-<div class="center"><img src="celix__bundle__activator_8h__dep__incl.png" border="0" usemap="#libs_2framework_2include_2celix__bundle__activator_8hdep" alt=""/></div>
-<map name="libs_2framework_2include_2celix__bundle__activator_8hdep" id="libs_2framework_2include_2celix__bundle__activator_8hdep">
-<area shape="rect" title=" " alt="" coords="5,5,171,47"/>
-<area shape="rect" href="celix__api_8h.html" title=" " alt="" coords="13,95,163,136"/>
-</map>
-</div>
-</div>
-<p><a href="celix__bundle__activator_8h_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
-Macros</h2></td></tr>
-<tr class="memitem:a47b446e557ecaff78dafa19ba3e340c2"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__bundle__activator_8h.html#a47b446e557ecaff78dafa19ba3e340c2">CELIX_GEN_BUNDLE_ACTIVATOR</a>(actType,  actStart,  actStop)</td></tr>
-<tr class="separator:a47b446e557ecaff78dafa19ba3e340c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:a57025ac322aecc8acfac832748c780e6"><td class="memItemLeft" align="right" valign="top">celix_status_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__bundle__activator_8h.html#a57025ac322aecc8acfac832748c780e6">celix_bundleActivator_create</a> (celix_bundle_context_t *ctx, void **userData)</td></tr>
-<tr class="separator:a57025ac322aecc8acfac832748c780e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a8ac12a9b8d321ee1c1feee5bf047b666"><td class="memItemLeft" align="right" valign="top">celix_status_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__bundle__activator_8h.html#a8ac12a9b8d321ee1c1feee5bf047b666">celix_bundleActivator_start</a> (void *userData, celix_bundle_context_t *ctx)</td></tr>
-<tr class="separator:a8ac12a9b8d321ee1c1feee5bf047b666"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ae650439680848e3e3f7fc71b9e4dd213"><td class="memItemLeft" align="right" valign="top">celix_status_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__bundle__activator_8h.html#ae650439680848e3e3f7fc71b9e4dd213">celix_bundleActivator_stop</a> (void *userData, celix_bundle_context_t *ctx)</td></tr>
-<tr class="separator:ae650439680848e3e3f7fc71b9e4dd213"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a8d7cd41a721060d28c6ce8d94f9f0ca9"><td class="memItemLeft" align="right" valign="top">celix_status_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__bundle__activator_8h.html#a8d7cd41a721060d28c6ce8d94f9f0ca9">celix_bundleActivator_destroy</a> (void *userData, celix_bundle_context_t *ctx)</td></tr>
-<tr class="separator:a8d7cd41a721060d28c6ce8d94f9f0ca9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-<h2 class="groupheader">Macro Definition Documentation</h2>
-<a id="a47b446e557ecaff78dafa19ba3e340c2"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a47b446e557ecaff78dafa19ba3e340c2">&#9670;&nbsp;</a></span>CELIX_GEN_BUNDLE_ACTIVATOR</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">#define CELIX_GEN_BUNDLE_ACTIVATOR</td>
-          <td>(</td>
-          <td class="paramtype">&#160;</td>
-          <td class="paramname">actType, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">&#160;</td>
-          <td class="paramname">actStart, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">&#160;</td>
-          <td class="paramname">actStop&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<b>Value:</b><div class="fragment"><div class="line">celix_status_t <a class="code" href="celix__bundle__activator_8h.html#a57025ac322aecc8acfac832748c780e6">celix_bundleActivator_create</a>(celix_bundle_context_t *ctx __attribute__((unused)), <span class="keywordtype">void</span> **userData) {    \</div>
-<div class="line">    celix_status_t status = CELIX_SUCCESS;                                                                             \</div>
-<div class="line">    actType *data = (actType*)calloc(1, <span class="keyword">sizeof</span>(*data));                                                                \</div>
-<div class="line">    if (data != NULL) {                                                                                                \</div>
-<div class="line">        *userData = data;                                                                                              \</div>
-<div class="line">    } <span class="keywordflow">else</span> {                                                                                                           \</div>
-<div class="line">        status = CELIX_ENOMEM;                                                                                         \</div>
-<div class="line">    }                                                                                                                  \</div>
-<div class="line">    return status;                                                                                                     \</div>
-<div class="line">}                                                                                                                      \</div>
-<div class="line">                                                                                                                       \</div>
-<div class="line">celix_status_t <a class="code" href="celix__bundle__activator_8h.html#a8ac12a9b8d321ee1c1feee5bf047b666">celix_bundleActivator_start</a>(<span class="keywordtype">void</span> *userData, celix_bundle_context_t *ctx) {                              \</div>
-<div class="line">    return actStart((actType*)userData, ctx);                                                                          \</div>
-<div class="line">}                                                                                                                      \</div>
-<div class="line">                                                                                                                       \</div>
-<div class="line">celix_status_t <a class="code" href="celix__bundle__activator_8h.html#ae650439680848e3e3f7fc71b9e4dd213">celix_bundleActivator_stop</a>(<span class="keywordtype">void</span> *userData, celix_bundle_context_t *ctx) {                               \</div>
-<div class="line">    return actStop((actType*)userData, ctx);                                                                           \</div>
-<div class="line">}                                                                                                                      \</div>
-<div class="line">                                                                                                                       \</div>
-<div class="line">celix_status_t <a class="code" href="celix__bundle__activator_8h.html#a8d7cd41a721060d28c6ce8d94f9f0ca9">celix_bundleActivator_destroy</a>(<span class="keywordtype">void</span> *userData, celix_bundle_context_t *ctx __attribute__((unused))) {    \</div>
-<div class="line">    free(userData);                                                                                                    \</div>
-<div class="line">    return CELIX_SUCCESS;                                                                                              \</div>
-<div class="line">}</div>
-</div><!-- fragment --><p>This macro generates the required bundle activator functions for C. This can be used to more type safe bundle activator entries.</p>
-<p>The macro will create the following bundle activator functions:</p><ul>
-<li>bundleActivator_create which allocates a pointer to the provided type.</li>
-<li>bundleActivator_start/stop which will call the respectively provided typed start/stop functions.</li>
-<li>bundleActivator_destroy will free the allocated for the provided type.</li>
-</ul>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">type</td><td>The activator type (e.g. 'struct shell_activator'). </td></tr>
-    <tr><td class="paramname">start</td><td>the activator actStart function with the following signature: celix_status_t (*)(&lt;actType&gt;*, celix_bundle_context_t*). </td></tr>
-    <tr><td class="paramname">stop</td><td>the activator actStop function with the following signature: celix_status_t (*)(&lt;actType&gt;*, celix_bundle_context_t*). </td></tr>
-  </table>
-  </dd>
-</dl>
-
-</div>
-</div>
-<h2 class="groupheader">Function Documentation</h2>
-<a id="a57025ac322aecc8acfac832748c780e6"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a57025ac322aecc8acfac832748c780e6">&#9670;&nbsp;</a></span>celix_bundleActivator_create()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">celix_status_t celix_bundleActivator_create </td>
-          <td>(</td>
-          <td class="paramtype">celix_bundle_context_t *&#160;</td>
-          <td class="paramname"><em>ctx</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">void **&#160;</td>
-          <td class="paramname"><em>userData</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Called when this bundle is started so the bundle can create an instance for its activator. The framework does not assume any type for the activator instance, this is implementation specific. The activator instance is handle as a void pointer by the framework, the implementation must cast it to the implementation specific type.</p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramdir"></td><td class="paramname">ctx</td><td>The execution context of the bundle being started. </td></tr>
-    <tr><td class="paramdir">[out]</td><td class="paramname">userData</td><td>A pointer to the specific activator instance used by this bundle.</td></tr>
-  </table>
-  </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Status code indication failure or success:<ul>
-<li>CELIX_SUCCESS when no errors are encountered.</li>
-<li>Any other status code will mark the bundle as stopped and the framework will remove this bundle's listeners, unregister all services, and release all services used by this bundle. </li>
-</ul>
-</dd></dl>
-
-</div>
-</div>
-<a id="a8d7cd41a721060d28c6ce8d94f9f0ca9"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a8d7cd41a721060d28c6ce8d94f9f0ca9">&#9670;&nbsp;</a></span>celix_bundleActivator_destroy()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">celix_status_t celix_bundleActivator_destroy </td>
-          <td>(</td>
-          <td class="paramtype">void *&#160;</td>
-          <td class="paramname"><em>userData</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">celix_bundle_context_t *&#160;</td>
-          <td class="paramname"><em>ctx</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Called when this bundle is stopped so the bundle can destroy the instance of its activator. In general, this method should undo the work that the <code>bundleActivator_create()</code> function initialized.</p>
-<p>This method must complete and return to its caller in a timely manner.</p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">userData</td><td>The activator instance to be used. </td></tr>
-    <tr><td class="paramname">ctx</td><td>The execution context of the bundle being stopped.</td></tr>
-  </table>
-  </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Status code indication failure or success:<ul>
-<li>CELIX_SUCCESS when no errors are encountered.</li>
-<li>Any other status code will mark the bundle as stopped and the framework will remove this bundle's listeners, unregister all services, and release all services used by this bundle. </li>
-</ul>
-</dd></dl>
-
-</div>
-</div>
-<a id="a8ac12a9b8d321ee1c1feee5bf047b666"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a8ac12a9b8d321ee1c1feee5bf047b666">&#9670;&nbsp;</a></span>celix_bundleActivator_start()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">celix_status_t celix_bundleActivator_start </td>
-          <td>(</td>
-          <td class="paramtype">void *&#160;</td>
-          <td class="paramname"><em>userData</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">celix_bundle_context_t *&#160;</td>
-          <td class="paramname"><em>ctx</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Called when this bundle is started so the Framework can perform the bundle-specific activities necessary to start this bundle. This method can be used to register services or to allocate any resources that this bundle needs.</p>
-<p>This method must complete and return to its caller in a timely manner.</p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">userData</td><td>The activator instance to be used. </td></tr>
-    <tr><td class="paramname">ctx</td><td>The execution context of the bundle being started.</td></tr>
-  </table>
-  </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Status code indication failure or success:<ul>
-<li>CELIX_SUCCESS when no errors are encountered.</li>
-<li>Any other status code will mark the bundle as stopped and the framework will remove this bundle's listeners, unregister all services, and release all services used by this bundle. </li>
-</ul>
-</dd></dl>
-
-</div>
-</div>
-<a id="ae650439680848e3e3f7fc71b9e4dd213"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ae650439680848e3e3f7fc71b9e4dd213">&#9670;&nbsp;</a></span>celix_bundleActivator_stop()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">celix_status_t celix_bundleActivator_stop </td>
-          <td>(</td>
-          <td class="paramtype">void *&#160;</td>
-          <td class="paramname"><em>userData</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">celix_bundle_context_t *&#160;</td>
-          <td class="paramname"><em>ctx</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Called when this bundle is stopped so the Framework can perform the bundle-specific activities necessary to stop the bundle. In general, this method should undo the work that the <code>bundleActivator_start()</code> function started. There should be no active threads that were started by this bundle when this bundle returns. A stopped bundle must not call any Framework objects.</p>
-<p>This method must complete and return to its caller in a timely manner.</p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">userData</td><td>The activator instance to be used. </td></tr>
-    <tr><td class="paramname">ctx</td><td>The execution context of the bundle being stopped.</td></tr>
-  </table>
-  </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Status code indication failure or success:<ul>
-<li>CELIX_SUCCESS when no errors are encountered.</li>
-<li>Any other status code will mark the bundle as stopped and the framework will remove this bundle's listeners, unregister all services, and release all services used by this bundle. </li>
-</ul>
-</dd></dl>
-
-</div>
-</div>
-</div><!-- contents -->
-<div class="ttc" id="acelix__bundle__activator_8h_html_ae650439680848e3e3f7fc71b9e4dd213"><div class="ttname"><a href="celix__bundle__activator_8h.html#ae650439680848e3e3f7fc71b9e4dd213">celix_bundleActivator_stop</a></div><div class="ttdeci">celix_status_t celix_bundleActivator_stop(void *userData, celix_bundle_context_t *ctx)</div></div>
-<div class="ttc" id="acelix__bundle__activator_8h_html_a57025ac322aecc8acfac832748c780e6"><div class="ttname"><a href="celix__bundle__activator_8h.html#a57025ac322aecc8acfac832748c780e6">celix_bundleActivator_create</a></div><div class="ttdeci">celix_status_t celix_bundleActivator_create(celix_bundle_context_t *ctx, void **userData)</div></div>
-<div class="ttc" id="acelix__bundle__activator_8h_html_a8ac12a9b8d321ee1c1feee5bf047b666"><div class="ttname"><a href="celix__bundle__activator_8h.html#a8ac12a9b8d321ee1c1feee5bf047b666">celix_bundleActivator_start</a></div><div class="ttdeci">celix_status_t celix_bundleActivator_start(void *userData, celix_bundle_context_t *ctx)</div></div>
-<div class="ttc" id="acelix__bundle__activator_8h_html_a8d7cd41a721060d28c6ce8d94f9f0ca9"><div class="ttname"><a href="celix__bundle__activator_8h.html#a8d7cd41a721060d28c6ce8d94f9f0ca9">celix_bundleActivator_destroy</a></div><div class="ttdeci">celix_status_t celix_bundleActivator_destroy(void *userData, celix_bundle_context_t *ctx)</div></div>
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.18
-</small></address>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/celix__bundle__activator_8h__dep__incl.map b/static/docs/2.2.1/html/celix__bundle__activator_8h__dep__incl.map
deleted file mode 100755
index 9e90c44..0000000
--- a/static/docs/2.2.1/html/celix__bundle__activator_8h__dep__incl.map
+++ /dev/null
@@ -1,4 +0,0 @@
-<map id="libs/framework/include/celix_bundle_activator.h" name="libs/framework/include/celix_bundle_activator.h">
-<area shape="rect" id="node1" title=" " alt="" coords="5,5,171,47"/>
-<area shape="rect" id="node2" href="$celix__api_8h.html" title=" " alt="" coords="13,95,163,136"/>
-</map>
diff --git a/static/docs/2.2.1/html/celix__bundle__activator_8h__dep__incl.md5 b/static/docs/2.2.1/html/celix__bundle__activator_8h__dep__incl.md5
deleted file mode 100755
index cf608bf..0000000
--- a/static/docs/2.2.1/html/celix__bundle__activator_8h__dep__incl.md5
+++ /dev/null
@@ -1 +0,0 @@
-a0f7f0156b56f55e7192cb94bd6b09ec
\ No newline at end of file
diff --git a/static/docs/2.2.1/html/celix__bundle__activator_8h__dep__incl.png b/static/docs/2.2.1/html/celix__bundle__activator_8h__dep__incl.png
deleted file mode 100755
index ad53d62..0000000
--- a/static/docs/2.2.1/html/celix__bundle__activator_8h__dep__incl.png
+++ /dev/null
Binary files differ
diff --git a/static/docs/2.2.1/html/celix__bundle__activator_8h__incl.map b/static/docs/2.2.1/html/celix__bundle__activator_8h__incl.map
deleted file mode 100755
index 83784cf..0000000
--- a/static/docs/2.2.1/html/celix__bundle__activator_8h__incl.map
+++ /dev/null
@@ -1,10 +0,0 @@
-<map id="libs/framework/include/celix_bundle_activator.h" name="libs/framework/include/celix_bundle_activator.h">
-<area shape="rect" id="node1" title=" " alt="" coords="220,5,385,47"/>
-<area shape="rect" id="node2" title=" " alt="" coords="204,95,268,121"/>
-<area shape="rect" id="node3" href="$celix__bundle__context_8h.html" title=" " alt="" coords="292,95,447,121"/>
-<area shape="rect" id="node4" title=" " alt="" coords="5,169,104,196"/>
-<area shape="rect" id="node5" title=" " alt="" coords="128,169,283,196"/>
-<area shape="rect" id="node6" title=" " alt="" coords="307,169,431,196"/>
-<area shape="rect" id="node7" title=" " alt="" coords="456,169,576,196"/>
-<area shape="rect" id="node8" title=" " alt="" coords="600,169,691,196"/>
-</map>
diff --git a/static/docs/2.2.1/html/celix__bundle__activator_8h__incl.md5 b/static/docs/2.2.1/html/celix__bundle__activator_8h__incl.md5
deleted file mode 100755
index 1cc02f7..0000000
--- a/static/docs/2.2.1/html/celix__bundle__activator_8h__incl.md5
+++ /dev/null
@@ -1 +0,0 @@
-d7c71beb342aa11da9afca630fef1759
\ No newline at end of file
diff --git a/static/docs/2.2.1/html/celix__bundle__activator_8h__incl.png b/static/docs/2.2.1/html/celix__bundle__activator_8h__incl.png
deleted file mode 100755
index f0816fa..0000000
--- a/static/docs/2.2.1/html/celix__bundle__activator_8h__incl.png
+++ /dev/null
Binary files differ
diff --git a/static/docs/2.2.1/html/celix__bundle__activator_8h_source.html b/static/docs/2.2.1/html/celix__bundle__activator_8h_source.html
deleted file mode 100755
index d61d6be..0000000
--- a/static/docs/2.2.1/html/celix__bundle__activator_8h_source.html
+++ /dev/null
@@ -1,216 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>Celix: libs/framework/include/celix_bundle_activator.h Source File</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/searchdata.js"></script>
-<script type="text/javascript" src="search/search.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">Celix
-   &#160;<span id="projectnumber">2.2.1</span>
-   </div>
-   <div id="projectbrief">An implementation of the OSGi specification adapted to C and C++</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.18 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
-     onmouseover="return searchBox.OnSearchSelectShow()"
-     onmouseout="return searchBox.OnSearchSelectHide()"
-     onkeydown="return searchBox.OnSearchSelectKey(event)">
-</div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div id="nav-path" class="navpath">
-  <ul>
-<li class="navelem"><a class="el" href="dir_6719ab1f1f7655efc2fa43f7eb574fd1.html">libs</a></li><li class="navelem"><a class="el" href="dir_edbb2ffdc3e165978e68de3a46f2e8a0.html">framework</a></li><li class="navelem"><a class="el" href="dir_bc286dd6b945a73064974dfd7e40f558.html">include</a></li>  </ul>
-</div>
-</div><!-- top -->
-<div class="header">
-  <div class="headertitle">
-<div class="title">celix_bundle_activator.h</div>  </div>
-</div><!--header-->
-<div class="contents">
-<a href="celix__bundle__activator_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div>
-<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div>
-<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div>
-<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div>
-<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div>
-<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div>
-<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div>
-<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div>
-<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div>
-<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div>
-<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div>
-<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div>
-<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div>
-<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div>
-<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> *  KIND, either express or implied.  See the License for the</span></div>
-<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div>
-<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div>
-<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div>
-<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160; </div>
-<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#include &lt;stdlib.h&gt;</span></div>
-<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160; </div>
-<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="celix__bundle__context_8h.html">celix_bundle_context.h</a>&quot;</span></div>
-<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160; </div>
-<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#ifndef CELIX_BUNDLE_ACTIVATOR_H_</span></div>
-<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#define CELIX_BUNDLE_ACTIVATOR_H_</span></div>
-<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160; </div>
-<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
-<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160; </div>
-<div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="celix__bundle__activator_8h.html#a57025ac322aecc8acfac832748c780e6">   45</a></span>&#160;celix_status_t <a class="code" href="celix__bundle__activator_8h.html#a57025ac322aecc8acfac832748c780e6">celix_bundleActivator_create</a>(celix_bundle_context_t *ctx, <span class="keywordtype">void</span> **userData);</div>
-<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160; </div>
-<div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="celix__bundle__activator_8h.html#a8ac12a9b8d321ee1c1feee5bf047b666">   63</a></span>&#160;celix_status_t <a class="code" href="celix__bundle__activator_8h.html#a8ac12a9b8d321ee1c1feee5bf047b666">celix_bundleActivator_start</a>(<span class="keywordtype">void</span> *userData, celix_bundle_context_t *ctx);</div>
-<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160; </div>
-<div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="celix__bundle__activator_8h.html#ae650439680848e3e3f7fc71b9e4dd213">   82</a></span>&#160;celix_status_t <a class="code" href="celix__bundle__activator_8h.html#ae650439680848e3e3f7fc71b9e4dd213">celix_bundleActivator_stop</a>(<span class="keywordtype">void</span> *userData, celix_bundle_context_t *ctx);</div>
-<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160; </div>
-<div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="celix__bundle__activator_8h.html#a8d7cd41a721060d28c6ce8d94f9f0ca9">   99</a></span>&#160;celix_status_t <a class="code" href="celix__bundle__activator_8h.html#a8d7cd41a721060d28c6ce8d94f9f0ca9">celix_bundleActivator_destroy</a>(<span class="keywordtype">void</span> *userData, celix_bundle_context_t* ctx);</div>
-<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160; </div>
-<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160; </div>
-<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;<span class="preprocessor">#define CELIX_GEN_BUNDLE_ACTIVATOR(actType, actStart, actStop)                                                         \</span></div>
-<div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="celix__bundle__activator_8h.html#a47b446e557ecaff78dafa19ba3e340c2">  116</a></span>&#160;<span class="preprocessor">celix_status_t celix_bundleActivator_create(celix_bundle_context_t *ctx __attribute__((unused)), void **userData) {    \</span></div>
-<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;<span class="preprocessor">    celix_status_t status = CELIX_SUCCESS;                                                                             \</span></div>
-<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;<span class="preprocessor">    actType *data = (actType*)calloc(1, sizeof(*data));                                                                \</span></div>
-<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;<span class="preprocessor">    if (data != NULL) {                                                                                                \</span></div>
-<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;<span class="preprocessor">        *userData = data;                                                                                              \</span></div>
-<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;<span class="preprocessor">    } else {                                                                                                           \</span></div>
-<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;<span class="preprocessor">        status = CELIX_ENOMEM;                                                                                         \</span></div>
-<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;<span class="preprocessor">    }                                                                                                                  \</span></div>
-<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;<span class="preprocessor">    return status;                                                                                                     \</span></div>
-<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;<span class="preprocessor">}                                                                                                                      \</span></div>
-<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;<span class="preprocessor">                                                                                                                       \</span></div>
-<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;<span class="preprocessor">celix_status_t celix_bundleActivator_start(void *userData, celix_bundle_context_t *ctx) {                              \</span></div>
-<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;<span class="preprocessor">    return actStart((actType*)userData, ctx);                                                                          \</span></div>
-<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;<span class="preprocessor">}                                                                                                                      \</span></div>
-<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;<span class="preprocessor">                                                                                                                       \</span></div>
-<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;<span class="preprocessor">celix_status_t celix_bundleActivator_stop(void *userData, celix_bundle_context_t *ctx) {                               \</span></div>
-<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;<span class="preprocessor">    return actStop((actType*)userData, ctx);                                                                           \</span></div>
-<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;<span class="preprocessor">}                                                                                                                      \</span></div>
-<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;<span class="preprocessor">                                                                                                                       \</span></div>
-<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;<span class="preprocessor">celix_status_t celix_bundleActivator_destroy(void *userData, celix_bundle_context_t *ctx __attribute__((unused))) {    \</span></div>
-<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;<span class="preprocessor">    free(userData);                                                                                                    \</span></div>
-<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;<span class="preprocessor">    return CELIX_SUCCESS;                                                                                              \</span></div>
-<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;<span class="preprocessor">}</span></div>
-<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160; </div>
-<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;}</div>
-<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160; </div>
-<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160; </div>
-<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;<span class="preprocessor">#define CELIX_GEN_CXX_BUNDLE_ACTIVATOR(actType)                                                                        \</span></div>
-<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;<span class="preprocessor">                                                                                                                       \</span></div>
-<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;<span class="preprocessor">namespace </span><span class="comment">/*anon*/</span><span class="preprocessor"> {                                                                                                   \</span></div>
-<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;<span class="preprocessor">struct BundleActivatorData {                                                                                           \</span></div>
-<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;<span class="preprocessor">    std::shared_ptr&lt;DependencyManager&gt; mng{};                                                                          \</span></div>
-<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;<span class="preprocessor">    std::unique_ptr&lt;actType&gt; activator{};                                                                              \</span></div>
-<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;<span class="preprocessor">};                                                                                                                     \</span></div>
-<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;<span class="preprocessor">}                                                                                                                      \</span></div>
-<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;<span class="preprocessor">                                                                                                                       \</span></div>
-<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;<span class="preprocessor">extern &quot;C&quot; celix_status_t bundleActivator_create(celix_bundle_context_t *context, void** userData) {                   \</span></div>
-<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;<span class="preprocessor">    int status = CELIX_SUCCESS;                                                                                        \</span></div>
-<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;<span class="preprocessor">                                                                                                                       \</span></div>
-<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;<span class="preprocessor">    BundleActivatorData* data = nullptr;                                                                               \</span></div>
-<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;<span class="preprocessor">    data = new BundleActivatorData{};                                                                                  \</span></div>
-<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;<span class="preprocessor">    if (data != nullptr) {                                                                                             \</span></div>
-<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;<span class="preprocessor">        data-&gt;mng = std::shared_ptr&lt;celix::dm::DependencyManager&gt;{new celix::dm::DependencyManager{context}};          \</span></div>
-<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;<span class="preprocessor">    }                                                                                                                  \</span></div>
-<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;<span class="preprocessor">                                                                                                                       \</span></div>
-<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;<span class="preprocessor">    if (data == nullptr || data-&gt;mng == nullptr) {                                                                     \</span></div>
-<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;<span class="preprocessor">        status = CELIX_ENOMEM;                                                                                         \</span></div>
-<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;<span class="preprocessor">        if (data != nullptr) {                                                                                         \</span></div>
-<div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;<span class="preprocessor">            delete data;                                                                                               \</span></div>
-<div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;<span class="preprocessor">        }                                                                                                              \</span></div>
-<div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;<span class="preprocessor">        *userData = nullptr;                                                                                           \</span></div>
-<div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;<span class="preprocessor">    } else {                                                                                                           \</span></div>
-<div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;<span class="preprocessor">        *userData = data;                                                                                              \</span></div>
-<div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;<span class="preprocessor">    }                                                                                                                  \</span></div>
-<div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;<span class="preprocessor">    return status;                                                                                                     \</span></div>
-<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;<span class="preprocessor">}                                                                                                                      \</span></div>
-<div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;<span class="preprocessor">                                                                                                                       \</span></div>
-<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;<span class="preprocessor">extern &quot;C&quot; celix_status_t bundleActivator_start(void *userData, celix_bundle_context_t *) {                            \</span></div>
-<div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;<span class="preprocessor">    auto* data = static_cast&lt;BundleActivatorData*&gt;(userData);                                                          \</span></div>
-<div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;<span class="preprocessor">    if (data != nullptr) {                                                                                             \</span></div>
-<div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;<span class="preprocessor">        data-&gt;activator = std::unique_ptr&lt;actType&gt;{new actType{data-&gt;mng}};                                            \</span></div>
-<div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;<span class="preprocessor">        data-&gt;mng-&gt;start();                                                                                            \</span></div>
-<div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;<span class="preprocessor">    }                                                                                                                  \</span></div>
-<div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;<span class="preprocessor">    return CELIX_SUCCESS;                                                                                              \</span></div>
-<div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;<span class="preprocessor">}                                                                                                                      \</span></div>
-<div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;<span class="preprocessor">                                                                                                                       \</span></div>
-<div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;<span class="preprocessor">extern &quot;C&quot; celix_status_t bundleActivator_stop(void *userData, celix_bundle_context_t*) {                              \</span></div>
-<div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;<span class="preprocessor">    auto* data = static_cast&lt;BundleActivatorData*&gt;(userData);                                                          \</span></div>
-<div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;<span class="preprocessor">    if (data != nullptr) {                                                                                             \</span></div>
-<div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;<span class="preprocessor">        data-&gt;mng-&gt;stop();                                                                                             \</span></div>
-<div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;<span class="preprocessor">        data-&gt;activator = nullptr;                                                                                     \</span></div>
-<div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;<span class="preprocessor">        data-&gt;mng = nullptr;                                                                                           \</span></div>
-<div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;<span class="preprocessor">    }                                                                                                                  \</span></div>
-<div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;<span class="preprocessor">    return CELIX_SUCCESS;                                                                                              \</span></div>
-<div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;<span class="preprocessor">}                                                                                                                      \</span></div>
-<div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;<span class="preprocessor">                                                                                                                       \</span></div>
-<div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;<span class="preprocessor">extern &quot;C&quot; celix_status_t bundleActivator_destroy(void *userData, celix_bundle_context_t*) {                           \</span></div>
-<div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;<span class="preprocessor">    auto* data = static_cast&lt;BundleActivatorData*&gt;(userData);                                                          \</span></div>
-<div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;<span class="preprocessor">    if (data != nullptr) {                                                                                             \</span></div>
-<div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;<span class="preprocessor">        delete data;                                                                                                   \</span></div>
-<div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;<span class="preprocessor">    }                                                                                                                  \</span></div>
-<div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;<span class="preprocessor">    return CELIX_SUCCESS;                                                                                              \</span></div>
-<div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;<span class="preprocessor">}                                                                                                                      \</span></div>
-<div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;<span class="preprocessor"></span> </div>
-<div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160; </div>
-<div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160; </div>
-<div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* CELIX_BUNDLE_ACTIVATOR_H_ */</span><span class="preprocessor"></span></div>
-</div><!-- fragment --></div><!-- contents -->
-<div class="ttc" id="acelix__bundle__activator_8h_html_ae650439680848e3e3f7fc71b9e4dd213"><div class="ttname"><a href="celix__bundle__activator_8h.html#ae650439680848e3e3f7fc71b9e4dd213">celix_bundleActivator_stop</a></div><div class="ttdeci">celix_status_t celix_bundleActivator_stop(void *userData, celix_bundle_context_t *ctx)</div></div>
-<div class="ttc" id="acelix__bundle__activator_8h_html_a57025ac322aecc8acfac832748c780e6"><div class="ttname"><a href="celix__bundle__activator_8h.html#a57025ac322aecc8acfac832748c780e6">celix_bundleActivator_create</a></div><div class="ttdeci">celix_status_t celix_bundleActivator_create(celix_bundle_context_t *ctx, void **userData)</div></div>
-<div class="ttc" id="acelix__bundle__activator_8h_html_a8ac12a9b8d321ee1c1feee5bf047b666"><div class="ttname"><a href="celix__bundle__activator_8h.html#a8ac12a9b8d321ee1c1feee5bf047b666">celix_bundleActivator_start</a></div><div class="ttdeci">celix_status_t celix_bundleActivator_start(void *userData, celix_bundle_context_t *ctx)</div></div>
-<div class="ttc" id="acelix__bundle__context_8h_html"><div class="ttname"><a href="celix__bundle__context_8h.html">celix_bundle_context.h</a></div></div>
-<div class="ttc" id="acelix__bundle__activator_8h_html_a8d7cd41a721060d28c6ce8d94f9f0ca9"><div class="ttname"><a href="celix__bundle__activator_8h.html#a8d7cd41a721060d28c6ce8d94f9f0ca9">celix_bundleActivator_destroy</a></div><div class="ttdeci">celix_status_t celix_bundleActivator_destroy(void *userData, celix_bundle_context_t *ctx)</div></div>
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.18
-</small></address>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/celix__bundle__context_8h.html b/static/docs/2.2.1/html/celix__bundle__context_8h.html
deleted file mode 100755
index d5f998a..0000000
--- a/static/docs/2.2.1/html/celix__bundle__context_8h.html
+++ /dev/null
@@ -1,1859 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>Celix: libs/framework/include/celix_bundle_context.h File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/searchdata.js"></script>
-<script type="text/javascript" src="search/search.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">Celix
-   &#160;<span id="projectnumber">2.2.1</span>
-   </div>
-   <div id="projectbrief">An implementation of the OSGi specification adapted to C and C++</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.18 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
-     onmouseover="return searchBox.OnSearchSelectShow()"
-     onmouseout="return searchBox.OnSearchSelectHide()"
-     onkeydown="return searchBox.OnSearchSelectKey(event)">
-</div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div id="nav-path" class="navpath">
-  <ul>
-<li class="navelem"><a class="el" href="dir_6719ab1f1f7655efc2fa43f7eb574fd1.html">libs</a></li><li class="navelem"><a class="el" href="dir_edbb2ffdc3e165978e68de3a46f2e8a0.html">framework</a></li><li class="navelem"><a class="el" href="dir_bc286dd6b945a73064974dfd7e40f558.html">include</a></li>  </ul>
-</div>
-</div><!-- top -->
-<div class="header">
-  <div class="summary">
-<a href="#nested-classes">Classes</a> &#124;
-<a href="#define-members">Macros</a> &#124;
-<a href="#typedef-members">Typedefs</a> &#124;
-<a href="#func-members">Functions</a>  </div>
-  <div class="headertitle">
-<div class="title">celix_bundle_context.h File Reference</div>  </div>
-</div><!--header-->
-<div class="contents">
-<div class="textblock"><code>#include &quot;celix_types.h&quot;</code><br />
-<code>#include &quot;celix_service_factory.h&quot;</code><br />
-<code>#include &quot;celix_properties.h&quot;</code><br />
-<code>#include &quot;celix_array_list.h&quot;</code><br />
-<code>#include &quot;celix_filter.h&quot;</code><br />
-</div><div class="textblock"><div class="dynheader">
-Include dependency graph for celix_bundle_context.h:</div>
-<div class="dyncontent">
-<div class="center"><img src="celix__bundle__context_8h__incl.png" border="0" usemap="#libs_2framework_2include_2celix__bundle__context_8h" alt=""/></div>
-<map name="libs_2framework_2include_2celix__bundle__context_8h" id="libs_2framework_2include_2celix__bundle__context_8h">
-<area shape="rect" title=" " alt="" coords="290,5,449,47"/>
-<area shape="rect" title=" " alt="" coords="5,95,104,121"/>
-<area shape="rect" title=" " alt="" coords="128,95,283,121"/>
-<area shape="rect" title=" " alt="" coords="307,95,431,121"/>
-<area shape="rect" title=" " alt="" coords="456,95,576,121"/>
-<area shape="rect" title=" " alt="" coords="600,95,691,121"/>
-</map>
-</div>
-</div><div class="textblock"><div class="dynheader">
-This graph shows which files directly or indirectly include this file:</div>
-<div class="dyncontent">
-<div class="center"><img src="celix__bundle__context_8h__dep__incl.png" border="0" usemap="#libs_2framework_2include_2celix__bundle__context_8hdep" alt=""/></div>
-<map name="libs_2framework_2include_2celix__bundle__context_8hdep" id="libs_2framework_2include_2celix__bundle__context_8hdep">
-<area shape="rect" title=" " alt="" coords="5,5,164,47"/>
-<area shape="rect" href="celix__api_8h.html" title=" " alt="" coords="9,184,160,225"/>
-<area shape="rect" href="celix__bundle__activator_8h.html" title=" " alt="" coords="62,95,227,136"/>
-</map>
-</div>
-</div>
-<p><a href="celix__bundle__context_8h_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
-Classes</h2></td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__service__registration__options.html">celix_service_registration_options</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__service__filter__options.html">celix_service_filter_options</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__service__tracking__options.html">celix_service_tracking_options</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__service__use__options.html">celix_service_use_options</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__bundle__tracker__options.html">celix_bundle_tracker_options</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__service__tracker__info.html">celix_service_tracker_info</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
-Macros</h2></td></tr>
-<tr class="memitem:a8ebbfbe80221fe8adc8c3afbdceb570f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__bundle__context_8h.html#a8ebbfbe80221fe8adc8c3afbdceb570f">OPTS_INIT</a></td></tr>
-<tr class="separator:a8ebbfbe80221fe8adc8c3afbdceb570f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a6020a7ba8712efd0847fdf28e74eb69c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__bundle__context_8h.html#a6020a7ba8712efd0847fdf28e74eb69c">CELIX_EMPTY_SERVICE_REGISTRATION_OPTIONS</a></td></tr>
-<tr class="separator:a6020a7ba8712efd0847fdf28e74eb69c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a7199f710ea1c193d361e8c151a92bc6a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__bundle__context_8h.html#a7199f710ea1c193d361e8c151a92bc6a">CELIX_EMPTY_SERVICE_FILTER_OPTIONS</a>&#160;&#160;&#160;{.serviceName = NULL, .versionRange = NULL, .filter = NULL, .serviceLanguage = NULL, .ignoreServiceLanguage = false}</td></tr>
-<tr class="separator:a7199f710ea1c193d361e8c151a92bc6a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ae86a28f8d19f6c1e2951172335e0e909"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__bundle__context_8h.html#ae86a28f8d19f6c1e2951172335e0e909">CELIX_EMPTY_SERVICE_TRACKING_OPTIONS</a></td></tr>
-<tr class="separator:ae86a28f8d19f6c1e2951172335e0e909"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a6024cf4864950551fa9df01806a69865"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__bundle__context_8h.html#a6024cf4864950551fa9df01806a69865">CELIX_EMPTY_SERVICE_USE_OPTIONS</a></td></tr>
-<tr class="separator:a6024cf4864950551fa9df01806a69865"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a3c68ea824e7268d26852785ea92c777c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__bundle__context_8h.html#a3c68ea824e7268d26852785ea92c777c">CELIX_EMPTY_BUNDLE_TRACKING_OPTIONS</a>&#160;&#160;&#160;{.callbackHandle = NULL, .onStarted = NULL, .onStopped = NULL, .onBundleEvent = NULL}</td></tr>
-<tr class="separator:a3c68ea824e7268d26852785ea92c777c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
-Typedefs</h2></td></tr>
-<tr class="memitem:aacaeb063a21a237ac515607d689eebb8"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structcelix__service__registration__options.html">celix_service_registration_options</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__bundle__context_8h.html#aacaeb063a21a237ac515607d689eebb8">celix_service_registration_options_t</a></td></tr>
-<tr class="separator:aacaeb063a21a237ac515607d689eebb8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a7eab80d54386fb32b91dd414846c2d45"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structcelix__service__filter__options.html">celix_service_filter_options</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__bundle__context_8h.html#a7eab80d54386fb32b91dd414846c2d45">celix_service_filter_options_t</a></td></tr>
-<tr class="separator:a7eab80d54386fb32b91dd414846c2d45"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a5c017c82bf57881c04f8c6f545b25a75"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structcelix__service__tracking__options.html">celix_service_tracking_options</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__bundle__context_8h.html#a5c017c82bf57881c04f8c6f545b25a75">celix_service_tracking_options_t</a></td></tr>
-<tr class="separator:a5c017c82bf57881c04f8c6f545b25a75"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ae2da28d23f5246c20c6b675b80e7d130"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structcelix__service__use__options.html">celix_service_use_options</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__bundle__context_8h.html#ae2da28d23f5246c20c6b675b80e7d130">celix_service_use_options_t</a></td></tr>
-<tr class="separator:ae2da28d23f5246c20c6b675b80e7d130"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a1b011b5fe49a718345698eeb359d0c3a"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structcelix__bundle__tracker__options.html">celix_bundle_tracker_options</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__bundle__context_8h.html#a1b011b5fe49a718345698eeb359d0c3a">celix_bundle_tracking_options_t</a></td></tr>
-<tr class="separator:a1b011b5fe49a718345698eeb359d0c3a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aea7e7fcd4022db2f9f4123dd3b7a794a"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structcelix__service__tracker__info.html">celix_service_tracker_info</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__bundle__context_8h.html#aea7e7fcd4022db2f9f4123dd3b7a794a">celix_service_tracker_info_t</a></td></tr>
-<tr class="separator:aea7e7fcd4022db2f9f4123dd3b7a794a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:a5bc54fd14871cc88ed887c8cea8f7b78"><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__bundle__context_8h.html#a5bc54fd14871cc88ed887c8cea8f7b78">celix_bundleContext_registerService</a> (celix_bundle_context_t *ctx, void *svc, const char *serviceName, celix_properties_t *properties)</td></tr>
-<tr class="separator:a5bc54fd14871cc88ed887c8cea8f7b78"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a3caa917285feaad580b61d4c0c8430a9"><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__bundle__context_8h.html#a3caa917285feaad580b61d4c0c8430a9">celix_bundleContext_registerServiceFactory</a> (celix_bundle_context_t *ctx, celix_service_factory_t *factory, const char *serviceName, celix_properties_t *props)</td></tr>
-<tr class="separator:a3caa917285feaad580b61d4c0c8430a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:abcde0edf5b4969bdd67831cff3db0a43"><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__bundle__context_8h.html#abcde0edf5b4969bdd67831cff3db0a43">celix_bundleContext_registerServiceWithOptions</a> (celix_bundle_context_t *ctx, const <a class="el" href="celix__bundle__context_8h.html#aacaeb063a21a237ac515607d689eebb8">celix_service_registration_options_t</a> *opts)</td></tr>
-<tr class="separator:abcde0edf5b4969bdd67831cff3db0a43"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a1ebd82cb3d61aab769956d856293b9b9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__bundle__context_8h.html#a1ebd82cb3d61aab769956d856293b9b9">celix_bundleContext_unregisterService</a> (celix_bundle_context_t *ctx, long serviceId)</td></tr>
-<tr class="separator:a1ebd82cb3d61aab769956d856293b9b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ac8322b5aa4adf9dcd8c288ce72a05414"><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__bundle__context_8h.html#ac8322b5aa4adf9dcd8c288ce72a05414">celix_bundleContext_findService</a> (celix_bundle_context_t *ctx, const char *serviceName)</td></tr>
-<tr class="separator:ac8322b5aa4adf9dcd8c288ce72a05414"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a96a901f0597f9d2accf073153d90344c"><td class="memItemLeft" align="right" valign="top">celix_array_list_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__bundle__context_8h.html#a96a901f0597f9d2accf073153d90344c">celix_bundleContext_findServices</a> (celix_bundle_context_t *ctx, const char *serviceName)</td></tr>
-<tr class="separator:a96a901f0597f9d2accf073153d90344c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a8cfbbb7e17cb4a825a525c547f72b4b0"><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__bundle__context_8h.html#a8cfbbb7e17cb4a825a525c547f72b4b0">celix_bundleContext_findServiceWithOptions</a> (celix_bundle_context_t *ctx, const <a class="el" href="celix__bundle__context_8h.html#a7eab80d54386fb32b91dd414846c2d45">celix_service_filter_options_t</a> *opts)</td></tr>
-<tr class="separator:a8cfbbb7e17cb4a825a525c547f72b4b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a41c34f8165addcbd0d65b4a0c23345d0"><td class="memItemLeft" align="right" valign="top">celix_array_list_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__bundle__context_8h.html#a41c34f8165addcbd0d65b4a0c23345d0">celix_bundleContext_findServicesWithOptions</a> (celix_bundle_context_t *ctx, const <a class="el" href="celix__bundle__context_8h.html#a7eab80d54386fb32b91dd414846c2d45">celix_service_filter_options_t</a> *opts)</td></tr>
-<tr class="separator:a41c34f8165addcbd0d65b4a0c23345d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a612409acf5453dbc370d93b784153d51"><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__bundle__context_8h.html#a612409acf5453dbc370d93b784153d51">celix_bundleContext_trackService</a> (celix_bundle_context_t *ctx, const char *serviceName, void *callbackHandle, void(*set)(void *handle, void *svc))</td></tr>
-<tr class="separator:a612409acf5453dbc370d93b784153d51"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a43e3bfd38ef956ffe861065e698a72e4"><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__bundle__context_8h.html#a43e3bfd38ef956ffe861065e698a72e4">celix_bundleContext_trackServices</a> (celix_bundle_context_t *ctx, const char *serviceName, void *callbackHandle, void(*add)(void *handle, void *svc), void(*remove)(void *handle, void *svc))</td></tr>
-<tr class="separator:a43e3bfd38ef956ffe861065e698a72e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a27980e1631d4575cc45c6c6ba38c6f71"><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__bundle__context_8h.html#a27980e1631d4575cc45c6c6ba38c6f71">celix_bundleContext_trackServicesWithOptions</a> (celix_bundle_context_t *ctx, const <a class="el" href="celix__bundle__context_8h.html#a5c017c82bf57881c04f8c6f545b25a75">celix_service_tracking_options_t</a> *opts)</td></tr>
-<tr class="separator:a27980e1631d4575cc45c6c6ba38c6f71"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a3b4906a9e6fb34fe3ca5118539a81fc7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__bundle__context_8h.html#a3b4906a9e6fb34fe3ca5118539a81fc7">celix_bundleContext_stopTracker</a> (celix_bundle_context_t *ctx, long trackerId)</td></tr>
-<tr class="separator:a3b4906a9e6fb34fe3ca5118539a81fc7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aec6e03faece0f8247de19d8c1527406d"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__bundle__context_8h.html#aec6e03faece0f8247de19d8c1527406d">celix_bundleContext_useServiceWithId</a> (celix_bundle_context_t *ctx, long serviceId, const char *serviceName, void *callbackHandle, void(*use)(void *handle, void *svc))</td></tr>
-<tr class="separator:aec6e03faece0f8247de19d8c1527406d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ac36cdb8a06bb34f9371d7bb32953c69e"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__bundle__context_8h.html#ac36cdb8a06bb34f9371d7bb32953c69e">celix_bundleContext_useService</a> (celix_bundle_context_t *ctx, const char *serviceName, void *callbackHandle, void(*use)(void *handle, void *svc))</td></tr>
-<tr class="separator:ac36cdb8a06bb34f9371d7bb32953c69e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a39270507a3766afbfcc9420c7270d262"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__bundle__context_8h.html#a39270507a3766afbfcc9420c7270d262">celix_bundleContext_useServices</a> (celix_bundle_context_t *ctx, const char *serviceName, void *callbackHandle, void(*use)(void *handle, void *svc))</td></tr>
-<tr class="separator:a39270507a3766afbfcc9420c7270d262"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a1e8a78de5f799d303231385b51085055"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__bundle__context_8h.html#a1e8a78de5f799d303231385b51085055">celix_bundleContext_useServiceWithOptions</a> (celix_bundle_context_t *ctx, const <a class="el" href="celix__bundle__context_8h.html#ae2da28d23f5246c20c6b675b80e7d130">celix_service_use_options_t</a> *opts)</td></tr>
-<tr class="separator:a1e8a78de5f799d303231385b51085055"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ad1512520baedecad54a7bc307e0a6c7b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__bundle__context_8h.html#ad1512520baedecad54a7bc307e0a6c7b">celix_bundleContext_useServicesWithOptions</a> (celix_bundle_context_t *ctx, const <a class="el" href="celix__bundle__context_8h.html#ae2da28d23f5246c20c6b675b80e7d130">celix_service_use_options_t</a> *opts)</td></tr>
-<tr class="separator:ad1512520baedecad54a7bc307e0a6c7b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:afde9ed40231b5c3bbba19559e68e77f6"><td class="memItemLeft" align="right" valign="top">celix_array_list_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__bundle__context_8h.html#afde9ed40231b5c3bbba19559e68e77f6">celix_bundleContext_listBundles</a> (celix_bundle_context_t *ctx)</td></tr>
-<tr class="separator:afde9ed40231b5c3bbba19559e68e77f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ac7151f08ded1d7571867a44abe9f3531"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__bundle__context_8h.html#ac7151f08ded1d7571867a44abe9f3531">celix_bundleContext_isBundleInstalled</a> (celix_bundle_context_t *ctx, long bndId)</td></tr>
-<tr class="separator:ac7151f08ded1d7571867a44abe9f3531"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a727ee2600c19ce2fd42b3b80b695c7f6"><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__bundle__context_8h.html#a727ee2600c19ce2fd42b3b80b695c7f6">celix_bundleContext_installBundle</a> (celix_bundle_context_t *ctx, const char *bundleLoc, bool autoStart)</td></tr>
-<tr class="separator:a727ee2600c19ce2fd42b3b80b695c7f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a098adf1e9f65deb166110008bd4314dd"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__bundle__context_8h.html#a098adf1e9f65deb166110008bd4314dd">celix_bundleContext_uninstallBundle</a> (celix_bundle_context_t *ctx, long bundleId)</td></tr>
-<tr class="separator:a098adf1e9f65deb166110008bd4314dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ad6e1553f9507d04c7a0ad91d067d479b"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__bundle__context_8h.html#ad6e1553f9507d04c7a0ad91d067d479b">celix_bundleContext_stopBundle</a> (celix_bundle_context_t *ctx, long bundleId)</td></tr>
-<tr class="separator:ad6e1553f9507d04c7a0ad91d067d479b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a8df4bfbc27c99736c0209ef130cff98f"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__bundle__context_8h.html#a8df4bfbc27c99736c0209ef130cff98f">celix_bundleContext_startBundle</a> (celix_bundle_context_t *ctx, long bundleId)</td></tr>
-<tr class="separator:a8df4bfbc27c99736c0209ef130cff98f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a3daf88ae43bb01e104f506c3a2dc8351"><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__bundle__context_8h.html#a3daf88ae43bb01e104f506c3a2dc8351">celix_bundleContext_trackBundles</a> (celix_bundle_context_t *ctx, void *callbackHandle, void(*onStarted)(void *handle, const celix_bundle_t *bundle), void(*onStopped)(void *handle, const celix_bundle_t *bundle))</td></tr>
-<tr class="separator:a3daf88ae43bb01e104f506c3a2dc8351"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aa603acb136351b4135ce6a8c0b1fda71"><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__bundle__context_8h.html#aa603acb136351b4135ce6a8c0b1fda71">celix_bundleContext_trackBundlesWithOptions</a> (celix_bundle_context_t *ctx, const <a class="el" href="celix__bundle__context_8h.html#a1b011b5fe49a718345698eeb359d0c3a">celix_bundle_tracking_options_t</a> *opts)</td></tr>
-<tr class="separator:aa603acb136351b4135ce6a8c0b1fda71"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:abb3cedf5ffa7a326cef2af64a1094635"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__bundle__context_8h.html#abb3cedf5ffa7a326cef2af64a1094635">celix_bundleContext_useBundle</a> (celix_bundle_context_t *ctx, long bundleId, void *callbackHandle, void(*use)(void *handle, const celix_bundle_t *bundle))</td></tr>
-<tr class="separator:abb3cedf5ffa7a326cef2af64a1094635"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a03a6d1c49c91c212ad7be115e1035840"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__bundle__context_8h.html#a03a6d1c49c91c212ad7be115e1035840">celix_bundleContext_useBundles</a> (celix_bundle_context_t *ctx, void *callbackHandle, void(*use)(void *handle, const celix_bundle_t *bundle))</td></tr>
-<tr class="separator:a03a6d1c49c91c212ad7be115e1035840"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a80f61dd38b9da8447cd4f931779eaf16"><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__bundle__context_8h.html#a80f61dd38b9da8447cd4f931779eaf16">celix_bundleContext_trackServiceTrackers</a> (celix_bundle_context_t *ctx, const char *serviceName, void *callbackHandle, void(*trackerAdd)(void *handle, const <a class="el" href="celix__bundle__context_8h.html#aea7e7fcd4022db2f9f4123dd3b7a794a">celix_service_tracker_info_t</a> *info), void(*trackerRemove)(void *handle, const <a class="el" href="celix__bundle__context_8h.html#aea7e7fcd4022db2f9f4123dd3b7a794a">celix_service_tracker_info_t</a> *info))</td></tr>
-<tr class="separator:a80f61dd38b9da8447cd4f931779eaf16"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ac36566dcc477bb2c123e5124527090c1"><td class="memItemLeft" align="right" valign="top">celix_dependency_manager_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__bundle__context_8h.html#ac36566dcc477bb2c123e5124527090c1">celix_bundleContext_getDependencyManager</a> (celix_bundle_context_t *ctx)</td></tr>
-<tr class="separator:ac36566dcc477bb2c123e5124527090c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a3f7f55d1587f421f27518574a525ff63"><td class="memItemLeft" align="right" valign="top">celix_bundle_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__bundle__context_8h.html#a3f7f55d1587f421f27518574a525ff63">celix_bundleContext_getBundle</a> (celix_bundle_context_t *ctx)</td></tr>
-<tr class="separator:a3f7f55d1587f421f27518574a525ff63"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aa121100c5f5d03c0ccdda9c87286f7db"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__bundle__context_8h.html#aa121100c5f5d03c0ccdda9c87286f7db">celix_bundleContext_getProperty</a> (celix_bundle_context_t *ctx, const char *key, const char *defaultVal)</td></tr>
-<tr class="separator:aa121100c5f5d03c0ccdda9c87286f7db"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a0ea27b2a81018583a464a10932cfae62"><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__bundle__context_8h.html#a0ea27b2a81018583a464a10932cfae62">celix_bundleContext_getPropertyAsLong</a> (celix_bundle_context_t *ctx, const char *key, long defaultValue)</td></tr>
-<tr class="separator:a0ea27b2a81018583a464a10932cfae62"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a92be7dd7985a890c4b92bcb8497e8b9f"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__bundle__context_8h.html#a92be7dd7985a890c4b92bcb8497e8b9f">celix_bundleContext_getPropertyAsDouble</a> (celix_bundle_context_t *ctx, const char *key, double defaultValue)</td></tr>
-<tr class="separator:a92be7dd7985a890c4b92bcb8497e8b9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a41e6642ba1a739b5768911fa41e5d170"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__bundle__context_8h.html#a41e6642ba1a739b5768911fa41e5d170">celix_bundleContext_getPropertyAsBool</a> (celix_bundle_context_t *ctx, const char *key, bool defaultValue)</td></tr>
-<tr class="separator:a41e6642ba1a739b5768911fa41e5d170"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-<h2 class="groupheader">Macro Definition Documentation</h2>
-<a id="a3c68ea824e7268d26852785ea92c777c"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a3c68ea824e7268d26852785ea92c777c">&#9670;&nbsp;</a></span>CELIX_EMPTY_BUNDLE_TRACKING_OPTIONS</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">#define CELIX_EMPTY_BUNDLE_TRACKING_OPTIONS&#160;&#160;&#160;{.callbackHandle = NULL, .onStarted = NULL, .onStopped = NULL, .onBundleEvent = NULL}</td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>C Macro to create a empty celix_service_filter_options_t type. </p>
-
-</div>
-</div>
-<a id="a7199f710ea1c193d361e8c151a92bc6a"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a7199f710ea1c193d361e8c151a92bc6a">&#9670;&nbsp;</a></span>CELIX_EMPTY_SERVICE_FILTER_OPTIONS</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">#define CELIX_EMPTY_SERVICE_FILTER_OPTIONS&#160;&#160;&#160;{.serviceName = NULL, .versionRange = NULL, .filter = NULL, .serviceLanguage = NULL, .ignoreServiceLanguage = false}</td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>C Macro to create a empty celix_service_filter_options_t type. </p>
-
-</div>
-</div>
-<a id="a6020a7ba8712efd0847fdf28e74eb69c"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a6020a7ba8712efd0847fdf28e74eb69c">&#9670;&nbsp;</a></span>CELIX_EMPTY_SERVICE_REGISTRATION_OPTIONS</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">#define CELIX_EMPTY_SERVICE_REGISTRATION_OPTIONS</td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<b>Value:</b><div class="fragment"><div class="line">    { .svc = NULL, \</div>
-<div class="line">    .factory = NULL, \</div>
-<div class="line">    .serviceName = NULL, \</div>
-<div class="line">    .properties = NULL, \</div>
-<div class="line">    .serviceLanguage = NULL, \</div>
-<div class="line">    .serviceVersion = NULL }</div>
-</div><!-- fragment --><p>C Macro to create a empty celix_service_registration_options_t type. </p>
-
-</div>
-</div>
-<a id="ae86a28f8d19f6c1e2951172335e0e909"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ae86a28f8d19f6c1e2951172335e0e909">&#9670;&nbsp;</a></span>CELIX_EMPTY_SERVICE_TRACKING_OPTIONS</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">#define CELIX_EMPTY_SERVICE_TRACKING_OPTIONS</td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<b>Value:</b><div class="fragment"><div class="line">    { .filter.serviceName = NULL, \</div>
-<div class="line">    .filter.versionRange = NULL, \</div>
-<div class="line">    .filter.filter = NULL, \</div>
-<div class="line">    .filter.serviceLanguage = NULL, \</div>
-<div class="line">    .filter.ignoreServiceLanguage = <span class="keyword">false</span>, \</div>
-<div class="line">    .callbackHandle = NULL, \</div>
-<div class="line">    .set = NULL, \</div>
-<div class="line">    .add = NULL, \</div>
-<div class="line">    .remove = NULL, \</div>
-<div class="line">    .setWithProperties = NULL, \</div>
-<div class="line">    .addWithProperties = NULL, \</div>
-<div class="line">    .removeWithProperties = NULL, \</div>
-<div class="line">    .setWithOwner = NULL, \</div>
-<div class="line">    .addWithOwner = NULL, \</div>
-<div class="line">    .removeWithOwner = NULL}</div>
-</div><!-- fragment --><p>C Macro to create a empty celix_service_tracking_options_t type. </p>
-
-</div>
-</div>
-<a id="a6024cf4864950551fa9df01806a69865"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a6024cf4864950551fa9df01806a69865">&#9670;&nbsp;</a></span>CELIX_EMPTY_SERVICE_USE_OPTIONS</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">#define CELIX_EMPTY_SERVICE_USE_OPTIONS</td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<b>Value:</b><div class="fragment"><div class="line">    {.filter.serviceName = NULL, \</div>
-<div class="line">    .filter.versionRange = NULL, \</div>
-<div class="line">    .filter.filter = NULL, \</div>
-<div class="line">    .filter.serviceLanguage = NULL, \</div>
-<div class="line">    .waitTimeoutInSeconds = 0.0F, \</div>
-<div class="line">    .callbackHandle = NULL, \</div>
-<div class="line">    .use = NULL, \</div>
-<div class="line">    .useWithProperties = NULL, \</div>
-<div class="line">    .useWithOwner = NULL}</div>
-</div><!-- fragment --><p>C Macro to create a empty celix_service_use_options_t type. </p>
-
-</div>
-</div>
-<a id="a8ebbfbe80221fe8adc8c3afbdceb570f"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a8ebbfbe80221fe8adc8c3afbdceb570f">&#9670;&nbsp;</a></span>OPTS_INIT</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">#define OPTS_INIT</td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Init macro so that the opts are correctly initialized for C++ compilers </p>
-
-</div>
-</div>
-<h2 class="groupheader">Typedef Documentation</h2>
-<a id="a1b011b5fe49a718345698eeb359d0c3a"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a1b011b5fe49a718345698eeb359d0c3a">&#9670;&nbsp;</a></span>celix_bundle_tracking_options_t</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">typedef struct <a class="el" href="structcelix__bundle__tracker__options.html">celix_bundle_tracker_options</a> <a class="el" href="celix__bundle__context_8h.html#a1b011b5fe49a718345698eeb359d0c3a">celix_bundle_tracking_options_t</a></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>The Service Bundle Tracking options can be used to fine tune the requested bundle tracker options. </p>
-
-</div>
-</div>
-<a id="a7eab80d54386fb32b91dd414846c2d45"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a7eab80d54386fb32b91dd414846c2d45">&#9670;&nbsp;</a></span>celix_service_filter_options_t</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">typedef struct <a class="el" href="structcelix__service__filter__options.html">celix_service_filter_options</a> <a class="el" href="celix__bundle__context_8h.html#a7eab80d54386fb32b91dd414846c2d45">celix_service_filter_options_t</a></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Service filter options which can be used to query for certain services. </p>
-
-</div>
-</div>
-<a id="aacaeb063a21a237ac515607d689eebb8"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#aacaeb063a21a237ac515607d689eebb8">&#9670;&nbsp;</a></span>celix_service_registration_options_t</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">typedef struct <a class="el" href="structcelix__service__registration__options.html">celix_service_registration_options</a> <a class="el" href="celix__bundle__context_8h.html#aacaeb063a21a237ac515607d689eebb8">celix_service_registration_options_t</a></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Service Registration Options when registering services to the Celix framework. </p>
-
-</div>
-</div>
-<a id="aea7e7fcd4022db2f9f4123dd3b7a794a"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#aea7e7fcd4022db2f9f4123dd3b7a794a">&#9670;&nbsp;</a></span>celix_service_tracker_info_t</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">typedef struct <a class="el" href="structcelix__service__tracker__info.html">celix_service_tracker_info</a> <a class="el" href="celix__bundle__context_8h.html#aea7e7fcd4022db2f9f4123dd3b7a794a">celix_service_tracker_info_t</a></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Service Tracker Info provided to the service tracker tracker callbacks. </p>
-
-</div>
-</div>
-<a id="a5c017c82bf57881c04f8c6f545b25a75"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a5c017c82bf57881c04f8c6f545b25a75">&#9670;&nbsp;</a></span>celix_service_tracking_options_t</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">typedef struct <a class="el" href="structcelix__service__tracking__options.html">celix_service_tracking_options</a> <a class="el" href="celix__bundle__context_8h.html#a5c017c82bf57881c04f8c6f545b25a75">celix_service_tracking_options_t</a></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Service Tracker Options used to fine tune which services to track and the callback to be used for the tracked services. </p>
-
-</div>
-</div>
-<a id="ae2da28d23f5246c20c6b675b80e7d130"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ae2da28d23f5246c20c6b675b80e7d130">&#9670;&nbsp;</a></span>celix_service_use_options_t</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">typedef struct <a class="el" href="structcelix__service__use__options.html">celix_service_use_options</a> <a class="el" href="celix__bundle__context_8h.html#ae2da28d23f5246c20c6b675b80e7d130">celix_service_use_options_t</a></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Service Use Options used to fine tune which services to use and which callbacks to use. </p>
-
-</div>
-</div>
-<h2 class="groupheader">Function Documentation</h2>
-<a id="ac8322b5aa4adf9dcd8c288ce72a05414"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ac8322b5aa4adf9dcd8c288ce72a05414">&#9670;&nbsp;</a></span>celix_bundleContext_findService()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">long celix_bundleContext_findService </td>
-          <td>(</td>
-          <td class="paramtype">celix_bundle_context_t *&#160;</td>
-          <td class="paramname"><em>ctx</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const char *&#160;</td>
-          <td class="paramname"><em>serviceName</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Finds the highest ranking service and returns the service id.</p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">ctx</td><td>The bundle context </td></tr>
-    <tr><td class="paramname">serviceName</td><td>The required service name </td></tr>
-  </table>
-  </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>If found a valid service id (&gt;= 0) if not found -1. </dd></dl>
-
-</div>
-</div>
-<a id="a96a901f0597f9d2accf073153d90344c"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a96a901f0597f9d2accf073153d90344c">&#9670;&nbsp;</a></span>celix_bundleContext_findServices()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">celix_array_list_t* celix_bundleContext_findServices </td>
-          <td>(</td>
-          <td class="paramtype">celix_bundle_context_t *&#160;</td>
-          <td class="paramname"><em>ctx</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const char *&#160;</td>
-          <td class="paramname"><em>serviceName</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Finds the services with the provided service name and returns a list of the found service ids.</p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">ctx</td><td>The bundle context </td></tr>
-    <tr><td class="paramname">serviceName</td><td>The required service name </td></tr>
-  </table>
-  </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>A array list with as value a long int. </dd></dl>
-
-</div>
-</div>
-<a id="a41c34f8165addcbd0d65b4a0c23345d0"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a41c34f8165addcbd0d65b4a0c23345d0">&#9670;&nbsp;</a></span>celix_bundleContext_findServicesWithOptions()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">celix_array_list_t* celix_bundleContext_findServicesWithOptions </td>
-          <td>(</td>
-          <td class="paramtype">celix_bundle_context_t *&#160;</td>
-          <td class="paramname"><em>ctx</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const <a class="el" href="celix__bundle__context_8h.html#a7eab80d54386fb32b91dd414846c2d45">celix_service_filter_options_t</a> *&#160;</td>
-          <td class="paramname"><em>opts</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Finds the services conform the provider filter options and returns a list of the found service ids.</p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">ctx</td><td>The bundle context </td></tr>
-    <tr><td class="paramname">opts</td><td>The pointer to the filter options. </td></tr>
-  </table>
-  </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>A array list with as value a long int. </dd></dl>
-
-</div>
-</div>
-<a id="a8cfbbb7e17cb4a825a525c547f72b4b0"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a8cfbbb7e17cb4a825a525c547f72b4b0">&#9670;&nbsp;</a></span>celix_bundleContext_findServiceWithOptions()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">long celix_bundleContext_findServiceWithOptions </td>
-          <td>(</td>
-          <td class="paramtype">celix_bundle_context_t *&#160;</td>
-          <td class="paramname"><em>ctx</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const <a class="el" href="celix__bundle__context_8h.html#a7eab80d54386fb32b91dd414846c2d45">celix_service_filter_options_t</a> *&#160;</td>
-          <td class="paramname"><em>opts</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Finds the highest ranking service and returns the service id.</p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">ctx</td><td>The bundle context </td></tr>
-    <tr><td class="paramname">opts</td><td>The pointer to the filter options. </td></tr>
-  </table>
-  </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>If found a valid service id (&gt;= 0) if not found -1. </dd></dl>
-
-</div>
-</div>
-<a id="a3f7f55d1587f421f27518574a525ff63"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a3f7f55d1587f421f27518574a525ff63">&#9670;&nbsp;</a></span>celix_bundleContext_getBundle()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">celix_bundle_t* celix_bundleContext_getBundle </td>
-          <td>(</td>
-          <td class="paramtype">celix_bundle_context_t *&#160;</td>
-          <td class="paramname"><em>ctx</em></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Returns the bundle for this bundle context. </p>
-
-</div>
-</div>
-<a id="ac36566dcc477bb2c123e5124527090c1"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ac36566dcc477bb2c123e5124527090c1">&#9670;&nbsp;</a></span>celix_bundleContext_getDependencyManager()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">celix_dependency_manager_t* celix_bundleContext_getDependencyManager </td>
-          <td>(</td>
-          <td class="paramtype">celix_bundle_context_t *&#160;</td>
-          <td class="paramname"><em>ctx</em></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Gets the dependency manager for this bundle context.</p>
-<dl class="section return"><dt>Returns</dt><dd>the dependency manager or NULL if unsuccessful. </dd></dl>
-
-</div>
-</div>
-<a id="aa121100c5f5d03c0ccdda9c87286f7db"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#aa121100c5f5d03c0ccdda9c87286f7db">&#9670;&nbsp;</a></span>celix_bundleContext_getProperty()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">const char* celix_bundleContext_getProperty </td>
-          <td>(</td>
-          <td class="paramtype">celix_bundle_context_t *&#160;</td>
-          <td class="paramname"><em>ctx</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const char *&#160;</td>
-          <td class="paramname"><em>key</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const char *&#160;</td>
-          <td class="paramname"><em>defaultVal</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Gets the config property - or environment variable if the config property does not exist - for the provided name. </p><dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">key</td><td>The key of the property to receive. </td></tr>
-    <tr><td class="paramname">defaultVal</td><td>The default value to use if the property is not found (can be NULL). </td></tr>
-  </table>
-  </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>The property value for the provided key or the provided defaultValue is the key is not found. </dd></dl>
-
-</div>
-</div>
-<a id="a41e6642ba1a739b5768911fa41e5d170"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a41e6642ba1a739b5768911fa41e5d170">&#9670;&nbsp;</a></span>celix_bundleContext_getPropertyAsBool()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">bool celix_bundleContext_getPropertyAsBool </td>
-          <td>(</td>
-          <td class="paramtype">celix_bundle_context_t *&#160;</td>
-          <td class="paramname"><em>ctx</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const char *&#160;</td>
-          <td class="paramname"><em>key</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">bool&#160;</td>
-          <td class="paramname"><em>defaultValue</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Gets the config property as converts it to bool. If the property is not a valid bool, the defaultValue will be returned. The rest of the behaviour is the same as celix_bundleContext_getProperty.</p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">key</td><td>The key of the property to receive. </td></tr>
-    <tr><td class="paramname">defaultVal</td><td>The default value to use if the property is not found. </td></tr>
-  </table>
-  </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>The property value for the provided key or the provided defaultValue is the key is not found. </dd></dl>
-
-</div>
-</div>
-<a id="a92be7dd7985a890c4b92bcb8497e8b9f"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a92be7dd7985a890c4b92bcb8497e8b9f">&#9670;&nbsp;</a></span>celix_bundleContext_getPropertyAsDouble()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">double celix_bundleContext_getPropertyAsDouble </td>
-          <td>(</td>
-          <td class="paramtype">celix_bundle_context_t *&#160;</td>
-          <td class="paramname"><em>ctx</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const char *&#160;</td>
-          <td class="paramname"><em>key</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">double&#160;</td>
-          <td class="paramname"><em>defaultValue</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Gets the config property as converts it to double. If the property is not a valid double, the defaultValue will be returned. The rest of the behaviour is the same as celix_bundleContext_getProperty.</p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">key</td><td>The key of the property to receive. </td></tr>
-    <tr><td class="paramname">defaultVal</td><td>The default value to use if the property is not found. </td></tr>
-  </table>
-  </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>The property value for the provided key or the provided defaultValue is the key is not found. </dd></dl>
-
-</div>
-</div>
-<a id="a0ea27b2a81018583a464a10932cfae62"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a0ea27b2a81018583a464a10932cfae62">&#9670;&nbsp;</a></span>celix_bundleContext_getPropertyAsLong()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">long celix_bundleContext_getPropertyAsLong </td>
-          <td>(</td>
-          <td class="paramtype">celix_bundle_context_t *&#160;</td>
-          <td class="paramname"><em>ctx</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const char *&#160;</td>
-          <td class="paramname"><em>key</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">long&#160;</td>
-          <td class="paramname"><em>defaultValue</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Gets the config property as converts it to long. If the property is not a valid long, the defaultValue will be returned. The rest of the behaviour is the same as celix_bundleContext_getProperty.</p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">key</td><td>The key of the property to receive. </td></tr>
-    <tr><td class="paramname">defaultVal</td><td>The default value to use if the property is not found. </td></tr>
-  </table>
-  </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>The property value for the provided key or the provided defaultValue is the key is not found. </dd></dl>
-
-</div>
-</div>
-<a id="a727ee2600c19ce2fd42b3b80b695c7f6"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a727ee2600c19ce2fd42b3b80b695c7f6">&#9670;&nbsp;</a></span>celix_bundleContext_installBundle()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">long celix_bundleContext_installBundle </td>
-          <td>(</td>
-          <td class="paramtype">celix_bundle_context_t *&#160;</td>
-          <td class="paramname"><em>ctx</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const char *&#160;</td>
-          <td class="paramname"><em>bundleLoc</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">bool&#160;</td>
-          <td class="paramname"><em>autoStart</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Install and optional start a bundle. Will silently ignore bundle ids &lt; 0.</p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">ctx</td><td>The bundle context </td></tr>
-    <tr><td class="paramname">bundleLoc</td><td>The bundle location to the bundle zip file. </td></tr>
-    <tr><td class="paramname">autoStart</td><td>If the bundle should also be started. </td></tr>
-  </table>
-  </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>the bundleId (&gt;= 0) or &lt; 0 if the bundle could not be installed and possibly started. </dd></dl>
-
-</div>
-</div>
-<a id="ac7151f08ded1d7571867a44abe9f3531"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ac7151f08ded1d7571867a44abe9f3531">&#9670;&nbsp;</a></span>celix_bundleContext_isBundleInstalled()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">bool celix_bundleContext_isBundleInstalled </td>
-          <td>(</td>
-          <td class="paramtype">celix_bundle_context_t *&#160;</td>
-          <td class="paramname"><em>ctx</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">long&#160;</td>
-          <td class="paramname"><em>bndId</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Check if whether a bundle is installed. </p><dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">ctx</td><td>The bundle context. </td></tr>
-    <tr><td class="paramname">bndId</td><td>The bundle id to check </td></tr>
-  </table>
-  </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>true if the bundle is installed. </dd></dl>
-
-</div>
-</div>
-<a id="afde9ed40231b5c3bbba19559e68e77f6"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#afde9ed40231b5c3bbba19559e68e77f6">&#9670;&nbsp;</a></span>celix_bundleContext_listBundles()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">celix_array_list_t* celix_bundleContext_listBundles </td>
-          <td>(</td>
-          <td class="paramtype">celix_bundle_context_t *&#160;</td>
-          <td class="paramname"><em>ctx</em></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>List the installed and started bundle ids. The bundle ids does not include the framework bundle (bundle id 0).</p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">ctx</td><td>The bundle context </td></tr>
-  </table>
-  </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>A array with bundle ids (long). The caller is responsible for destroying the array. </dd></dl>
-
-</div>
-</div>
-<a id="a5bc54fd14871cc88ed887c8cea8f7b78"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a5bc54fd14871cc88ed887c8cea8f7b78">&#9670;&nbsp;</a></span>celix_bundleContext_registerService()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">long celix_bundleContext_registerService </td>
-          <td>(</td>
-          <td class="paramtype">celix_bundle_context_t *&#160;</td>
-          <td class="paramname"><em>ctx</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">void *&#160;</td>
-          <td class="paramname"><em>svc</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const char *&#160;</td>
-          <td class="paramname"><em>serviceName</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">celix_properties_t *&#160;</td>
-          <td class="paramname"><em>properties</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Register a service to the Celix framework.</p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">ctx</td><td>The bundle context </td></tr>
-    <tr><td class="paramname">svc</td><td>the service object. Normally a pointer to a service struct (i.e. a struct with function pointers) </td></tr>
-    <tr><td class="paramname">serviceName</td><td>the service name, cannot be NULL </td></tr>
-    <tr><td class="paramname">properties</td><td>The meta properties associated with the service. The service registration will take ownership of the properties (i.e. no destroy needed) </td></tr>
-  </table>
-  </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>The serviceId (&gt;= 0) or &lt; 0 if the registration was unsuccessful. </dd></dl>
-
-</div>
-</div>
-<a id="a3caa917285feaad580b61d4c0c8430a9"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a3caa917285feaad580b61d4c0c8430a9">&#9670;&nbsp;</a></span>celix_bundleContext_registerServiceFactory()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">long celix_bundleContext_registerServiceFactory </td>
-          <td>(</td>
-          <td class="paramtype">celix_bundle_context_t *&#160;</td>
-          <td class="paramname"><em>ctx</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">celix_service_factory_t *&#160;</td>
-          <td class="paramname"><em>factory</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const char *&#160;</td>
-          <td class="paramname"><em>serviceName</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">celix_properties_t *&#160;</td>
-          <td class="paramname"><em>props</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Register a service factory in the framework (for the C language). The service factory will be called for every bundle requesting/de-requesting a service. This gives the provider the option to create bundle specific service instances.</p>
-<p>When a service is requested for a bundle the getService of the factory service will be called. This function must return a valid pointer to a service conform the registered service name or NULL. When a service in no longer needed for a bundle (e.g. ending the useService(s) calls or when a service tracker is stopped) the ungetService function of the service factory will be called.</p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">ctx</td><td>The bundle context </td></tr>
-    <tr><td class="paramname">factory</td><td>The pointer to the factory service. </td></tr>
-    <tr><td class="paramname">serviceName</td><td>The required service name of the services this factory will produce. </td></tr>
-    <tr><td class="paramname">properties</td><td>The optional service factory properties. For a service consumer this will be seen as the service properties. </td></tr>
-  </table>
-  </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>The serviceId (&gt;= 0) or &lt; 0 if the registration was unsuccessful. </dd></dl>
-
-</div>
-</div>
-<a id="abcde0edf5b4969bdd67831cff3db0a43"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#abcde0edf5b4969bdd67831cff3db0a43">&#9670;&nbsp;</a></span>celix_bundleContext_registerServiceWithOptions()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">long celix_bundleContext_registerServiceWithOptions </td>
-          <td>(</td>
-          <td class="paramtype">celix_bundle_context_t *&#160;</td>
-          <td class="paramname"><em>ctx</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const <a class="el" href="celix__bundle__context_8h.html#aacaeb063a21a237ac515607d689eebb8">celix_service_registration_options_t</a> *&#160;</td>
-          <td class="paramname"><em>opts</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Register a service to the Celix framework using the provided service registration options.</p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">ctx</td><td>The bundle context </td></tr>
-    <tr><td class="paramname">opts</td><td>The pointer to the registration options. The options are only in the during registration call. </td></tr>
-  </table>
-  </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>The serviceId (&gt;= 0) or &lt; 0 if the registration was unsuccessful. </dd></dl>
-
-</div>
-</div>
-<a id="a8df4bfbc27c99736c0209ef130cff98f"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a8df4bfbc27c99736c0209ef130cff98f">&#9670;&nbsp;</a></span>celix_bundleContext_startBundle()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">bool celix_bundleContext_startBundle </td>
-          <td>(</td>
-          <td class="paramtype">celix_bundle_context_t *&#160;</td>
-          <td class="paramname"><em>ctx</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">long&#160;</td>
-          <td class="paramname"><em>bundleId</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Start the bundle with the provided bundle id. Will silently ignore bundle ids &lt; 0.</p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">ctx</td><td>The bundle context </td></tr>
-    <tr><td class="paramname">bundleId</td><td>The bundle id to start. </td></tr>
-  </table>
-  </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>true if the bundle is found &amp; correctly started. False if not. </dd></dl>
-
-</div>
-</div>
-<a id="ad6e1553f9507d04c7a0ad91d067d479b"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ad6e1553f9507d04c7a0ad91d067d479b">&#9670;&nbsp;</a></span>celix_bundleContext_stopBundle()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">bool celix_bundleContext_stopBundle </td>
-          <td>(</td>
-          <td class="paramtype">celix_bundle_context_t *&#160;</td>
-          <td class="paramname"><em>ctx</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">long&#160;</td>
-          <td class="paramname"><em>bundleId</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Stop the bundle with the provided bundle id. Will silently ignore bundle ids &lt; 0.</p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">ctx</td><td>The bundle context </td></tr>
-    <tr><td class="paramname">bundleId</td><td>The bundle id to stop. </td></tr>
-  </table>
-  </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>true if the bundle is found &amp; correctly stop. False if not. </dd></dl>
-
-</div>
-</div>
-<a id="a3b4906a9e6fb34fe3ca5118539a81fc7"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a3b4906a9e6fb34fe3ca5118539a81fc7">&#9670;&nbsp;</a></span>celix_bundleContext_stopTracker()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void celix_bundleContext_stopTracker </td>
-          <td>(</td>
-          <td class="paramtype">celix_bundle_context_t *&#160;</td>
-          <td class="paramname"><em>ctx</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">long&#160;</td>
-          <td class="paramname"><em>trackerId</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Stop the tracker with the provided track id. Could be a service tracker, bundle tracker or service tracker tracker. Only works for the trackers owned by the bundle of the bundle context.</p>
-<p>Will log a error if the provided tracker id is unknown. Will silently ignore trackerId &lt; 0. </p>
-
-</div>
-</div>
-<a id="a3daf88ae43bb01e104f506c3a2dc8351"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a3daf88ae43bb01e104f506c3a2dc8351">&#9670;&nbsp;</a></span>celix_bundleContext_trackBundles()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">long celix_bundleContext_trackBundles </td>
-          <td>(</td>
-          <td class="paramtype">celix_bundle_context_t *&#160;</td>
-          <td class="paramname"><em>ctx</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">void *&#160;</td>
-          <td class="paramname"><em>callbackHandle</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">void(*)(void *handle, const celix_bundle_t *bundle)&#160;</td>
-          <td class="paramname"><em>onStarted</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">void(*)(void *handle, const celix_bundle_t *bundle)&#160;</td>
-          <td class="paramname"><em>onStopped</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>track bundles The add bundle callback will also be called for already installed bundles.</p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">ctx</td><td>The bundle context. </td></tr>
-    <tr><td class="paramname">callbackHandle</td><td>The data pointer, which will be used in the callbacks </td></tr>
-    <tr><td class="paramname">add</td><td>The callback which will be called for started bundles. </td></tr>
-    <tr><td class="paramname">remove</td><td>The callback which will be called when bundles are stopped. </td></tr>
-  </table>
-  </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>The bundle tracker id or &lt; 0 if unsuccessful. </dd></dl>
-
-</div>
-</div>
-<a id="aa603acb136351b4135ce6a8c0b1fda71"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#aa603acb136351b4135ce6a8c0b1fda71">&#9670;&nbsp;</a></span>celix_bundleContext_trackBundlesWithOptions()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">long celix_bundleContext_trackBundlesWithOptions </td>
-          <td>(</td>
-          <td class="paramtype">celix_bundle_context_t *&#160;</td>
-          <td class="paramname"><em>ctx</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const <a class="el" href="celix__bundle__context_8h.html#a1b011b5fe49a718345698eeb359d0c3a">celix_bundle_tracking_options_t</a> *&#160;</td>
-          <td class="paramname"><em>opts</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Tracks bundles using the provided bundle tracker options. The tracker options are only using during this call and can safely be freed/reused after this call returns. (i.e. can be on the stack)</p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">ctx</td><td>The bundle context. </td></tr>
-    <tr><td class="paramname">opts</td><td>The pointer to the bundle tracker options. </td></tr>
-  </table>
-  </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>The bundle tracker id (&gt;=0) or &lt; 0 if unsuccessful. </dd></dl>
-
-</div>
-</div>
-<a id="a612409acf5453dbc370d93b784153d51"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a612409acf5453dbc370d93b784153d51">&#9670;&nbsp;</a></span>celix_bundleContext_trackService()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">long celix_bundleContext_trackService </td>
-          <td>(</td>
-          <td class="paramtype">celix_bundle_context_t *&#160;</td>
-          <td class="paramname"><em>ctx</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const char *&#160;</td>
-          <td class="paramname"><em>serviceName</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">void *&#160;</td>
-          <td class="paramname"><em>callbackHandle</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">void(*)(void *handle, void *svc)&#160;</td>
-          <td class="paramname"><em>set</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>track the highest ranking service with the provided serviceName. The highest ranking services will used for the callback. If a new and higher ranking services the callback with be called again with the new service. If a service is removed a the callback with be called with next highest ranking service or NULL as service.</p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">ctx</td><td>The bundle context. </td></tr>
-    <tr><td class="paramname">serviceName</td><td>The required service name to track </td></tr>
-    <tr><td class="paramname">callbackHandle</td><td>The data pointer, which will be used in the callbacks </td></tr>
-    <tr><td class="paramname">set</td><td>is a required callback, which will be called when a new highest ranking service is set. </td></tr>
-  </table>
-  </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>the tracker id (&gt;=0) or &lt; 0 if unsuccessful. </dd></dl>
-
-</div>
-</div>
-<a id="a43e3bfd38ef956ffe861065e698a72e4"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a43e3bfd38ef956ffe861065e698a72e4">&#9670;&nbsp;</a></span>celix_bundleContext_trackServices()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">long celix_bundleContext_trackServices </td>
-          <td>(</td>
-          <td class="paramtype">celix_bundle_context_t *&#160;</td>
-          <td class="paramname"><em>ctx</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const char *&#160;</td>
-          <td class="paramname"><em>serviceName</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">void *&#160;</td>
-          <td class="paramname"><em>callbackHandle</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">void(*)(void *handle, void *svc)&#160;</td>
-          <td class="paramname"><em>add</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">void(*)(void *handle, void *svc)&#160;</td>
-          <td class="paramname"><em>remove</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>track services with the provided serviceName.</p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">ctx</td><td>The bundle context. </td></tr>
-    <tr><td class="paramname">serviceName</td><td>The required service name to track </td></tr>
-    <tr><td class="paramname">callbackHandle</td><td>The data pointer, which will be used in the callbacks </td></tr>
-    <tr><td class="paramname">add</td><td>is a required callback, which will be called when a service is added and initially for the existing service. </td></tr>
-    <tr><td class="paramname">remove</td><td>is a required callback, which will be called when a service is removed </td></tr>
-  </table>
-  </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>the tracker id (&gt;=0) or &lt; 0 if unsuccessful. </dd></dl>
-
-</div>
-</div>
-<a id="a27980e1631d4575cc45c6c6ba38c6f71"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a27980e1631d4575cc45c6c6ba38c6f71">&#9670;&nbsp;</a></span>celix_bundleContext_trackServicesWithOptions()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">long celix_bundleContext_trackServicesWithOptions </td>
-          <td>(</td>
-          <td class="paramtype">celix_bundle_context_t *&#160;</td>
-          <td class="paramname"><em>ctx</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const <a class="el" href="celix__bundle__context_8h.html#a5c017c82bf57881c04f8c6f545b25a75">celix_service_tracking_options_t</a> *&#160;</td>
-          <td class="paramname"><em>opts</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Tracks services using the provided tracker options. The tracker options are only using during this call and can safely be freed/reused after this call returns.</p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">ctx</td><td>The bundle context. </td></tr>
-    <tr><td class="paramname">opts</td><td>The pointer to the tracker options. </td></tr>
-  </table>
-  </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>the tracker id (&gt;=0) or &lt; 0 if unsuccessful. </dd></dl>
-
-</div>
-</div>
-<a id="a80f61dd38b9da8447cd4f931779eaf16"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a80f61dd38b9da8447cd4f931779eaf16">&#9670;&nbsp;</a></span>celix_bundleContext_trackServiceTrackers()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">long celix_bundleContext_trackServiceTrackers </td>
-          <td>(</td>
-          <td class="paramtype">celix_bundle_context_t *&#160;</td>
-          <td class="paramname"><em>ctx</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const char *&#160;</td>
-          <td class="paramname"><em>serviceName</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">void *&#160;</td>
-          <td class="paramname"><em>callbackHandle</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">void(*)(void *handle, const <a class="el" href="celix__bundle__context_8h.html#aea7e7fcd4022db2f9f4123dd3b7a794a">celix_service_tracker_info_t</a> *info)&#160;</td>
-          <td class="paramname"><em>trackerAdd</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">void(*)(void *handle, const <a class="el" href="celix__bundle__context_8h.html#aea7e7fcd4022db2f9f4123dd3b7a794a">celix_service_tracker_info_t</a> *info)&#160;</td>
-          <td class="paramname"><em>trackerRemove</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Track the service tracker targeting the provided service name. This can be used to track if there is an interest in a certain service and ad-hoc act on that interest.</p>
-<p>Note that the celix_service_tracker_info_t pointer in the trackerAdd/trackerRemove callbacks are only valid during the callback.</p>
-<p>This tracker can be stopped with the celix_bundleContext_stopTracker function.</p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">ctx</td><td>The bundle context </td></tr>
-    <tr><td class="paramname">serviceName</td><td>The target service name for the service tracker to track. </td></tr>
-    <tr><td class="paramname">callbackHandle</td><td>The callback handle which will be provided as handle in the trackerAdd and trackerRemove callback. </td></tr>
-    <tr><td class="paramname">trackerAdd</td><td>Called when a service tracker is added, which tracks the provided service name. Will also be called for all existing service tracker when this tracker is started. </td></tr>
-    <tr><td class="paramname">trackerRemove</td><td>Called when a service tracker is removed, which tracks the provided service name </td></tr>
-  </table>
-  </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>The tracker id or &lt;0 if something went wrong (will log an error). </dd></dl>
-
-</div>
-</div>
-<a id="a098adf1e9f65deb166110008bd4314dd"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a098adf1e9f65deb166110008bd4314dd">&#9670;&nbsp;</a></span>celix_bundleContext_uninstallBundle()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">bool celix_bundleContext_uninstallBundle </td>
-          <td>(</td>
-          <td class="paramtype">celix_bundle_context_t *&#160;</td>
-          <td class="paramname"><em>ctx</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">long&#160;</td>
-          <td class="paramname"><em>bundleId</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Uninstall the bundle with the provided bundle id. If needed the bundle will be stopped first. Will silently ignore bundle ids &lt; 0.</p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">ctx</td><td>The bundle context </td></tr>
-    <tr><td class="paramname">bundleId</td><td>The bundle id to uninstall. </td></tr>
-  </table>
-  </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>true if the bundle is correctly uninstalled. False if not. </dd></dl>
-
-</div>
-</div>
-<a id="a1ebd82cb3d61aab769956d856293b9b9"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a1ebd82cb3d61aab769956d856293b9b9">&#9670;&nbsp;</a></span>celix_bundleContext_unregisterService()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void celix_bundleContext_unregisterService </td>
-          <td>(</td>
-          <td class="paramtype">celix_bundle_context_t *&#160;</td>
-          <td class="paramname"><em>ctx</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">long&#160;</td>
-          <td class="paramname"><em>serviceId</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Unregister the service or service factory with service id. The service will only be unregistered if the bundle of the bundle context is the owner of the service.</p>
-<p>Will log an error if service id is unknown. Will silently ignore services ids &lt; 0.</p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">ctx</td><td>The bundle context </td></tr>
-    <tr><td class="paramname">serviceId</td><td>The service id </td></tr>
-  </table>
-  </dd>
-</dl>
-
-</div>
-</div>
-<a id="abb3cedf5ffa7a326cef2af64a1094635"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#abb3cedf5ffa7a326cef2af64a1094635">&#9670;&nbsp;</a></span>celix_bundleContext_useBundle()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">bool celix_bundleContext_useBundle </td>
-          <td>(</td>
-          <td class="paramtype">celix_bundle_context_t *&#160;</td>
-          <td class="paramname"><em>ctx</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">long&#160;</td>
-          <td class="paramname"><em>bundleId</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">void *&#160;</td>
-          <td class="paramname"><em>callbackHandle</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">void(*)(void *handle, const celix_bundle_t *bundle)&#160;</td>
-          <td class="paramname"><em>use</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Use the bundle with the provided bundle id if it is in the active (started) state The provided callback will be called if the bundle is found and in the active (started) state.</p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">ctx</td><td>The bundle context. </td></tr>
-    <tr><td class="paramname">bundleId</td><td>The bundle id. </td></tr>
-    <tr><td class="paramname">callbackHandle</td><td>The data pointer, which will be used in the callbacks </td></tr>
-    <tr><td class="paramname">use</td><td>The callback which will be called for the currently started bundles. The bundle pointers are only guaranteed to be valid during the callback. </td></tr>
-  </table>
-  </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Returns true if the bundle is found and the callback is called. </dd></dl>
-
-</div>
-</div>
-<a id="a03a6d1c49c91c212ad7be115e1035840"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a03a6d1c49c91c212ad7be115e1035840">&#9670;&nbsp;</a></span>celix_bundleContext_useBundles()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void celix_bundleContext_useBundles </td>
-          <td>(</td>
-          <td class="paramtype">celix_bundle_context_t *&#160;</td>
-          <td class="paramname"><em>ctx</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">void *&#160;</td>
-          <td class="paramname"><em>callbackHandle</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">void(*)(void *handle, const celix_bundle_t *bundle)&#160;</td>
-          <td class="paramname"><em>use</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Use the currently active (started) bundles. The provided callback will be called for all the currently started bundles (excluding the framework bundle).</p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">ctx</td><td>The bundle context. </td></tr>
-    <tr><td class="paramname">callbackHandle</td><td>The data pointer, which will be used in the callbacks </td></tr>
-    <tr><td class="paramname">use</td><td>The callback which will be called for the currently started bundles. The bundle pointers are only guaranteed to be valid during the callback. </td></tr>
-  </table>
-  </dd>
-</dl>
-
-</div>
-</div>
-<a id="ac36cdb8a06bb34f9371d7bb32953c69e"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ac36cdb8a06bb34f9371d7bb32953c69e">&#9670;&nbsp;</a></span>celix_bundleContext_useService()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">bool celix_bundleContext_useService </td>
-          <td>(</td>
-          <td class="paramtype">celix_bundle_context_t *&#160;</td>
-          <td class="paramname"><em>ctx</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const char *&#160;</td>
-          <td class="paramname"><em>serviceName</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">void *&#160;</td>
-          <td class="paramname"><em>callbackHandle</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">void(*)(void *handle, void *svc)&#160;</td>
-          <td class="paramname"><em>use</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Use the highest ranking service with the provided service name using the provided callback. The Celix framework will ensure that the targeted service cannot be removed during the callback.</p>
-<p>The svc is should only be considered valid during the callback. If no service is found the callback will not be invoked.</p>
-<p>This function will block till the callback is finished. As result it is possible to provide callback data from the stack.</p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">ctx</td><td>The bundle context </td></tr>
-    <tr><td class="paramname">serviceName</td><td>the required service name. </td></tr>
-    <tr><td class="paramname">callbackHandle</td><td>The data pointer, which will be used in the callbacks </td></tr>
-    <tr><td class="paramname">use</td><td>The callback, which will be called when service is retrieved. </td></tr>
-  </table>
-  </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>True if a service was found. </dd></dl>
-
-</div>
-</div>
-<a id="a39270507a3766afbfcc9420c7270d262"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a39270507a3766afbfcc9420c7270d262">&#9670;&nbsp;</a></span>celix_bundleContext_useServices()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void celix_bundleContext_useServices </td>
-          <td>(</td>
-          <td class="paramtype">celix_bundle_context_t *&#160;</td>
-          <td class="paramname"><em>ctx</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const char *&#160;</td>
-          <td class="paramname"><em>serviceName</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">void *&#160;</td>
-          <td class="paramname"><em>callbackHandle</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">void(*)(void *handle, void *svc)&#160;</td>
-          <td class="paramname"><em>use</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Use the services with the provided service name using the provided callback. The Celix framework will ensure that the targeted service cannot be removed during the callback.</p>
-<p>The svc is should only be considered valid during the callback. If no service is found the callback will not be invoked.</p>
-<p>This function will block till the callback is finished. As result it is possible to provide callback data from the stack.</p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">ctx</td><td>The bundle context </td></tr>
-    <tr><td class="paramname">serviceName</td><td>the required service name. </td></tr>
-    <tr><td class="paramname">callbackHandle</td><td>The data pointer, which will be used in the callbacks </td></tr>
-    <tr><td class="paramname">use</td><td>The callback, which will be called for every service found. </td></tr>
-  </table>
-  </dd>
-</dl>
-
-</div>
-</div>
-<a id="ad1512520baedecad54a7bc307e0a6c7b"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ad1512520baedecad54a7bc307e0a6c7b">&#9670;&nbsp;</a></span>celix_bundleContext_useServicesWithOptions()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void celix_bundleContext_useServicesWithOptions </td>
-          <td>(</td>
-          <td class="paramtype">celix_bundle_context_t *&#160;</td>
-          <td class="paramname"><em>ctx</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const <a class="el" href="celix__bundle__context_8h.html#ae2da28d23f5246c20c6b675b80e7d130">celix_service_use_options_t</a> *&#160;</td>
-          <td class="paramname"><em>opts</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Use the services with the provided service filter options using the provided callback. The Celix framework will ensure that the targeted service cannot be removed during the callback.</p>
-<p>The svc is should only be considered valid during the callback. If no service is found the callback will not be invoked.</p>
-<p>This function will block till the callback is finished. As result it is possible to provide callback data from the stack.</p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">ctx</td><td>The bundle context. </td></tr>
-    <tr><td class="paramname">opts</td><td>The required options. Note that the serviceName is required. </td></tr>
-  </table>
-  </dd>
-</dl>
-
-</div>
-</div>
-<a id="aec6e03faece0f8247de19d8c1527406d"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#aec6e03faece0f8247de19d8c1527406d">&#9670;&nbsp;</a></span>celix_bundleContext_useServiceWithId()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">bool celix_bundleContext_useServiceWithId </td>
-          <td>(</td>
-          <td class="paramtype">celix_bundle_context_t *&#160;</td>
-          <td class="paramname"><em>ctx</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">long&#160;</td>
-          <td class="paramname"><em>serviceId</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const char *&#160;</td>
-          <td class="paramname"><em>serviceName</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">void *&#160;</td>
-          <td class="paramname"><em>callbackHandle</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">void(*)(void *handle, void *svc)&#160;</td>
-          <td class="paramname"><em>use</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Use the service with the provided service id using the provided callback. The Celix framework will ensure that the targeted service cannot be removed during the callback.</p>
-<p>The svc is should only be considered valid during the callback. If no service is found the callback will not be invoked.</p>
-<p>This function will block till the callback is finished. As result it is possible to provide callback data from the stack.</p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">ctx</td><td>The bundle context </td></tr>
-    <tr><td class="paramname">serviceId</td><td>the service id. </td></tr>
-    <tr><td class="paramname">serviceName</td><td>the service name of the service. Should match with the registered service name of the provided service id (sanity check) </td></tr>
-    <tr><td class="paramname">callbackHandle</td><td>The data pointer, which will be used in the callbacks </td></tr>
-    <tr><td class="paramname">use</td><td>The callback, which will be called when service is retrieved. </td></tr>
-    <tr><td class="paramname">bool</td><td>returns true if a service was found. </td></tr>
-  </table>
-  </dd>
-</dl>
-
-</div>
-</div>
-<a id="a1e8a78de5f799d303231385b51085055"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a1e8a78de5f799d303231385b51085055">&#9670;&nbsp;</a></span>celix_bundleContext_useServiceWithOptions()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">bool celix_bundleContext_useServiceWithOptions </td>
-          <td>(</td>
-          <td class="paramtype">celix_bundle_context_t *&#160;</td>
-          <td class="paramname"><em>ctx</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const <a class="el" href="celix__bundle__context_8h.html#ae2da28d23f5246c20c6b675b80e7d130">celix_service_use_options_t</a> *&#160;</td>
-          <td class="paramname"><em>opts</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Use the services with the provided service filter options using the provided callback. The Celix framework will ensure that the targeted service cannot be removed during the callback.</p>
-<p>The svc is should only be considered valid during the callback. If no service is found the callback will not be invoked.</p>
-<p>This function will block till the callback is finished. As result it is possible to provide callback data from the stack.</p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">ctx</td><td>The bundle context. </td></tr>
-    <tr><td class="paramname">opts</td><td>The required options. Note that the serviceName is required. </td></tr>
-  </table>
-  </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>True if a service was found. </dd></dl>
-
-</div>
-</div>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.18
-</small></address>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/celix__bundle__context_8h__dep__incl.map b/static/docs/2.2.1/html/celix__bundle__context_8h__dep__incl.map
deleted file mode 100755
index 90e5ab2..0000000
--- a/static/docs/2.2.1/html/celix__bundle__context_8h__dep__incl.map
+++ /dev/null
@@ -1,5 +0,0 @@
-<map id="libs/framework/include/celix_bundle_context.h" name="libs/framework/include/celix_bundle_context.h">
-<area shape="rect" id="node1" title=" " alt="" coords="5,5,164,47"/>
-<area shape="rect" id="node2" href="$celix__api_8h.html" title=" " alt="" coords="9,184,160,225"/>
-<area shape="rect" id="node3" href="$celix__bundle__activator_8h.html" title=" " alt="" coords="62,95,227,136"/>
-</map>
diff --git a/static/docs/2.2.1/html/celix__bundle__context_8h__dep__incl.md5 b/static/docs/2.2.1/html/celix__bundle__context_8h__dep__incl.md5
deleted file mode 100755
index 47c28ab..0000000
--- a/static/docs/2.2.1/html/celix__bundle__context_8h__dep__incl.md5
+++ /dev/null
@@ -1 +0,0 @@
-dd319bdebb1db91655a65b4870aac46e
\ No newline at end of file
diff --git a/static/docs/2.2.1/html/celix__bundle__context_8h__dep__incl.png b/static/docs/2.2.1/html/celix__bundle__context_8h__dep__incl.png
deleted file mode 100755
index 137d564..0000000
--- a/static/docs/2.2.1/html/celix__bundle__context_8h__dep__incl.png
+++ /dev/null
Binary files differ
diff --git a/static/docs/2.2.1/html/celix__bundle__context_8h__incl.map b/static/docs/2.2.1/html/celix__bundle__context_8h__incl.map
deleted file mode 100755
index d37138f..0000000
--- a/static/docs/2.2.1/html/celix__bundle__context_8h__incl.map
+++ /dev/null
@@ -1,8 +0,0 @@
-<map id="libs/framework/include/celix_bundle_context.h" name="libs/framework/include/celix_bundle_context.h">
-<area shape="rect" id="node1" title=" " alt="" coords="290,5,449,47"/>
-<area shape="rect" id="node2" title=" " alt="" coords="5,95,104,121"/>
-<area shape="rect" id="node3" title=" " alt="" coords="128,95,283,121"/>
-<area shape="rect" id="node4" title=" " alt="" coords="307,95,431,121"/>
-<area shape="rect" id="node5" title=" " alt="" coords="456,95,576,121"/>
-<area shape="rect" id="node6" title=" " alt="" coords="600,95,691,121"/>
-</map>
diff --git a/static/docs/2.2.1/html/celix__bundle__context_8h__incl.md5 b/static/docs/2.2.1/html/celix__bundle__context_8h__incl.md5
deleted file mode 100755
index 7bcc591..0000000
--- a/static/docs/2.2.1/html/celix__bundle__context_8h__incl.md5
+++ /dev/null
@@ -1 +0,0 @@
-49b5d165f43bff07f95c230e7abbbbea
\ No newline at end of file
diff --git a/static/docs/2.2.1/html/celix__bundle__context_8h__incl.png b/static/docs/2.2.1/html/celix__bundle__context_8h__incl.png
deleted file mode 100755
index 5833dc7..0000000
--- a/static/docs/2.2.1/html/celix__bundle__context_8h__incl.png
+++ /dev/null
Binary files differ
diff --git a/static/docs/2.2.1/html/celix__bundle__context_8h_source.html b/static/docs/2.2.1/html/celix__bundle__context_8h_source.html
deleted file mode 100755
index a0deac6..0000000
--- a/static/docs/2.2.1/html/celix__bundle__context_8h_source.html
+++ /dev/null
@@ -1,499 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>Celix: libs/framework/include/celix_bundle_context.h Source File</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/searchdata.js"></script>
-<script type="text/javascript" src="search/search.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">Celix
-   &#160;<span id="projectnumber">2.2.1</span>
-   </div>
-   <div id="projectbrief">An implementation of the OSGi specification adapted to C and C++</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.18 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
-     onmouseover="return searchBox.OnSearchSelectShow()"
-     onmouseout="return searchBox.OnSearchSelectHide()"
-     onkeydown="return searchBox.OnSearchSelectKey(event)">
-</div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div id="nav-path" class="navpath">
-  <ul>
-<li class="navelem"><a class="el" href="dir_6719ab1f1f7655efc2fa43f7eb574fd1.html">libs</a></li><li class="navelem"><a class="el" href="dir_edbb2ffdc3e165978e68de3a46f2e8a0.html">framework</a></li><li class="navelem"><a class="el" href="dir_bc286dd6b945a73064974dfd7e40f558.html">include</a></li>  </ul>
-</div>
-</div><!-- top -->
-<div class="header">
-  <div class="headertitle">
-<div class="title">celix_bundle_context.h</div>  </div>
-</div><!--header-->
-<div class="contents">
-<a href="celix__bundle__context_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div>
-<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div>
-<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div>
-<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div>
-<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div>
-<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div>
-<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div>
-<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div>
-<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div>
-<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div>
-<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div>
-<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div>
-<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div>
-<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div>
-<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> *  KIND, either express or implied.  See the License for the</span></div>
-<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div>
-<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div>
-<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div>
-<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160; </div>
-<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#include &quot;celix_types.h&quot;</span></div>
-<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#include &quot;celix_service_factory.h&quot;</span></div>
-<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &quot;celix_properties.h&quot;</span></div>
-<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &quot;celix_array_list.h&quot;</span></div>
-<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#include &quot;celix_filter.h&quot;</span></div>
-<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160; </div>
-<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="preprocessor">#ifndef CELIX_BUNDLE_CONTEXT_H_</span></div>
-<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="preprocessor">#define CELIX_BUNDLE_CONTEXT_H_</span></div>
-<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160; </div>
-<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160; </div>
-<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
-<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160; </div>
-<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="preprocessor">#define OPTS_INIT {}</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="preprocessor">#define OPTS_INIT</span></div>
-<div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="celix__bundle__context_8h.html#a8ebbfbe80221fe8adc8c3afbdceb570f">   41</a></span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160; </div>
-<div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="celix__bundle__context_8h.html#a5bc54fd14871cc88ed887c8cea8f7b78">   52</a></span>&#160;<span class="keywordtype">long</span> <a class="code" href="celix__bundle__context_8h.html#a5bc54fd14871cc88ed887c8cea8f7b78">celix_bundleContext_registerService</a>(celix_bundle_context_t *ctx, <span class="keywordtype">void</span> *svc, <span class="keyword">const</span> <span class="keywordtype">char</span> *serviceName, celix_properties_t *properties);</div>
-<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160; </div>
-<div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="celix__bundle__context_8h.html#a3caa917285feaad580b61d4c0c8430a9">   70</a></span>&#160;<span class="keywordtype">long</span> <a class="code" href="celix__bundle__context_8h.html#a3caa917285feaad580b61d4c0c8430a9">celix_bundleContext_registerServiceFactory</a>(celix_bundle_context_t *ctx, celix_service_factory_t *factory, <span class="keyword">const</span> <span class="keywordtype">char</span> *serviceName, celix_properties_t *props);</div>
-<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160; </div>
-<div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="structcelix__service__registration__options.html">   75</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structcelix__service__registration__options.html">celix_service_registration_options</a> {</div>
-<div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="structcelix__service__registration__options.html#a9c24c1179305b68840149449b1fa6d87">   83</a></span>&#160;    <span class="keywordtype">void</span> *svc <a class="code" href="structcelix__service__registration__options.html#a9c24c1179305b68840149449b1fa6d87">OPTS_INIT</a>;</div>
-<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160; </div>
-<div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="structcelix__service__registration__options.html#a94eb8e6e1af0cca435d99aa5d2457fca">   99</a></span>&#160;    celix_service_factory_t *factory <a class="code" href="structcelix__service__registration__options.html#a94eb8e6e1af0cca435d99aa5d2457fca">OPTS_INIT</a>;</div>
-<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160; </div>
-<div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="structcelix__service__registration__options.html#a86179f0c7a032f3309440a2cd8d91a61">  105</a></span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span> *serviceName <a class="code" href="structcelix__service__registration__options.html#a86179f0c7a032f3309440a2cd8d91a61">OPTS_INIT</a>;</div>
-<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160; </div>
-<div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="structcelix__service__registration__options.html#a6e1274cc3b190b3dc05c7c145f57d407">  114</a></span>&#160;    celix_properties_t *properties <a class="code" href="structcelix__service__registration__options.html#a6e1274cc3b190b3dc05c7c145f57d407">OPTS_INIT</a>;</div>
-<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160; </div>
-<div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="structcelix__service__registration__options.html#ae44ee7cc15427e406a67b0396201700c">  119</a></span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span> *serviceLanguage <a class="code" href="structcelix__service__registration__options.html#ae44ee7cc15427e406a67b0396201700c">OPTS_INIT</a>;</div>
-<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160; </div>
-<div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="structcelix__service__registration__options.html#af9b1a622c06a3053ed3917649241fc23">  128</a></span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span> *serviceVersion <a class="code" href="structcelix__service__registration__options.html#af9b1a622c06a3053ed3917649241fc23">OPTS_INIT</a>;</div>
-<div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="celix__bundle__context_8h.html#aacaeb063a21a237ac515607d689eebb8">  129</a></span>&#160;} <a class="code" href="celix__bundle__context_8h.html#aacaeb063a21a237ac515607d689eebb8">celix_service_registration_options_t</a>;</div>
-<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160; </div>
-<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;<span class="preprocessor">#ifndef __cplusplus</span></div>
-<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;<span class="preprocessor">#define CELIX_EMPTY_SERVICE_REGISTRATION_OPTIONS { .svc = NULL, \</span></div>
-<div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="celix__bundle__context_8h.html#a6020a7ba8712efd0847fdf28e74eb69c">  136</a></span>&#160;<span class="preprocessor">    .factory = NULL, \</span></div>
-<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;<span class="preprocessor">    .serviceName = NULL, \</span></div>
-<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;<span class="preprocessor">    .properties = NULL, \</span></div>
-<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;<span class="preprocessor">    .serviceLanguage = NULL, \</span></div>
-<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;<span class="preprocessor">    .serviceVersion = NULL }</span></div>
-<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160; </div>
-<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160; </div>
-<div class="line"><a name="l00151"></a><span class="lineno"><a class="line" href="celix__bundle__context_8h.html#abcde0edf5b4969bdd67831cff3db0a43">  151</a></span>&#160;<span class="keywordtype">long</span> <a class="code" href="celix__bundle__context_8h.html#abcde0edf5b4969bdd67831cff3db0a43">celix_bundleContext_registerServiceWithOptions</a>(celix_bundle_context_t *ctx, <span class="keyword">const</span> <a class="code" href="structcelix__service__registration__options.html">celix_service_registration_options_t</a> *opts);</div>
-<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160; </div>
-<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160; </div>
-<div class="line"><a name="l00163"></a><span class="lineno"><a class="line" href="celix__bundle__context_8h.html#a1ebd82cb3d61aab769956d856293b9b9">  163</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="celix__bundle__context_8h.html#a1ebd82cb3d61aab769956d856293b9b9">celix_bundleContext_unregisterService</a>(celix_bundle_context_t *ctx, <span class="keywordtype">long</span> serviceId);</div>
-<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160; </div>
-<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160; </div>
-<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160; </div>
-<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160; </div>
-<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160; </div>
-<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160; </div>
-<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160; </div>
-<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160; </div>
-<div class="line"><a name="l00179"></a><span class="lineno"><a class="line" href="celix__bundle__context_8h.html#ac8322b5aa4adf9dcd8c288ce72a05414">  179</a></span>&#160;<span class="keywordtype">long</span> <a class="code" href="celix__bundle__context_8h.html#ac8322b5aa4adf9dcd8c288ce72a05414">celix_bundleContext_findService</a>(celix_bundle_context_t *ctx, <span class="keyword">const</span> <span class="keywordtype">char</span> *serviceName);</div>
-<div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160; </div>
-<div class="line"><a name="l00188"></a><span class="lineno"><a class="line" href="celix__bundle__context_8h.html#a96a901f0597f9d2accf073153d90344c">  188</a></span>&#160;celix_array_list_t* <a class="code" href="celix__bundle__context_8h.html#a96a901f0597f9d2accf073153d90344c">celix_bundleContext_findServices</a>(celix_bundle_context_t *ctx, <span class="keyword">const</span> <span class="keywordtype">char</span> *serviceName);</div>
-<div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160; </div>
-<div class="line"><a name="l00193"></a><span class="lineno"><a class="line" href="structcelix__service__filter__options.html">  193</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structcelix__service__filter__options.html">celix_service_filter_options</a> {</div>
-<div class="line"><a name="l00197"></a><span class="lineno"><a class="line" href="structcelix__service__filter__options.html#addb2e1e8fcce127512d272383e78cbd1">  197</a></span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span>* serviceName <a class="code" href="structcelix__service__filter__options.html#addb2e1e8fcce127512d272383e78cbd1">OPTS_INIT</a>;</div>
-<div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160; </div>
-<div class="line"><a name="l00204"></a><span class="lineno"><a class="line" href="structcelix__service__filter__options.html#a65bea04c378ef46d841046ffbb2f805c">  204</a></span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span>* versionRange <a class="code" href="structcelix__service__filter__options.html#a65bea04c378ef46d841046ffbb2f805c">OPTS_INIT</a>;</div>
-<div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160; </div>
-<div class="line"><a name="l00210"></a><span class="lineno"><a class="line" href="structcelix__service__filter__options.html#ac15f30b81e60826290a29fb12da6684a">  210</a></span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span>* filter <a class="code" href="structcelix__service__filter__options.html#ac15f30b81e60826290a29fb12da6684a">OPTS_INIT</a>;</div>
-<div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160; </div>
-<div class="line"><a name="l00215"></a><span class="lineno"><a class="line" href="structcelix__service__filter__options.html#a9286701a4c946d1ed28afde05cd34d51">  215</a></span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span>* serviceLanguage <a class="code" href="structcelix__service__filter__options.html#a9286701a4c946d1ed28afde05cd34d51">OPTS_INIT</a>;</div>
-<div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160; </div>
-<div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160; </div>
-<div class="line"><a name="l00222"></a><span class="lineno"><a class="line" href="structcelix__service__filter__options.html#a70cc8aee445c1a24782454393f12ff98">  222</a></span>&#160;    <span class="keywordtype">bool</span> ignoreServiceLanguage <a class="code" href="structcelix__service__filter__options.html#a70cc8aee445c1a24782454393f12ff98">OPTS_INIT</a>;</div>
-<div class="line"><a name="l00223"></a><span class="lineno"><a class="line" href="celix__bundle__context_8h.html#a7eab80d54386fb32b91dd414846c2d45">  223</a></span>&#160;} <a class="code" href="celix__bundle__context_8h.html#a7eab80d54386fb32b91dd414846c2d45">celix_service_filter_options_t</a>;</div>
-<div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160; </div>
-<div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;<span class="preprocessor">#ifndef __cplusplus</span></div>
-<div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;<span class="preprocessor">#define CELIX_EMPTY_SERVICE_FILTER_OPTIONS {.serviceName = NULL, .versionRange = NULL, .filter = NULL, .serviceLanguage = NULL, .ignoreServiceLanguage = false}</span></div>
-<div class="line"><a name="l00230"></a><span class="lineno"><a class="line" href="celix__bundle__context_8h.html#a7199f710ea1c193d361e8c151a92bc6a">  230</a></span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160; </div>
-<div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160; </div>
-<div class="line"><a name="l00240"></a><span class="lineno"><a class="line" href="celix__bundle__context_8h.html#a8cfbbb7e17cb4a825a525c547f72b4b0">  240</a></span>&#160;<span class="keywordtype">long</span> <a class="code" href="celix__bundle__context_8h.html#a8cfbbb7e17cb4a825a525c547f72b4b0">celix_bundleContext_findServiceWithOptions</a>(celix_bundle_context_t *ctx, <span class="keyword">const</span> <a class="code" href="structcelix__service__filter__options.html">celix_service_filter_options_t</a> *opts);</div>
-<div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160; </div>
-<div class="line"><a name="l00249"></a><span class="lineno"><a class="line" href="celix__bundle__context_8h.html#a41c34f8165addcbd0d65b4a0c23345d0">  249</a></span>&#160;celix_array_list_t* <a class="code" href="celix__bundle__context_8h.html#a41c34f8165addcbd0d65b4a0c23345d0">celix_bundleContext_findServicesWithOptions</a>(celix_bundle_context_t *ctx, <span class="keyword">const</span> <a class="code" href="structcelix__service__filter__options.html">celix_service_filter_options_t</a> *opts);</div>
-<div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160; </div>
-<div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160; </div>
-<div class="line"><a name="l00264"></a><span class="lineno"><a class="line" href="celix__bundle__context_8h.html#a612409acf5453dbc370d93b784153d51">  264</a></span>&#160;<span class="keywordtype">long</span> <a class="code" href="celix__bundle__context_8h.html#a612409acf5453dbc370d93b784153d51">celix_bundleContext_trackService</a>(</div>
-<div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;        celix_bundle_context_t* ctx,</div>
-<div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">char</span>* serviceName,</div>
-<div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;        <span class="keywordtype">void</span>* callbackHandle,</div>
-<div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;        <span class="keywordtype">void</span> (*set)(<span class="keywordtype">void</span>* handle, <span class="keywordtype">void</span>* svc)</div>
-<div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;);</div>
-<div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160; </div>
-<div class="line"><a name="l00281"></a><span class="lineno"><a class="line" href="celix__bundle__context_8h.html#a43e3bfd38ef956ffe861065e698a72e4">  281</a></span>&#160;<span class="keywordtype">long</span> <a class="code" href="celix__bundle__context_8h.html#a43e3bfd38ef956ffe861065e698a72e4">celix_bundleContext_trackServices</a>(</div>
-<div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;        celix_bundle_context_t* ctx,</div>
-<div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">char</span>* serviceName,</div>
-<div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;        <span class="keywordtype">void</span>* callbackHandle,</div>
-<div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;        <span class="keywordtype">void</span> (*add)(<span class="keywordtype">void</span>* handle, <span class="keywordtype">void</span>* svc),</div>
-<div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;        <span class="keywordtype">void</span> (*remove)(<span class="keywordtype">void</span>* handle, <span class="keywordtype">void</span>* svc)</div>
-<div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;);</div>
-<div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160; </div>
-<div class="line"><a name="l00292"></a><span class="lineno"><a class="line" href="structcelix__service__tracking__options.html">  292</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structcelix__service__tracking__options.html">celix_service_tracking_options</a> {</div>
-<div class="line"><a name="l00296"></a><span class="lineno"><a class="line" href="structcelix__service__tracking__options.html#a9272f1870b544b28329545b84f3425c2">  296</a></span>&#160;    <a class="code" href="structcelix__service__filter__options.html">celix_service_filter_options_t</a> filter <a class="code" href="structcelix__service__tracking__options.html#a9272f1870b544b28329545b84f3425c2">OPTS_INIT</a>;</div>
-<div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160; </div>
-<div class="line"><a name="l00301"></a><span class="lineno"><a class="line" href="structcelix__service__tracking__options.html#a2fcaf1b7274379695cc9a4bb1c719d86">  301</a></span>&#160;    <span class="keywordtype">void</span>* callbackHandle <a class="code" href="structcelix__service__tracking__options.html#a2fcaf1b7274379695cc9a4bb1c719d86">OPTS_INIT</a>;</div>
-<div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160; </div>
-<div class="line"><a name="l00309"></a><span class="lineno"><a class="line" href="structcelix__service__tracking__options.html#aa9e8b9cae7ea59ddb796a6bc904f57da">  309</a></span>&#160;    void (*<a class="code" href="structcelix__service__tracking__options.html#aa9e8b9cae7ea59ddb796a6bc904f57da">set</a>)(<span class="keywordtype">void</span> *handle, <span class="keywordtype">void</span> *svc) <a class="code" href="structcelix__service__tracking__options.html#a9272f1870b544b28329545b84f3425c2">OPTS_INIT</a>;</div>
-<div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160; </div>
-<div class="line"><a name="l00315"></a><span class="lineno"><a class="line" href="structcelix__service__tracking__options.html#a256f8db1eecb89a8b71e4ef03ab11172">  315</a></span>&#160;    void (*<a class="code" href="structcelix__service__tracking__options.html#a256f8db1eecb89a8b71e4ef03ab11172">setWithProperties</a>)(<span class="keywordtype">void</span> *handle, <span class="keywordtype">void</span> *svc, <span class="keyword">const</span> celix_properties_t *props) <a class="code" href="structcelix__service__tracking__options.html#a9272f1870b544b28329545b84f3425c2">OPTS_INIT</a>; <span class="comment">//highest ranking</span></div>
-<div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160; </div>
-<div class="line"><a name="l00321"></a><span class="lineno"><a class="line" href="structcelix__service__tracking__options.html#a12a988b8f1f3bd3a2e61c65d82f14d59">  321</a></span>&#160;    void (*<a class="code" href="structcelix__service__tracking__options.html#a12a988b8f1f3bd3a2e61c65d82f14d59">setWithOwner</a>)(<span class="keywordtype">void</span> *handle, <span class="keywordtype">void</span> *svc, <span class="keyword">const</span> celix_properties_t *props, <span class="keyword">const</span> celix_bundle_t *svcOwner) <a class="code" href="structcelix__service__tracking__options.html#a9272f1870b544b28329545b84f3425c2">OPTS_INIT</a>; <span class="comment">//highest ranking</span></div>
-<div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160; </div>
-<div class="line"><a name="l00329"></a><span class="lineno"><a class="line" href="structcelix__service__tracking__options.html#afe7fa7d7fce1c581dff6e7986e958815">  329</a></span>&#160;    void (*<a class="code" href="structcelix__service__tracking__options.html#afe7fa7d7fce1c581dff6e7986e958815">add</a>)(<span class="keywordtype">void</span> *handle, <span class="keywordtype">void</span> *svc) <a class="code" href="structcelix__service__tracking__options.html#a9272f1870b544b28329545b84f3425c2">OPTS_INIT</a>;</div>
-<div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160; </div>
-<div class="line"><a name="l00335"></a><span class="lineno"><a class="line" href="structcelix__service__tracking__options.html#a4f80c99b050b1e49663cab329848364c">  335</a></span>&#160;    void (*<a class="code" href="structcelix__service__tracking__options.html#a4f80c99b050b1e49663cab329848364c">addWithProperties</a>)(<span class="keywordtype">void</span> *handle, <span class="keywordtype">void</span> *svc, <span class="keyword">const</span> celix_properties_t *props) <a class="code" href="structcelix__service__tracking__options.html#a9272f1870b544b28329545b84f3425c2">OPTS_INIT</a>;</div>
-<div class="line"><a name="l00336"></a><span class="lineno">  336</span>&#160; </div>
-<div class="line"><a name="l00341"></a><span class="lineno"><a class="line" href="structcelix__service__tracking__options.html#a787fd0f4f6719fefea2ae70fe6a1a5e6">  341</a></span>&#160;    void (*<a class="code" href="structcelix__service__tracking__options.html#a787fd0f4f6719fefea2ae70fe6a1a5e6">addWithOwner</a>)(<span class="keywordtype">void</span> *handle, <span class="keywordtype">void</span> *svc, <span class="keyword">const</span> celix_properties_t *props, <span class="keyword">const</span> celix_bundle_t *svcOwner) <a class="code" href="structcelix__service__tracking__options.html#a9272f1870b544b28329545b84f3425c2">OPTS_INIT</a>;</div>
-<div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160; </div>
-<div class="line"><a name="l00352"></a><span class="lineno"><a class="line" href="structcelix__service__tracking__options.html#a8445caaae53d71a47c0289d2e3e5f882">  352</a></span>&#160;    void (*<a class="code" href="structcelix__service__tracking__options.html#a8445caaae53d71a47c0289d2e3e5f882">remove</a>)(<span class="keywordtype">void</span> *handle, <span class="keywordtype">void</span> *svc) <a class="code" href="structcelix__service__tracking__options.html#a9272f1870b544b28329545b84f3425c2">OPTS_INIT</a>;</div>
-<div class="line"><a name="l00353"></a><span class="lineno">  353</span>&#160; </div>
-<div class="line"><a name="l00358"></a><span class="lineno"><a class="line" href="structcelix__service__tracking__options.html#af75c423757dcd16bf90d57a5726ac98a">  358</a></span>&#160;    void (*<a class="code" href="structcelix__service__tracking__options.html#af75c423757dcd16bf90d57a5726ac98a">removeWithProperties</a>)(<span class="keywordtype">void</span> *handle, <span class="keywordtype">void</span> *svc, <span class="keyword">const</span> celix_properties_t *props) <a class="code" href="structcelix__service__tracking__options.html#a9272f1870b544b28329545b84f3425c2">OPTS_INIT</a>;</div>
-<div class="line"><a name="l00359"></a><span class="lineno">  359</span>&#160; </div>
-<div class="line"><a name="l00364"></a><span class="lineno"><a class="line" href="structcelix__service__tracking__options.html#acf6dbcde52efbed145933e8a28f3f2e1">  364</a></span>&#160;    void (*<a class="code" href="structcelix__service__tracking__options.html#acf6dbcde52efbed145933e8a28f3f2e1">removeWithOwner</a>)(<span class="keywordtype">void</span> *handle, <span class="keywordtype">void</span> *svc, <span class="keyword">const</span> celix_properties_t *props, <span class="keyword">const</span> celix_bundle_t *svcOwner) <a class="code" href="structcelix__service__tracking__options.html#a9272f1870b544b28329545b84f3425c2">OPTS_INIT</a>;</div>
-<div class="line"><a name="l00365"></a><span class="lineno"><a class="line" href="celix__bundle__context_8h.html#a5c017c82bf57881c04f8c6f545b25a75">  365</a></span>&#160;} <a class="code" href="celix__bundle__context_8h.html#a5c017c82bf57881c04f8c6f545b25a75">celix_service_tracking_options_t</a>;</div>
-<div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160; </div>
-<div class="line"><a name="l00370"></a><span class="lineno">  370</span>&#160;<span class="preprocessor">#ifndef __cplusplus</span></div>
-<div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160;<span class="preprocessor">#define CELIX_EMPTY_SERVICE_TRACKING_OPTIONS { .filter.serviceName = NULL, \</span></div>
-<div class="line"><a name="l00372"></a><span class="lineno"><a class="line" href="celix__bundle__context_8h.html#ae86a28f8d19f6c1e2951172335e0e909">  372</a></span>&#160;<span class="preprocessor">    .filter.versionRange = NULL, \</span></div>
-<div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160;<span class="preprocessor">    .filter.filter = NULL, \</span></div>
-<div class="line"><a name="l00374"></a><span class="lineno">  374</span>&#160;<span class="preprocessor">    .filter.serviceLanguage = NULL, \</span></div>
-<div class="line"><a name="l00375"></a><span class="lineno">  375</span>&#160;<span class="preprocessor">    .filter.ignoreServiceLanguage = false, \</span></div>
-<div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160;<span class="preprocessor">    .callbackHandle = NULL, \</span></div>
-<div class="line"><a name="l00377"></a><span class="lineno">  377</span>&#160;<span class="preprocessor">    .set = NULL, \</span></div>
-<div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160;<span class="preprocessor">    .add = NULL, \</span></div>
-<div class="line"><a name="l00379"></a><span class="lineno">  379</span>&#160;<span class="preprocessor">    .remove = NULL, \</span></div>
-<div class="line"><a name="l00380"></a><span class="lineno">  380</span>&#160;<span class="preprocessor">    .setWithProperties = NULL, \</span></div>
-<div class="line"><a name="l00381"></a><span class="lineno">  381</span>&#160;<span class="preprocessor">    .addWithProperties = NULL, \</span></div>
-<div class="line"><a name="l00382"></a><span class="lineno">  382</span>&#160;<span class="preprocessor">    .removeWithProperties = NULL, \</span></div>
-<div class="line"><a name="l00383"></a><span class="lineno">  383</span>&#160;<span class="preprocessor">    .setWithOwner = NULL, \</span></div>
-<div class="line"><a name="l00384"></a><span class="lineno">  384</span>&#160;<span class="preprocessor">    .addWithOwner = NULL, \</span></div>
-<div class="line"><a name="l00385"></a><span class="lineno">  385</span>&#160;<span class="preprocessor">    .removeWithOwner = NULL}</span></div>
-<div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160; </div>
-<div class="line"><a name="l00396"></a><span class="lineno"><a class="line" href="celix__bundle__context_8h.html#a27980e1631d4575cc45c6c6ba38c6f71">  396</a></span>&#160;<span class="keywordtype">long</span> <a class="code" href="celix__bundle__context_8h.html#a27980e1631d4575cc45c6c6ba38c6f71">celix_bundleContext_trackServicesWithOptions</a>(celix_bundle_context_t *ctx, <span class="keyword">const</span> <a class="code" href="structcelix__service__tracking__options.html">celix_service_tracking_options_t</a> *opts);</div>
-<div class="line"><a name="l00397"></a><span class="lineno">  397</span>&#160; </div>
-<div class="line"><a name="l00405"></a><span class="lineno"><a class="line" href="celix__bundle__context_8h.html#a3b4906a9e6fb34fe3ca5118539a81fc7">  405</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="celix__bundle__context_8h.html#a3b4906a9e6fb34fe3ca5118539a81fc7">celix_bundleContext_stopTracker</a>(celix_bundle_context_t *ctx, <span class="keywordtype">long</span> trackerId);</div>
-<div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160; </div>
-<div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160; </div>
-<div class="line"><a name="l00408"></a><span class="lineno">  408</span>&#160; </div>
-<div class="line"><a name="l00409"></a><span class="lineno">  409</span>&#160; </div>
-<div class="line"><a name="l00410"></a><span class="lineno">  410</span>&#160; </div>
-<div class="line"><a name="l00411"></a><span class="lineno">  411</span>&#160; </div>
-<div class="line"><a name="l00429"></a><span class="lineno"><a class="line" href="celix__bundle__context_8h.html#aec6e03faece0f8247de19d8c1527406d">  429</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="celix__bundle__context_8h.html#aec6e03faece0f8247de19d8c1527406d">celix_bundleContext_useServiceWithId</a>(</div>
-<div class="line"><a name="l00430"></a><span class="lineno">  430</span>&#160;        celix_bundle_context_t *ctx,</div>
-<div class="line"><a name="l00431"></a><span class="lineno">  431</span>&#160;        <span class="keywordtype">long</span> serviceId,</div>
-<div class="line"><a name="l00432"></a><span class="lineno">  432</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">char</span> *serviceName <span class="comment">/*sanity check*/</span>,</div>
-<div class="line"><a name="l00433"></a><span class="lineno">  433</span>&#160;        <span class="keywordtype">void</span> *callbackHandle,</div>
-<div class="line"><a name="l00434"></a><span class="lineno">  434</span>&#160;        <span class="keywordtype">void</span> (*use)(<span class="keywordtype">void</span> *handle, <span class="keywordtype">void</span>* svc)</div>
-<div class="line"><a name="l00435"></a><span class="lineno">  435</span>&#160;);</div>
-<div class="line"><a name="l00436"></a><span class="lineno">  436</span>&#160; </div>
-<div class="line"><a name="l00453"></a><span class="lineno"><a class="line" href="celix__bundle__context_8h.html#ac36cdb8a06bb34f9371d7bb32953c69e">  453</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="celix__bundle__context_8h.html#ac36cdb8a06bb34f9371d7bb32953c69e">celix_bundleContext_useService</a>(</div>
-<div class="line"><a name="l00454"></a><span class="lineno">  454</span>&#160;        celix_bundle_context_t *ctx,</div>
-<div class="line"><a name="l00455"></a><span class="lineno">  455</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">char</span>* serviceName,</div>
-<div class="line"><a name="l00456"></a><span class="lineno">  456</span>&#160;        <span class="keywordtype">void</span> *callbackHandle,</div>
-<div class="line"><a name="l00457"></a><span class="lineno">  457</span>&#160;        <span class="keywordtype">void</span> (*use)(<span class="keywordtype">void</span> *handle, <span class="keywordtype">void</span> *svc)</div>
-<div class="line"><a name="l00458"></a><span class="lineno">  458</span>&#160;);</div>
-<div class="line"><a name="l00459"></a><span class="lineno">  459</span>&#160; </div>
-<div class="line"><a name="l00475"></a><span class="lineno"><a class="line" href="celix__bundle__context_8h.html#a39270507a3766afbfcc9420c7270d262">  475</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="celix__bundle__context_8h.html#a39270507a3766afbfcc9420c7270d262">celix_bundleContext_useServices</a>(</div>
-<div class="line"><a name="l00476"></a><span class="lineno">  476</span>&#160;        celix_bundle_context_t *ctx,</div>
-<div class="line"><a name="l00477"></a><span class="lineno">  477</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">char</span>* serviceName,</div>
-<div class="line"><a name="l00478"></a><span class="lineno">  478</span>&#160;        <span class="keywordtype">void</span> *callbackHandle,</div>
-<div class="line"><a name="l00479"></a><span class="lineno">  479</span>&#160;        <span class="keywordtype">void</span> (*use)(<span class="keywordtype">void</span> *handle, <span class="keywordtype">void</span> *svc)</div>
-<div class="line"><a name="l00480"></a><span class="lineno">  480</span>&#160;);</div>
-<div class="line"><a name="l00481"></a><span class="lineno">  481</span>&#160; </div>
-<div class="line"><a name="l00485"></a><span class="lineno"><a class="line" href="structcelix__service__use__options.html">  485</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structcelix__service__use__options.html">celix_service_use_options</a> {</div>
-<div class="line"><a name="l00489"></a><span class="lineno"><a class="line" href="structcelix__service__use__options.html#addad49a12179fff8b2dbf5313d70952f">  489</a></span>&#160;    <a class="code" href="structcelix__service__filter__options.html">celix_service_filter_options_t</a> filter <a class="code" href="structcelix__service__use__options.html#addad49a12179fff8b2dbf5313d70952f">OPTS_INIT</a>;</div>
-<div class="line"><a name="l00490"></a><span class="lineno">  490</span>&#160; </div>
-<div class="line"><a name="l00496"></a><span class="lineno"><a class="line" href="structcelix__service__use__options.html#ae24e3e35d7d92d5b41d58b53506bcca0">  496</a></span>&#160;     <span class="keywordtype">double</span> waitTimeoutInSeconds <a class="code" href="structcelix__service__use__options.html#ae24e3e35d7d92d5b41d58b53506bcca0">OPTS_INIT</a>;</div>
-<div class="line"><a name="l00497"></a><span class="lineno">  497</span>&#160; </div>
-<div class="line"><a name="l00501"></a><span class="lineno"><a class="line" href="structcelix__service__use__options.html#a31a9834b87a5c2c3ed6b8532cd85c653">  501</a></span>&#160;    <span class="keywordtype">void</span> *callbackHandle <a class="code" href="structcelix__service__use__options.html#a31a9834b87a5c2c3ed6b8532cd85c653">OPTS_INIT</a>;</div>
-<div class="line"><a name="l00502"></a><span class="lineno">  502</span>&#160; </div>
-<div class="line"><a name="l00510"></a><span class="lineno"><a class="line" href="structcelix__service__use__options.html#ac7efa464a614a3faf6970a4917c596a7">  510</a></span>&#160;    void (*<a class="code" href="structcelix__service__use__options.html#ac7efa464a614a3faf6970a4917c596a7">use</a>)(<span class="keywordtype">void</span> *handle, <span class="keywordtype">void</span> *svc) <a class="code" href="structcelix__service__use__options.html#addad49a12179fff8b2dbf5313d70952f">OPTS_INIT</a>;</div>
-<div class="line"><a name="l00511"></a><span class="lineno">  511</span>&#160; </div>
-<div class="line"><a name="l00516"></a><span class="lineno"><a class="line" href="structcelix__service__use__options.html#a8192eb7aa470178f78ea8c09c4574867">  516</a></span>&#160;    void (*<a class="code" href="structcelix__service__use__options.html#a8192eb7aa470178f78ea8c09c4574867">useWithProperties</a>)(<span class="keywordtype">void</span> *handle, <span class="keywordtype">void</span> *svc, <span class="keyword">const</span> celix_properties_t *props) <a class="code" href="structcelix__service__use__options.html#addad49a12179fff8b2dbf5313d70952f">OPTS_INIT</a>;</div>
-<div class="line"><a name="l00517"></a><span class="lineno">  517</span>&#160; </div>
-<div class="line"><a name="l00522"></a><span class="lineno"><a class="line" href="structcelix__service__use__options.html#a2ba3552bfc25500084bfaf2dbb0f46c5">  522</a></span>&#160;    void (*<a class="code" href="structcelix__service__use__options.html#a2ba3552bfc25500084bfaf2dbb0f46c5">useWithOwner</a>)(<span class="keywordtype">void</span> *handle, <span class="keywordtype">void</span> *svc, <span class="keyword">const</span> celix_properties_t *props, <span class="keyword">const</span> celix_bundle_t *svcOwner) <a class="code" href="structcelix__service__use__options.html#addad49a12179fff8b2dbf5313d70952f">OPTS_INIT</a>;</div>
-<div class="line"><a name="l00523"></a><span class="lineno"><a class="line" href="celix__bundle__context_8h.html#ae2da28d23f5246c20c6b675b80e7d130">  523</a></span>&#160;} <a class="code" href="celix__bundle__context_8h.html#ae2da28d23f5246c20c6b675b80e7d130">celix_service_use_options_t</a>;</div>
-<div class="line"><a name="l00524"></a><span class="lineno">  524</span>&#160; </div>
-<div class="line"><a name="l00528"></a><span class="lineno">  528</span>&#160;<span class="preprocessor">#ifndef __cplusplus</span></div>
-<div class="line"><a name="l00529"></a><span class="lineno">  529</span>&#160;<span class="preprocessor">#define CELIX_EMPTY_SERVICE_USE_OPTIONS {.filter.serviceName = NULL, \</span></div>
-<div class="line"><a name="l00530"></a><span class="lineno"><a class="line" href="celix__bundle__context_8h.html#a6024cf4864950551fa9df01806a69865">  530</a></span>&#160;<span class="preprocessor">    .filter.versionRange = NULL, \</span></div>
-<div class="line"><a name="l00531"></a><span class="lineno">  531</span>&#160;<span class="preprocessor">    .filter.filter = NULL, \</span></div>
-<div class="line"><a name="l00532"></a><span class="lineno">  532</span>&#160;<span class="preprocessor">    .filter.serviceLanguage = NULL, \</span></div>
-<div class="line"><a name="l00533"></a><span class="lineno">  533</span>&#160;<span class="preprocessor">    .waitTimeoutInSeconds = 0.0F, \</span></div>
-<div class="line"><a name="l00534"></a><span class="lineno">  534</span>&#160;<span class="preprocessor">    .callbackHandle = NULL, \</span></div>
-<div class="line"><a name="l00535"></a><span class="lineno">  535</span>&#160;<span class="preprocessor">    .use = NULL, \</span></div>
-<div class="line"><a name="l00536"></a><span class="lineno">  536</span>&#160;<span class="preprocessor">    .useWithProperties = NULL, \</span></div>
-<div class="line"><a name="l00537"></a><span class="lineno">  537</span>&#160;<span class="preprocessor">    .useWithOwner = NULL}</span></div>
-<div class="line"><a name="l00538"></a><span class="lineno">  538</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00539"></a><span class="lineno">  539</span>&#160; </div>
-<div class="line"><a name="l00554"></a><span class="lineno"><a class="line" href="celix__bundle__context_8h.html#a1e8a78de5f799d303231385b51085055">  554</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="celix__bundle__context_8h.html#a1e8a78de5f799d303231385b51085055">celix_bundleContext_useServiceWithOptions</a>(</div>
-<div class="line"><a name="l00555"></a><span class="lineno">  555</span>&#160;        celix_bundle_context_t *ctx,</div>
-<div class="line"><a name="l00556"></a><span class="lineno">  556</span>&#160;        <span class="keyword">const</span> <a class="code" href="structcelix__service__use__options.html">celix_service_use_options_t</a> *opts);</div>
-<div class="line"><a name="l00557"></a><span class="lineno">  557</span>&#160; </div>
-<div class="line"><a name="l00558"></a><span class="lineno">  558</span>&#160; </div>
-<div class="line"><a name="l00572"></a><span class="lineno"><a class="line" href="celix__bundle__context_8h.html#ad1512520baedecad54a7bc307e0a6c7b">  572</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="celix__bundle__context_8h.html#ad1512520baedecad54a7bc307e0a6c7b">celix_bundleContext_useServicesWithOptions</a>(</div>
-<div class="line"><a name="l00573"></a><span class="lineno">  573</span>&#160;        celix_bundle_context_t *ctx,</div>
-<div class="line"><a name="l00574"></a><span class="lineno">  574</span>&#160;        <span class="keyword">const</span> <a class="code" href="structcelix__service__use__options.html">celix_service_use_options_t</a> *opts);</div>
-<div class="line"><a name="l00575"></a><span class="lineno">  575</span>&#160; </div>
-<div class="line"><a name="l00576"></a><span class="lineno">  576</span>&#160; </div>
-<div class="line"><a name="l00577"></a><span class="lineno">  577</span>&#160; </div>
-<div class="line"><a name="l00578"></a><span class="lineno">  578</span>&#160; </div>
-<div class="line"><a name="l00586"></a><span class="lineno"><a class="line" href="celix__bundle__context_8h.html#afde9ed40231b5c3bbba19559e68e77f6">  586</a></span>&#160;celix_array_list_t* <a class="code" href="celix__bundle__context_8h.html#afde9ed40231b5c3bbba19559e68e77f6">celix_bundleContext_listBundles</a>(celix_bundle_context_t *ctx);</div>
-<div class="line"><a name="l00587"></a><span class="lineno">  587</span>&#160; </div>
-<div class="line"><a name="l00594"></a><span class="lineno"><a class="line" href="celix__bundle__context_8h.html#ac7151f08ded1d7571867a44abe9f3531">  594</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="celix__bundle__context_8h.html#ac7151f08ded1d7571867a44abe9f3531">celix_bundleContext_isBundleInstalled</a>(celix_bundle_context_t *ctx, <span class="keywordtype">long</span> bndId);</div>
-<div class="line"><a name="l00595"></a><span class="lineno">  595</span>&#160; </div>
-<div class="line"><a name="l00596"></a><span class="lineno">  596</span>&#160; </div>
-<div class="line"><a name="l00606"></a><span class="lineno"><a class="line" href="celix__bundle__context_8h.html#a727ee2600c19ce2fd42b3b80b695c7f6">  606</a></span>&#160;<span class="keywordtype">long</span> <a class="code" href="celix__bundle__context_8h.html#a727ee2600c19ce2fd42b3b80b695c7f6">celix_bundleContext_installBundle</a>(celix_bundle_context_t *ctx, <span class="keyword">const</span> <span class="keywordtype">char</span> *bundleLoc, <span class="keywordtype">bool</span> autoStart);</div>
-<div class="line"><a name="l00607"></a><span class="lineno">  607</span>&#160; </div>
-<div class="line"><a name="l00616"></a><span class="lineno"><a class="line" href="celix__bundle__context_8h.html#a098adf1e9f65deb166110008bd4314dd">  616</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="celix__bundle__context_8h.html#a098adf1e9f65deb166110008bd4314dd">celix_bundleContext_uninstallBundle</a>(celix_bundle_context_t *ctx, <span class="keywordtype">long</span> bundleId);</div>
-<div class="line"><a name="l00617"></a><span class="lineno">  617</span>&#160; </div>
-<div class="line"><a name="l00626"></a><span class="lineno"><a class="line" href="celix__bundle__context_8h.html#ad6e1553f9507d04c7a0ad91d067d479b">  626</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="celix__bundle__context_8h.html#ad6e1553f9507d04c7a0ad91d067d479b">celix_bundleContext_stopBundle</a>(celix_bundle_context_t *ctx, <span class="keywordtype">long</span> bundleId);</div>
-<div class="line"><a name="l00627"></a><span class="lineno">  627</span>&#160; </div>
-<div class="line"><a name="l00636"></a><span class="lineno"><a class="line" href="celix__bundle__context_8h.html#a8df4bfbc27c99736c0209ef130cff98f">  636</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="celix__bundle__context_8h.html#a8df4bfbc27c99736c0209ef130cff98f">celix_bundleContext_startBundle</a>(celix_bundle_context_t *ctx, <span class="keywordtype">long</span> bundleId);</div>
-<div class="line"><a name="l00637"></a><span class="lineno">  637</span>&#160; </div>
-<div class="line"><a name="l00648"></a><span class="lineno"><a class="line" href="celix__bundle__context_8h.html#a3daf88ae43bb01e104f506c3a2dc8351">  648</a></span>&#160;<span class="keywordtype">long</span> <a class="code" href="celix__bundle__context_8h.html#a3daf88ae43bb01e104f506c3a2dc8351">celix_bundleContext_trackBundles</a>(</div>
-<div class="line"><a name="l00649"></a><span class="lineno">  649</span>&#160;        celix_bundle_context_t* ctx,</div>
-<div class="line"><a name="l00650"></a><span class="lineno">  650</span>&#160;        <span class="keywordtype">void</span>* callbackHandle,</div>
-<div class="line"><a name="l00651"></a><span class="lineno">  651</span>&#160;        <span class="keywordtype">void</span> (*onStarted)(<span class="keywordtype">void</span>* handle, <span class="keyword">const</span> celix_bundle_t *bundle),</div>
-<div class="line"><a name="l00652"></a><span class="lineno">  652</span>&#160;        <span class="keywordtype">void</span> (*onStopped)(<span class="keywordtype">void</span> *handle, <span class="keyword">const</span> celix_bundle_t *bundle)</div>
-<div class="line"><a name="l00653"></a><span class="lineno">  653</span>&#160;);</div>
-<div class="line"><a name="l00654"></a><span class="lineno">  654</span>&#160; </div>
-<div class="line"><a name="l00655"></a><span class="lineno">  655</span>&#160; </div>
-<div class="line"><a name="l00659"></a><span class="lineno"><a class="line" href="structcelix__bundle__tracker__options.html">  659</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structcelix__bundle__tracker__options.html">celix_bundle_tracker_options</a> {</div>
-<div class="line"><a name="l00663"></a><span class="lineno"><a class="line" href="structcelix__bundle__tracker__options.html#a80ebdcbb840fa97d81e1250fba2d20af">  663</a></span>&#160;    <span class="keywordtype">void</span>* callbackHandle <a class="code" href="structcelix__bundle__tracker__options.html#a80ebdcbb840fa97d81e1250fba2d20af">OPTS_INIT</a>;</div>
-<div class="line"><a name="l00664"></a><span class="lineno">  664</span>&#160; </div>
-<div class="line"><a name="l00671"></a><span class="lineno"><a class="line" href="structcelix__bundle__tracker__options.html#a044b58b6aa64edfd3f49921fdf6756bb">  671</a></span>&#160;    void (*<a class="code" href="structcelix__bundle__tracker__options.html#a044b58b6aa64edfd3f49921fdf6756bb">onStarted</a>)(<span class="keywordtype">void</span> *handle, <span class="keyword">const</span> celix_bundle_t *bundle) <a class="code" href="structcelix__bundle__tracker__options.html#a80ebdcbb840fa97d81e1250fba2d20af">OPTS_INIT</a>; <span class="comment">//highest ranking</span></div>
-<div class="line"><a name="l00672"></a><span class="lineno">  672</span>&#160; </div>
-<div class="line"><a name="l00679"></a><span class="lineno"><a class="line" href="structcelix__bundle__tracker__options.html#aeac272edbc00cb62f7071df0699dd492">  679</a></span>&#160;    void (*<a class="code" href="structcelix__bundle__tracker__options.html#aeac272edbc00cb62f7071df0699dd492">onStopped</a>)(<span class="keywordtype">void</span> *handle, <span class="keyword">const</span> celix_bundle_t *bundle) <a class="code" href="structcelix__bundle__tracker__options.html#a80ebdcbb840fa97d81e1250fba2d20af">OPTS_INIT</a>;</div>
-<div class="line"><a name="l00680"></a><span class="lineno">  680</span>&#160; </div>
-<div class="line"><a name="l00681"></a><span class="lineno">  681</span>&#160;    <span class="comment">//TODO callback for on installed, resolved, uninstalled ??</span></div>
-<div class="line"><a name="l00682"></a><span class="lineno">  682</span>&#160; </div>
-<div class="line"><a name="l00688"></a><span class="lineno"><a class="line" href="structcelix__bundle__tracker__options.html#aae47b1896e9b058f9a43d26246241398">  688</a></span>&#160;    void (*<a class="code" href="structcelix__bundle__tracker__options.html#aae47b1896e9b058f9a43d26246241398">onBundleEvent</a>)(<span class="keywordtype">void</span> *handle, <span class="keyword">const</span> celix_bundle_event_t *event) <a class="code" href="structcelix__bundle__tracker__options.html#a80ebdcbb840fa97d81e1250fba2d20af">OPTS_INIT</a>;</div>
-<div class="line"><a name="l00689"></a><span class="lineno">  689</span>&#160; </div>
-<div class="line"><a name="l00694"></a><span class="lineno"><a class="line" href="structcelix__bundle__tracker__options.html#a54a11feb78bd514c95f7c9aecaa7f212">  694</a></span>&#160;    <span class="keywordtype">bool</span> includeFrameworkBundle <a class="code" href="structcelix__bundle__tracker__options.html#a54a11feb78bd514c95f7c9aecaa7f212">OPTS_INIT</a>;</div>
-<div class="line"><a name="l00695"></a><span class="lineno"><a class="line" href="celix__bundle__context_8h.html#a1b011b5fe49a718345698eeb359d0c3a">  695</a></span>&#160;} <a class="code" href="celix__bundle__context_8h.html#a1b011b5fe49a718345698eeb359d0c3a">celix_bundle_tracking_options_t</a>;</div>
-<div class="line"><a name="l00696"></a><span class="lineno">  696</span>&#160; </div>
-<div class="line"><a name="l00700"></a><span class="lineno">  700</span>&#160;<span class="preprocessor">#ifndef __cplusplus</span></div>
-<div class="line"><a name="l00701"></a><span class="lineno">  701</span>&#160;<span class="preprocessor">#define CELIX_EMPTY_BUNDLE_TRACKING_OPTIONS {.callbackHandle = NULL, .onStarted = NULL, .onStopped = NULL, .onBundleEvent = NULL}</span></div>
-<div class="line"><a name="l00702"></a><span class="lineno"><a class="line" href="celix__bundle__context_8h.html#a3c68ea824e7268d26852785ea92c777c">  702</a></span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00703"></a><span class="lineno">  703</span>&#160; </div>
-<div class="line"><a name="l00713"></a><span class="lineno"><a class="line" href="celix__bundle__context_8h.html#aa603acb136351b4135ce6a8c0b1fda71">  713</a></span>&#160;<span class="keywordtype">long</span> <a class="code" href="celix__bundle__context_8h.html#aa603acb136351b4135ce6a8c0b1fda71">celix_bundleContext_trackBundlesWithOptions</a>(</div>
-<div class="line"><a name="l00714"></a><span class="lineno">  714</span>&#160;        celix_bundle_context_t* ctx,</div>
-<div class="line"><a name="l00715"></a><span class="lineno">  715</span>&#160;        <span class="keyword">const</span> <a class="code" href="structcelix__bundle__tracker__options.html">celix_bundle_tracking_options_t</a> *opts</div>
-<div class="line"><a name="l00716"></a><span class="lineno">  716</span>&#160;);</div>
-<div class="line"><a name="l00717"></a><span class="lineno">  717</span>&#160; </div>
-<div class="line"><a name="l00729"></a><span class="lineno"><a class="line" href="celix__bundle__context_8h.html#abb3cedf5ffa7a326cef2af64a1094635">  729</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="celix__bundle__context_8h.html#abb3cedf5ffa7a326cef2af64a1094635">celix_bundleContext_useBundle</a>(</div>
-<div class="line"><a name="l00730"></a><span class="lineno">  730</span>&#160;        celix_bundle_context_t *ctx,</div>
-<div class="line"><a name="l00731"></a><span class="lineno">  731</span>&#160;        <span class="keywordtype">long</span> bundleId,</div>
-<div class="line"><a name="l00732"></a><span class="lineno">  732</span>&#160;        <span class="keywordtype">void</span> *callbackHandle,</div>
-<div class="line"><a name="l00733"></a><span class="lineno">  733</span>&#160;        <span class="keywordtype">void</span> (*use)(<span class="keywordtype">void</span> *handle, <span class="keyword">const</span> celix_bundle_t *bundle)</div>
-<div class="line"><a name="l00734"></a><span class="lineno">  734</span>&#160;);</div>
-<div class="line"><a name="l00735"></a><span class="lineno">  735</span>&#160; </div>
-<div class="line"><a name="l00745"></a><span class="lineno"><a class="line" href="celix__bundle__context_8h.html#a03a6d1c49c91c212ad7be115e1035840">  745</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="celix__bundle__context_8h.html#a03a6d1c49c91c212ad7be115e1035840">celix_bundleContext_useBundles</a>(</div>
-<div class="line"><a name="l00746"></a><span class="lineno">  746</span>&#160;        celix_bundle_context_t *ctx,</div>
-<div class="line"><a name="l00747"></a><span class="lineno">  747</span>&#160;        <span class="keywordtype">void</span> *callbackHandle,</div>
-<div class="line"><a name="l00748"></a><span class="lineno">  748</span>&#160;        <span class="keywordtype">void</span> (*use)(<span class="keywordtype">void</span> *handle, <span class="keyword">const</span> celix_bundle_t *bundle)</div>
-<div class="line"><a name="l00749"></a><span class="lineno">  749</span>&#160;);</div>
-<div class="line"><a name="l00750"></a><span class="lineno">  750</span>&#160; </div>
-<div class="line"><a name="l00751"></a><span class="lineno">  751</span>&#160; </div>
-<div class="line"><a name="l00752"></a><span class="lineno">  752</span>&#160; </div>
-<div class="line"><a name="l00753"></a><span class="lineno">  753</span>&#160;<span class="comment">//TODO add useBundleWithOptions (e.g. which state)</span></div>
-<div class="line"><a name="l00754"></a><span class="lineno">  754</span>&#160;<span class="comment">//TODO findBundles</span></div>
-<div class="line"><a name="l00755"></a><span class="lineno">  755</span>&#160; </div>
-<div class="line"><a name="l00759"></a><span class="lineno"><a class="line" href="structcelix__service__tracker__info.html">  759</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structcelix__service__tracker__info.html">celix_service_tracker_info</a> {</div>
-<div class="line"><a name="l00763"></a><span class="lineno"><a class="line" href="structcelix__service__tracker__info.html#a3cd52ce46875995a973fb6b65967d7e4">  763</a></span>&#160;    celix_filter_t *<a class="code" href="structcelix__service__tracker__info.html#a3cd52ce46875995a973fb6b65967d7e4">filter</a>;</div>
-<div class="line"><a name="l00764"></a><span class="lineno">  764</span>&#160; </div>
-<div class="line"><a name="l00768"></a><span class="lineno"><a class="line" href="structcelix__service__tracker__info.html#a5f695cf6d8cd69e0c419298ded657546">  768</a></span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structcelix__service__tracker__info.html#a5f695cf6d8cd69e0c419298ded657546">serviceName</a>;</div>
-<div class="line"><a name="l00769"></a><span class="lineno">  769</span>&#160; </div>
-<div class="line"><a name="l00773"></a><span class="lineno"><a class="line" href="structcelix__service__tracker__info.html#a5baca60295d208fe0581a564c3627f65">  773</a></span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structcelix__service__tracker__info.html#a5baca60295d208fe0581a564c3627f65">serviceLanguage</a>;</div>
-<div class="line"><a name="l00774"></a><span class="lineno">  774</span>&#160; </div>
-<div class="line"><a name="l00778"></a><span class="lineno"><a class="line" href="structcelix__service__tracker__info.html#a6978e4b5f2fcc2d42a42f0e7ed3bb7c8">  778</a></span>&#160;    <span class="keywordtype">long</span> <a class="code" href="structcelix__service__tracker__info.html#a6978e4b5f2fcc2d42a42f0e7ed3bb7c8">bundleId</a>;</div>
-<div class="line"><a name="l00779"></a><span class="lineno"><a class="line" href="celix__bundle__context_8h.html#aea7e7fcd4022db2f9f4123dd3b7a794a">  779</a></span>&#160;} <a class="code" href="celix__bundle__context_8h.html#aea7e7fcd4022db2f9f4123dd3b7a794a">celix_service_tracker_info_t</a>;</div>
-<div class="line"><a name="l00780"></a><span class="lineno">  780</span>&#160; </div>
-<div class="line"><a name="l00798"></a><span class="lineno"><a class="line" href="celix__bundle__context_8h.html#a80f61dd38b9da8447cd4f931779eaf16">  798</a></span>&#160;<span class="keywordtype">long</span> <a class="code" href="celix__bundle__context_8h.html#a80f61dd38b9da8447cd4f931779eaf16">celix_bundleContext_trackServiceTrackers</a>(</div>
-<div class="line"><a name="l00799"></a><span class="lineno">  799</span>&#160;        celix_bundle_context_t *ctx,</div>
-<div class="line"><a name="l00800"></a><span class="lineno">  800</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">char</span> *serviceName,</div>
-<div class="line"><a name="l00801"></a><span class="lineno">  801</span>&#160;        <span class="keywordtype">void</span> *callbackHandle,</div>
-<div class="line"><a name="l00802"></a><span class="lineno">  802</span>&#160;        <span class="keywordtype">void</span> (*trackerAdd)(<span class="keywordtype">void</span> *handle, <span class="keyword">const</span> <a class="code" href="structcelix__service__tracker__info.html">celix_service_tracker_info_t</a> *info),</div>
-<div class="line"><a name="l00803"></a><span class="lineno">  803</span>&#160;        <span class="keywordtype">void</span> (*trackerRemove)(<span class="keywordtype">void</span> *handle, <span class="keyword">const</span> <a class="code" href="structcelix__service__tracker__info.html">celix_service_tracker_info_t</a> *info));</div>
-<div class="line"><a name="l00804"></a><span class="lineno">  804</span>&#160; </div>
-<div class="line"><a name="l00810"></a><span class="lineno"><a class="line" href="celix__bundle__context_8h.html#ac36566dcc477bb2c123e5124527090c1">  810</a></span>&#160;celix_dependency_manager_t* <a class="code" href="celix__bundle__context_8h.html#ac36566dcc477bb2c123e5124527090c1">celix_bundleContext_getDependencyManager</a>(celix_bundle_context_t *ctx);</div>
-<div class="line"><a name="l00811"></a><span class="lineno">  811</span>&#160; </div>
-<div class="line"><a name="l00812"></a><span class="lineno">  812</span>&#160; </div>
-<div class="line"><a name="l00816"></a><span class="lineno"><a class="line" href="celix__bundle__context_8h.html#a3f7f55d1587f421f27518574a525ff63">  816</a></span>&#160;celix_bundle_t* <a class="code" href="celix__bundle__context_8h.html#a3f7f55d1587f421f27518574a525ff63">celix_bundleContext_getBundle</a>(celix_bundle_context_t *ctx);</div>
-<div class="line"><a name="l00817"></a><span class="lineno">  817</span>&#160; </div>
-<div class="line"><a name="l00818"></a><span class="lineno">  818</span>&#160; </div>
-<div class="line"><a name="l00825"></a><span class="lineno"><a class="line" href="celix__bundle__context_8h.html#aa121100c5f5d03c0ccdda9c87286f7db">  825</a></span>&#160;<span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="celix__bundle__context_8h.html#aa121100c5f5d03c0ccdda9c87286f7db">celix_bundleContext_getProperty</a>(celix_bundle_context_t *ctx, <span class="keyword">const</span> <span class="keywordtype">char</span> *key, <span class="keyword">const</span> <span class="keywordtype">char</span> *defaultVal);</div>
-<div class="line"><a name="l00826"></a><span class="lineno">  826</span>&#160; </div>
-<div class="line"><a name="l00835"></a><span class="lineno"><a class="line" href="celix__bundle__context_8h.html#a0ea27b2a81018583a464a10932cfae62">  835</a></span>&#160;<span class="keywordtype">long</span> <a class="code" href="celix__bundle__context_8h.html#a0ea27b2a81018583a464a10932cfae62">celix_bundleContext_getPropertyAsLong</a>(celix_bundle_context_t *ctx, <span class="keyword">const</span> <span class="keywordtype">char</span> *key, <span class="keywordtype">long</span> defaultValue);</div>
-<div class="line"><a name="l00836"></a><span class="lineno">  836</span>&#160; </div>
-<div class="line"><a name="l00845"></a><span class="lineno"><a class="line" href="celix__bundle__context_8h.html#a92be7dd7985a890c4b92bcb8497e8b9f">  845</a></span>&#160;<span class="keywordtype">double</span> <a class="code" href="celix__bundle__context_8h.html#a92be7dd7985a890c4b92bcb8497e8b9f">celix_bundleContext_getPropertyAsDouble</a>(celix_bundle_context_t *ctx, <span class="keyword">const</span> <span class="keywordtype">char</span> *key, <span class="keywordtype">double</span> defaultValue);</div>
-<div class="line"><a name="l00846"></a><span class="lineno">  846</span>&#160; </div>
-<div class="line"><a name="l00855"></a><span class="lineno"><a class="line" href="celix__bundle__context_8h.html#a41e6642ba1a739b5768911fa41e5d170">  855</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="celix__bundle__context_8h.html#a41e6642ba1a739b5768911fa41e5d170">celix_bundleContext_getPropertyAsBool</a>(celix_bundle_context_t *ctx, <span class="keyword">const</span> <span class="keywordtype">char</span> *key, <span class="keywordtype">bool</span> defaultValue);</div>
-<div class="line"><a name="l00856"></a><span class="lineno">  856</span>&#160; </div>
-<div class="line"><a name="l00857"></a><span class="lineno">  857</span>&#160;<span class="comment">//TODO getPropertyAs for int, uint, ulong, bool, etc</span></div>
-<div class="line"><a name="l00858"></a><span class="lineno">  858</span>&#160; </div>
-<div class="line"><a name="l00859"></a><span class="lineno">  859</span>&#160;<span class="preprocessor">#undef OPTS_INIT</span></div>
-<div class="line"><a name="l00860"></a><span class="lineno">  860</span>&#160; </div>
-<div class="line"><a name="l00861"></a><span class="lineno">  861</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l00862"></a><span class="lineno">  862</span>&#160;}</div>
-<div class="line"><a name="l00863"></a><span class="lineno">  863</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00864"></a><span class="lineno">  864</span>&#160; </div>
-<div class="line"><a name="l00865"></a><span class="lineno">  865</span>&#160;<span class="preprocessor">#endif //CELIX_BUNDLE_CONTEXT_H_</span></div>
-</div><!-- fragment --></div><!-- contents -->
-<div class="ttc" id="astructcelix__service__registration__options_html_af9b1a622c06a3053ed3917649241fc23"><div class="ttname"><a href="structcelix__service__registration__options.html#af9b1a622c06a3053ed3917649241fc23">celix_service_registration_options::OPTS_INIT</a></div><div class="ttdeci">const char *serviceVersion OPTS_INIT</div><div class="ttdef"><b>Definition:</b> celix_bundle_context.h:128</div></div>
-<div class="ttc" id="astructcelix__service__filter__options_html_a65bea04c378ef46d841046ffbb2f805c"><div class="ttname"><a href="structcelix__service__filter__options.html#a65bea04c378ef46d841046ffbb2f805c">celix_service_filter_options::OPTS_INIT</a></div><div class="ttdeci">const char *versionRange OPTS_INIT</div><div class="ttdef"><b>Definition:</b> celix_bundle_context.h:204</div></div>
-<div class="ttc" id="acelix__bundle__context_8h_html_a80f61dd38b9da8447cd4f931779eaf16"><div class="ttname"><a href="celix__bundle__context_8h.html#a80f61dd38b9da8447cd4f931779eaf16">celix_bundleContext_trackServiceTrackers</a></div><div class="ttdeci">long celix_bundleContext_trackServiceTrackers(celix_bundle_context_t *ctx, const char *serviceName, void *callbackHandle, void(*trackerAdd)(void *handle, const celix_service_tracker_info_t *info), void(*trackerRemove)(void *handle, const celix_service_tracker_info_t *info))</div></div>
-<div class="ttc" id="astructcelix__service__filter__options_html_ac15f30b81e60826290a29fb12da6684a"><div class="ttname"><a href="structcelix__service__filter__options.html#ac15f30b81e60826290a29fb12da6684a">celix_service_filter_options::OPTS_INIT</a></div><div class="ttdeci">const char *filter OPTS_INIT</div><div class="ttdef"><b>Definition:</b> celix_bundle_context.h:210</div></div>
-<div class="ttc" id="astructcelix__bundle__tracker__options_html_a044b58b6aa64edfd3f49921fdf6756bb"><div class="ttname"><a href="structcelix__bundle__tracker__options.html#a044b58b6aa64edfd3f49921fdf6756bb">celix_bundle_tracker_options::onStarted</a></div><div class="ttdeci">void(* onStarted)(void *handle, const celix_bundle_t *bundle) OPTS_INIT</div><div class="ttdef"><b>Definition:</b> celix_bundle_context.h:671</div></div>
-<div class="ttc" id="acelix__bundle__context_8h_html_a612409acf5453dbc370d93b784153d51"><div class="ttname"><a href="celix__bundle__context_8h.html#a612409acf5453dbc370d93b784153d51">celix_bundleContext_trackService</a></div><div class="ttdeci">long celix_bundleContext_trackService(celix_bundle_context_t *ctx, const char *serviceName, void *callbackHandle, void(*set)(void *handle, void *svc))</div></div>
-<div class="ttc" id="astructcelix__service__registration__options_html"><div class="ttname"><a href="structcelix__service__registration__options.html">celix_service_registration_options</a></div><div class="ttdef"><b>Definition:</b> celix_bundle_context.h:75</div></div>
-<div class="ttc" id="astructcelix__service__registration__options_html_a94eb8e6e1af0cca435d99aa5d2457fca"><div class="ttname"><a href="structcelix__service__registration__options.html#a94eb8e6e1af0cca435d99aa5d2457fca">celix_service_registration_options::OPTS_INIT</a></div><div class="ttdeci">celix_service_factory_t *factory OPTS_INIT</div><div class="ttdef"><b>Definition:</b> celix_bundle_context.h:99</div></div>
-<div class="ttc" id="acelix__bundle__context_8h_html_a3daf88ae43bb01e104f506c3a2dc8351"><div class="ttname"><a href="celix__bundle__context_8h.html#a3daf88ae43bb01e104f506c3a2dc8351">celix_bundleContext_trackBundles</a></div><div class="ttdeci">long celix_bundleContext_trackBundles(celix_bundle_context_t *ctx, void *callbackHandle, void(*onStarted)(void *handle, const celix_bundle_t *bundle), void(*onStopped)(void *handle, const celix_bundle_t *bundle))</div></div>
-<div class="ttc" id="acelix__bundle__context_8h_html_ac36cdb8a06bb34f9371d7bb32953c69e"><div class="ttname"><a href="celix__bundle__context_8h.html#ac36cdb8a06bb34f9371d7bb32953c69e">celix_bundleContext_useService</a></div><div class="ttdeci">bool celix_bundleContext_useService(celix_bundle_context_t *ctx, const char *serviceName, void *callbackHandle, void(*use)(void *handle, void *svc))</div></div>
-<div class="ttc" id="acelix__bundle__context_8h_html_aa121100c5f5d03c0ccdda9c87286f7db"><div class="ttname"><a href="celix__bundle__context_8h.html#aa121100c5f5d03c0ccdda9c87286f7db">celix_bundleContext_getProperty</a></div><div class="ttdeci">const char * celix_bundleContext_getProperty(celix_bundle_context_t *ctx, const char *key, const char *defaultVal)</div></div>
-<div class="ttc" id="astructcelix__bundle__tracker__options_html_aae47b1896e9b058f9a43d26246241398"><div class="ttname"><a href="structcelix__bundle__tracker__options.html#aae47b1896e9b058f9a43d26246241398">celix_bundle_tracker_options::onBundleEvent</a></div><div class="ttdeci">void(* onBundleEvent)(void *handle, const celix_bundle_event_t *event) OPTS_INIT</div><div class="ttdef"><b>Definition:</b> celix_bundle_context.h:688</div></div>
-<div class="ttc" id="acelix__bundle__context_8h_html_a43e3bfd38ef956ffe861065e698a72e4"><div class="ttname"><a href="celix__bundle__context_8h.html#a43e3bfd38ef956ffe861065e698a72e4">celix_bundleContext_trackServices</a></div><div class="ttdeci">long celix_bundleContext_trackServices(celix_bundle_context_t *ctx, const char *serviceName, void *callbackHandle, void(*add)(void *handle, void *svc), void(*remove)(void *handle, void *svc))</div></div>
-<div class="ttc" id="astructcelix__service__registration__options_html_ae44ee7cc15427e406a67b0396201700c"><div class="ttname"><a href="structcelix__service__registration__options.html#ae44ee7cc15427e406a67b0396201700c">celix_service_registration_options::OPTS_INIT</a></div><div class="ttdeci">const char *serviceLanguage OPTS_INIT</div><div class="ttdef"><b>Definition:</b> celix_bundle_context.h:119</div></div>
-<div class="ttc" id="astructcelix__service__tracking__options_html_a2fcaf1b7274379695cc9a4bb1c719d86"><div class="ttname"><a href="structcelix__service__tracking__options.html#a2fcaf1b7274379695cc9a4bb1c719d86">celix_service_tracking_options::OPTS_INIT</a></div><div class="ttdeci">void *callbackHandle OPTS_INIT</div><div class="ttdef"><b>Definition:</b> celix_bundle_context.h:301</div></div>
-<div class="ttc" id="acelix__bundle__context_8h_html_a27980e1631d4575cc45c6c6ba38c6f71"><div class="ttname"><a href="celix__bundle__context_8h.html#a27980e1631d4575cc45c6c6ba38c6f71">celix_bundleContext_trackServicesWithOptions</a></div><div class="ttdeci">long celix_bundleContext_trackServicesWithOptions(celix_bundle_context_t *ctx, const celix_service_tracking_options_t *opts)</div></div>
-<div class="ttc" id="astructcelix__service__tracking__options_html_aa9e8b9cae7ea59ddb796a6bc904f57da"><div class="ttname"><a href="structcelix__service__tracking__options.html#aa9e8b9cae7ea59ddb796a6bc904f57da">celix_service_tracking_options::set</a></div><div class="ttdeci">void(* set)(void *handle, void *svc) OPTS_INIT</div><div class="ttdef"><b>Definition:</b> celix_bundle_context.h:309</div></div>
-<div class="ttc" id="acelix__bundle__context_8h_html_a3f7f55d1587f421f27518574a525ff63"><div class="ttname"><a href="celix__bundle__context_8h.html#a3f7f55d1587f421f27518574a525ff63">celix_bundleContext_getBundle</a></div><div class="ttdeci">celix_bundle_t * celix_bundleContext_getBundle(celix_bundle_context_t *ctx)</div></div>
-<div class="ttc" id="astructcelix__bundle__tracker__options_html"><div class="ttname"><a href="structcelix__bundle__tracker__options.html">celix_bundle_tracker_options</a></div><div class="ttdef"><b>Definition:</b> celix_bundle_context.h:659</div></div>
-<div class="ttc" id="astructcelix__service__registration__options_html_a9c24c1179305b68840149449b1fa6d87"><div class="ttname"><a href="structcelix__service__registration__options.html#a9c24c1179305b68840149449b1fa6d87">celix_service_registration_options::OPTS_INIT</a></div><div class="ttdeci">void *svc OPTS_INIT</div><div class="ttdef"><b>Definition:</b> celix_bundle_context.h:83</div></div>
-<div class="ttc" id="astructcelix__service__registration__options_html_a6e1274cc3b190b3dc05c7c145f57d407"><div class="ttname"><a href="structcelix__service__registration__options.html#a6e1274cc3b190b3dc05c7c145f57d407">celix_service_registration_options::OPTS_INIT</a></div><div class="ttdeci">celix_properties_t *properties OPTS_INIT</div><div class="ttdef"><b>Definition:</b> celix_bundle_context.h:114</div></div>
-<div class="ttc" id="acelix__bundle__context_8h_html_aacaeb063a21a237ac515607d689eebb8"><div class="ttname"><a href="celix__bundle__context_8h.html#aacaeb063a21a237ac515607d689eebb8">celix_service_registration_options_t</a></div><div class="ttdeci">struct celix_service_registration_options celix_service_registration_options_t</div></div>
-<div class="ttc" id="acelix__bundle__context_8h_html_a8cfbbb7e17cb4a825a525c547f72b4b0"><div class="ttname"><a href="celix__bundle__context_8h.html#a8cfbbb7e17cb4a825a525c547f72b4b0">celix_bundleContext_findServiceWithOptions</a></div><div class="ttdeci">long celix_bundleContext_findServiceWithOptions(celix_bundle_context_t *ctx, const celix_service_filter_options_t *opts)</div></div>
-<div class="ttc" id="acelix__bundle__context_8h_html_ad1512520baedecad54a7bc307e0a6c7b"><div class="ttname"><a href="celix__bundle__context_8h.html#ad1512520baedecad54a7bc307e0a6c7b">celix_bundleContext_useServicesWithOptions</a></div><div class="ttdeci">void celix_bundleContext_useServicesWithOptions(celix_bundle_context_t *ctx, const celix_service_use_options_t *opts)</div></div>
-<div class="ttc" id="astructcelix__service__tracking__options_html_a4f80c99b050b1e49663cab329848364c"><div class="ttname"><a href="structcelix__service__tracking__options.html#a4f80c99b050b1e49663cab329848364c">celix_service_tracking_options::addWithProperties</a></div><div class="ttdeci">void(* addWithProperties)(void *handle, void *svc, const celix_properties_t *props) OPTS_INIT</div><div class="ttdef"><b>Definition:</b> celix_bundle_context.h:335</div></div>
-<div class="ttc" id="acelix__bundle__context_8h_html_a8df4bfbc27c99736c0209ef130cff98f"><div class="ttname"><a href="celix__bundle__context_8h.html#a8df4bfbc27c99736c0209ef130cff98f">celix_bundleContext_startBundle</a></div><div class="ttdeci">bool celix_bundleContext_startBundle(celix_bundle_context_t *ctx, long bundleId)</div></div>
-<div class="ttc" id="acelix__bundle__context_8h_html_abcde0edf5b4969bdd67831cff3db0a43"><div class="ttname"><a href="celix__bundle__context_8h.html#abcde0edf5b4969bdd67831cff3db0a43">celix_bundleContext_registerServiceWithOptions</a></div><div class="ttdeci">long celix_bundleContext_registerServiceWithOptions(celix_bundle_context_t *ctx, const celix_service_registration_options_t *opts)</div></div>
-<div class="ttc" id="acelix__bundle__context_8h_html_a098adf1e9f65deb166110008bd4314dd"><div class="ttname"><a href="celix__bundle__context_8h.html#a098adf1e9f65deb166110008bd4314dd">celix_bundleContext_uninstallBundle</a></div><div class="ttdeci">bool celix_bundleContext_uninstallBundle(celix_bundle_context_t *ctx, long bundleId)</div></div>
-<div class="ttc" id="acelix__bundle__context_8h_html_ae2da28d23f5246c20c6b675b80e7d130"><div class="ttname"><a href="celix__bundle__context_8h.html#ae2da28d23f5246c20c6b675b80e7d130">celix_service_use_options_t</a></div><div class="ttdeci">struct celix_service_use_options celix_service_use_options_t</div></div>
-<div class="ttc" id="astructcelix__service__tracking__options_html_a8445caaae53d71a47c0289d2e3e5f882"><div class="ttname"><a href="structcelix__service__tracking__options.html#a8445caaae53d71a47c0289d2e3e5f882">celix_service_tracking_options::remove</a></div><div class="ttdeci">void(* remove)(void *handle, void *svc) OPTS_INIT</div><div class="ttdef"><b>Definition:</b> celix_bundle_context.h:352</div></div>
-<div class="ttc" id="astructcelix__service__tracking__options_html_a9272f1870b544b28329545b84f3425c2"><div class="ttname"><a href="structcelix__service__tracking__options.html#a9272f1870b544b28329545b84f3425c2">celix_service_tracking_options::OPTS_INIT</a></div><div class="ttdeci">celix_service_filter_options_t filter OPTS_INIT</div><div class="ttdef"><b>Definition:</b> celix_bundle_context.h:296</div></div>
-<div class="ttc" id="astructcelix__service__tracking__options_html_afe7fa7d7fce1c581dff6e7986e958815"><div class="ttname"><a href="structcelix__service__tracking__options.html#afe7fa7d7fce1c581dff6e7986e958815">celix_service_tracking_options::add</a></div><div class="ttdeci">void(* add)(void *handle, void *svc) OPTS_INIT</div><div class="ttdef"><b>Definition:</b> celix_bundle_context.h:329</div></div>
-<div class="ttc" id="acelix__bundle__context_8h_html_a5c017c82bf57881c04f8c6f545b25a75"><div class="ttname"><a href="celix__bundle__context_8h.html#a5c017c82bf57881c04f8c6f545b25a75">celix_service_tracking_options_t</a></div><div class="ttdeci">struct celix_service_tracking_options celix_service_tracking_options_t</div></div>
-<div class="ttc" id="acelix__bundle__context_8h_html_a41c34f8165addcbd0d65b4a0c23345d0"><div class="ttname"><a href="celix__bundle__context_8h.html#a41c34f8165addcbd0d65b4a0c23345d0">celix_bundleContext_findServicesWithOptions</a></div><div class="ttdeci">celix_array_list_t * celix_bundleContext_findServicesWithOptions(celix_bundle_context_t *ctx, const celix_service_filter_options_t *opts)</div></div>
-<div class="ttc" id="acelix__bundle__context_8h_html_aec6e03faece0f8247de19d8c1527406d"><div class="ttname"><a href="celix__bundle__context_8h.html#aec6e03faece0f8247de19d8c1527406d">celix_bundleContext_useServiceWithId</a></div><div class="ttdeci">bool celix_bundleContext_useServiceWithId(celix_bundle_context_t *ctx, long serviceId, const char *serviceName, void *callbackHandle, void(*use)(void *handle, void *svc))</div></div>
-<div class="ttc" id="astructcelix__service__tracker__info_html_a6978e4b5f2fcc2d42a42f0e7ed3bb7c8"><div class="ttname"><a href="structcelix__service__tracker__info.html#a6978e4b5f2fcc2d42a42f0e7ed3bb7c8">celix_service_tracker_info::bundleId</a></div><div class="ttdeci">long bundleId</div><div class="ttdef"><b>Definition:</b> celix_bundle_context.h:778</div></div>
-<div class="ttc" id="acelix__bundle__context_8h_html_a41e6642ba1a739b5768911fa41e5d170"><div class="ttname"><a href="celix__bundle__context_8h.html#a41e6642ba1a739b5768911fa41e5d170">celix_bundleContext_getPropertyAsBool</a></div><div class="ttdeci">bool celix_bundleContext_getPropertyAsBool(celix_bundle_context_t *ctx, const char *key, bool defaultValue)</div></div>
-<div class="ttc" id="acelix__bundle__context_8h_html_a92be7dd7985a890c4b92bcb8497e8b9f"><div class="ttname"><a href="celix__bundle__context_8h.html#a92be7dd7985a890c4b92bcb8497e8b9f">celix_bundleContext_getPropertyAsDouble</a></div><div class="ttdeci">double celix_bundleContext_getPropertyAsDouble(celix_bundle_context_t *ctx, const char *key, double defaultValue)</div></div>
-<div class="ttc" id="astructcelix__service__filter__options_html_addb2e1e8fcce127512d272383e78cbd1"><div class="ttname"><a href="structcelix__service__filter__options.html#addb2e1e8fcce127512d272383e78cbd1">celix_service_filter_options::OPTS_INIT</a></div><div class="ttdeci">const char *serviceName OPTS_INIT</div><div class="ttdef"><b>Definition:</b> celix_bundle_context.h:197</div></div>
-<div class="ttc" id="acelix__bundle__context_8h_html_a39270507a3766afbfcc9420c7270d262"><div class="ttname"><a href="celix__bundle__context_8h.html#a39270507a3766afbfcc9420c7270d262">celix_bundleContext_useServices</a></div><div class="ttdeci">void celix_bundleContext_useServices(celix_bundle_context_t *ctx, const char *serviceName, void *callbackHandle, void(*use)(void *handle, void *svc))</div></div>
-<div class="ttc" id="astructcelix__bundle__tracker__options_html_a80ebdcbb840fa97d81e1250fba2d20af"><div class="ttname"><a href="structcelix__bundle__tracker__options.html#a80ebdcbb840fa97d81e1250fba2d20af">celix_bundle_tracker_options::OPTS_INIT</a></div><div class="ttdeci">void *callbackHandle OPTS_INIT</div><div class="ttdef"><b>Definition:</b> celix_bundle_context.h:663</div></div>
-<div class="ttc" id="astructcelix__service__tracking__options_html_acf6dbcde52efbed145933e8a28f3f2e1"><div class="ttname"><a href="structcelix__service__tracking__options.html#acf6dbcde52efbed145933e8a28f3f2e1">celix_service_tracking_options::removeWithOwner</a></div><div class="ttdeci">void(* removeWithOwner)(void *handle, void *svc, const celix_properties_t *props, const celix_bundle_t *svcOwner) OPTS_INIT</div><div class="ttdef"><b>Definition:</b> celix_bundle_context.h:364</div></div>
-<div class="ttc" id="acelix__bundle__context_8h_html_a1e8a78de5f799d303231385b51085055"><div class="ttname"><a href="celix__bundle__context_8h.html#a1e8a78de5f799d303231385b51085055">celix_bundleContext_useServiceWithOptions</a></div><div class="ttdeci">bool celix_bundleContext_useServiceWithOptions(celix_bundle_context_t *ctx, const celix_service_use_options_t *opts)</div></div>
-<div class="ttc" id="astructcelix__service__use__options_html"><div class="ttname"><a href="structcelix__service__use__options.html">celix_service_use_options</a></div><div class="ttdef"><b>Definition:</b> celix_bundle_context.h:485</div></div>
-<div class="ttc" id="acelix__bundle__context_8h_html_a727ee2600c19ce2fd42b3b80b695c7f6"><div class="ttname"><a href="celix__bundle__context_8h.html#a727ee2600c19ce2fd42b3b80b695c7f6">celix_bundleContext_installBundle</a></div><div class="ttdeci">long celix_bundleContext_installBundle(celix_bundle_context_t *ctx, const char *bundleLoc, bool autoStart)</div></div>
-<div class="ttc" id="astructcelix__service__registration__options_html_a86179f0c7a032f3309440a2cd8d91a61"><div class="ttname"><a href="structcelix__service__registration__options.html#a86179f0c7a032f3309440a2cd8d91a61">celix_service_registration_options::OPTS_INIT</a></div><div class="ttdeci">const char *serviceName OPTS_INIT</div><div class="ttdef"><b>Definition:</b> celix_bundle_context.h:105</div></div>
-<div class="ttc" id="astructcelix__service__filter__options_html_a9286701a4c946d1ed28afde05cd34d51"><div class="ttname"><a href="structcelix__service__filter__options.html#a9286701a4c946d1ed28afde05cd34d51">celix_service_filter_options::OPTS_INIT</a></div><div class="ttdeci">const char *serviceLanguage OPTS_INIT</div><div class="ttdef"><b>Definition:</b> celix_bundle_context.h:215</div></div>
-<div class="ttc" id="astructcelix__service__tracker__info_html_a3cd52ce46875995a973fb6b65967d7e4"><div class="ttname"><a href="structcelix__service__tracker__info.html#a3cd52ce46875995a973fb6b65967d7e4">celix_service_tracker_info::filter</a></div><div class="ttdeci">celix_filter_t * filter</div><div class="ttdef"><b>Definition:</b> celix_bundle_context.h:763</div></div>
-<div class="ttc" id="astructcelix__service__use__options_html_a2ba3552bfc25500084bfaf2dbb0f46c5"><div class="ttname"><a href="structcelix__service__use__options.html#a2ba3552bfc25500084bfaf2dbb0f46c5">celix_service_use_options::useWithOwner</a></div><div class="ttdeci">void(* useWithOwner)(void *handle, void *svc, const celix_properties_t *props, const celix_bundle_t *svcOwner) OPTS_INIT</div><div class="ttdef"><b>Definition:</b> celix_bundle_context.h:522</div></div>
-<div class="ttc" id="astructcelix__service__use__options_html_addad49a12179fff8b2dbf5313d70952f"><div class="ttname"><a href="structcelix__service__use__options.html#addad49a12179fff8b2dbf5313d70952f">celix_service_use_options::OPTS_INIT</a></div><div class="ttdeci">celix_service_filter_options_t filter OPTS_INIT</div><div class="ttdef"><b>Definition:</b> celix_bundle_context.h:489</div></div>
-<div class="ttc" id="acelix__bundle__context_8h_html_a5bc54fd14871cc88ed887c8cea8f7b78"><div class="ttname"><a href="celix__bundle__context_8h.html#a5bc54fd14871cc88ed887c8cea8f7b78">celix_bundleContext_registerService</a></div><div class="ttdeci">long celix_bundleContext_registerService(celix_bundle_context_t *ctx, void *svc, const char *serviceName, celix_properties_t *properties)</div></div>
-<div class="ttc" id="astructcelix__bundle__tracker__options_html_a54a11feb78bd514c95f7c9aecaa7f212"><div class="ttname"><a href="structcelix__bundle__tracker__options.html#a54a11feb78bd514c95f7c9aecaa7f212">celix_bundle_tracker_options::OPTS_INIT</a></div><div class="ttdeci">bool includeFrameworkBundle OPTS_INIT</div><div class="ttdef"><b>Definition:</b> celix_bundle_context.h:694</div></div>
-<div class="ttc" id="astructcelix__service__tracking__options_html"><div class="ttname"><a href="structcelix__service__tracking__options.html">celix_service_tracking_options</a></div><div class="ttdef"><b>Definition:</b> celix_bundle_context.h:292</div></div>
-<div class="ttc" id="acelix__bundle__context_8h_html_aa603acb136351b4135ce6a8c0b1fda71"><div class="ttname"><a href="celix__bundle__context_8h.html#aa603acb136351b4135ce6a8c0b1fda71">celix_bundleContext_trackBundlesWithOptions</a></div><div class="ttdeci">long celix_bundleContext_trackBundlesWithOptions(celix_bundle_context_t *ctx, const celix_bundle_tracking_options_t *opts)</div></div>
-<div class="ttc" id="acelix__bundle__context_8h_html_a03a6d1c49c91c212ad7be115e1035840"><div class="ttname"><a href="celix__bundle__context_8h.html#a03a6d1c49c91c212ad7be115e1035840">celix_bundleContext_useBundles</a></div><div class="ttdeci">void celix_bundleContext_useBundles(celix_bundle_context_t *ctx, void *callbackHandle, void(*use)(void *handle, const celix_bundle_t *bundle))</div></div>
-<div class="ttc" id="astructcelix__service__use__options_html_a31a9834b87a5c2c3ed6b8532cd85c653"><div class="ttname"><a href="structcelix__service__use__options.html#a31a9834b87a5c2c3ed6b8532cd85c653">celix_service_use_options::OPTS_INIT</a></div><div class="ttdeci">void *callbackHandle OPTS_INIT</div><div class="ttdef"><b>Definition:</b> celix_bundle_context.h:501</div></div>
-<div class="ttc" id="acelix__bundle__context_8h_html_a3b4906a9e6fb34fe3ca5118539a81fc7"><div class="ttname"><a href="celix__bundle__context_8h.html#a3b4906a9e6fb34fe3ca5118539a81fc7">celix_bundleContext_stopTracker</a></div><div class="ttdeci">void celix_bundleContext_stopTracker(celix_bundle_context_t *ctx, long trackerId)</div></div>
-<div class="ttc" id="astructcelix__service__filter__options_html"><div class="ttname"><a href="structcelix__service__filter__options.html">celix_service_filter_options</a></div><div class="ttdef"><b>Definition:</b> celix_bundle_context.h:193</div></div>
-<div class="ttc" id="astructcelix__service__use__options_html_ac7efa464a614a3faf6970a4917c596a7"><div class="ttname"><a href="structcelix__service__use__options.html#ac7efa464a614a3faf6970a4917c596a7">celix_service_use_options::use</a></div><div class="ttdeci">void(* use)(void *handle, void *svc) OPTS_INIT</div><div class="ttdef"><b>Definition:</b> celix_bundle_context.h:510</div></div>
-<div class="ttc" id="acelix__bundle__context_8h_html_a0ea27b2a81018583a464a10932cfae62"><div class="ttname"><a href="celix__bundle__context_8h.html#a0ea27b2a81018583a464a10932cfae62">celix_bundleContext_getPropertyAsLong</a></div><div class="ttdeci">long celix_bundleContext_getPropertyAsLong(celix_bundle_context_t *ctx, const char *key, long defaultValue)</div></div>
-<div class="ttc" id="astructcelix__service__filter__options_html_a70cc8aee445c1a24782454393f12ff98"><div class="ttname"><a href="structcelix__service__filter__options.html#a70cc8aee445c1a24782454393f12ff98">celix_service_filter_options::OPTS_INIT</a></div><div class="ttdeci">bool ignoreServiceLanguage OPTS_INIT</div><div class="ttdef"><b>Definition:</b> celix_bundle_context.h:222</div></div>
-<div class="ttc" id="acelix__bundle__context_8h_html_a7eab80d54386fb32b91dd414846c2d45"><div class="ttname"><a href="celix__bundle__context_8h.html#a7eab80d54386fb32b91dd414846c2d45">celix_service_filter_options_t</a></div><div class="ttdeci">struct celix_service_filter_options celix_service_filter_options_t</div></div>
-<div class="ttc" id="astructcelix__service__tracking__options_html_af75c423757dcd16bf90d57a5726ac98a"><div class="ttname"><a href="structcelix__service__tracking__options.html#af75c423757dcd16bf90d57a5726ac98a">celix_service_tracking_options::removeWithProperties</a></div><div class="ttdeci">void(* removeWithProperties)(void *handle, void *svc, const celix_properties_t *props) OPTS_INIT</div><div class="ttdef"><b>Definition:</b> celix_bundle_context.h:358</div></div>
-<div class="ttc" id="astructcelix__bundle__tracker__options_html_aeac272edbc00cb62f7071df0699dd492"><div class="ttname"><a href="structcelix__bundle__tracker__options.html#aeac272edbc00cb62f7071df0699dd492">celix_bundle_tracker_options::onStopped</a></div><div class="ttdeci">void(* onStopped)(void *handle, const celix_bundle_t *bundle) OPTS_INIT</div><div class="ttdef"><b>Definition:</b> celix_bundle_context.h:679</div></div>
-<div class="ttc" id="acelix__bundle__context_8h_html_aea7e7fcd4022db2f9f4123dd3b7a794a"><div class="ttname"><a href="celix__bundle__context_8h.html#aea7e7fcd4022db2f9f4123dd3b7a794a">celix_service_tracker_info_t</a></div><div class="ttdeci">struct celix_service_tracker_info celix_service_tracker_info_t</div></div>
-<div class="ttc" id="astructcelix__service__tracker__info_html"><div class="ttname"><a href="structcelix__service__tracker__info.html">celix_service_tracker_info</a></div><div class="ttdef"><b>Definition:</b> celix_bundle_context.h:759</div></div>
-<div class="ttc" id="acelix__bundle__context_8h_html_a96a901f0597f9d2accf073153d90344c"><div class="ttname"><a href="celix__bundle__context_8h.html#a96a901f0597f9d2accf073153d90344c">celix_bundleContext_findServices</a></div><div class="ttdeci">celix_array_list_t * celix_bundleContext_findServices(celix_bundle_context_t *ctx, const char *serviceName)</div></div>
-<div class="ttc" id="acelix__bundle__context_8h_html_a1b011b5fe49a718345698eeb359d0c3a"><div class="ttname"><a href="celix__bundle__context_8h.html#a1b011b5fe49a718345698eeb359d0c3a">celix_bundle_tracking_options_t</a></div><div class="ttdeci">struct celix_bundle_tracker_options celix_bundle_tracking_options_t</div></div>
-<div class="ttc" id="astructcelix__service__use__options_html_a8192eb7aa470178f78ea8c09c4574867"><div class="ttname"><a href="structcelix__service__use__options.html#a8192eb7aa470178f78ea8c09c4574867">celix_service_use_options::useWithProperties</a></div><div class="ttdeci">void(* useWithProperties)(void *handle, void *svc, const celix_properties_t *props) OPTS_INIT</div><div class="ttdef"><b>Definition:</b> celix_bundle_context.h:516</div></div>
-<div class="ttc" id="acelix__bundle__context_8h_html_abb3cedf5ffa7a326cef2af64a1094635"><div class="ttname"><a href="celix__bundle__context_8h.html#abb3cedf5ffa7a326cef2af64a1094635">celix_bundleContext_useBundle</a></div><div class="ttdeci">bool celix_bundleContext_useBundle(celix_bundle_context_t *ctx, long bundleId, void *callbackHandle, void(*use)(void *handle, const celix_bundle_t *bundle))</div></div>
-<div class="ttc" id="acelix__bundle__context_8h_html_a3caa917285feaad580b61d4c0c8430a9"><div class="ttname"><a href="celix__bundle__context_8h.html#a3caa917285feaad580b61d4c0c8430a9">celix_bundleContext_registerServiceFactory</a></div><div class="ttdeci">long celix_bundleContext_registerServiceFactory(celix_bundle_context_t *ctx, celix_service_factory_t *factory, const char *serviceName, celix_properties_t *props)</div></div>
-<div class="ttc" id="acelix__bundle__context_8h_html_ac36566dcc477bb2c123e5124527090c1"><div class="ttname"><a href="celix__bundle__context_8h.html#ac36566dcc477bb2c123e5124527090c1">celix_bundleContext_getDependencyManager</a></div><div class="ttdeci">celix_dependency_manager_t * celix_bundleContext_getDependencyManager(celix_bundle_context_t *ctx)</div></div>
-<div class="ttc" id="astructcelix__service__tracking__options_html_a12a988b8f1f3bd3a2e61c65d82f14d59"><div class="ttname"><a href="structcelix__service__tracking__options.html#a12a988b8f1f3bd3a2e61c65d82f14d59">celix_service_tracking_options::setWithOwner</a></div><div class="ttdeci">void(* setWithOwner)(void *handle, void *svc, const celix_properties_t *props, const celix_bundle_t *svcOwner) OPTS_INIT</div><div class="ttdef"><b>Definition:</b> celix_bundle_context.h:321</div></div>
-<div class="ttc" id="astructcelix__service__tracking__options_html_a787fd0f4f6719fefea2ae70fe6a1a5e6"><div class="ttname"><a href="structcelix__service__tracking__options.html#a787fd0f4f6719fefea2ae70fe6a1a5e6">celix_service_tracking_options::addWithOwner</a></div><div class="ttdeci">void(* addWithOwner)(void *handle, void *svc, const celix_properties_t *props, const celix_bundle_t *svcOwner) OPTS_INIT</div><div class="ttdef"><b>Definition:</b> celix_bundle_context.h:341</div></div>
-<div class="ttc" id="astructcelix__service__use__options_html_ae24e3e35d7d92d5b41d58b53506bcca0"><div class="ttname"><a href="structcelix__service__use__options.html#ae24e3e35d7d92d5b41d58b53506bcca0">celix_service_use_options::OPTS_INIT</a></div><div class="ttdeci">double waitTimeoutInSeconds OPTS_INIT</div><div class="ttdef"><b>Definition:</b> celix_bundle_context.h:496</div></div>
-<div class="ttc" id="acelix__bundle__context_8h_html_ac8322b5aa4adf9dcd8c288ce72a05414"><div class="ttname"><a href="celix__bundle__context_8h.html#ac8322b5aa4adf9dcd8c288ce72a05414">celix_bundleContext_findService</a></div><div class="ttdeci">long celix_bundleContext_findService(celix_bundle_context_t *ctx, const char *serviceName)</div></div>
-<div class="ttc" id="acelix__bundle__context_8h_html_ac7151f08ded1d7571867a44abe9f3531"><div class="ttname"><a href="celix__bundle__context_8h.html#ac7151f08ded1d7571867a44abe9f3531">celix_bundleContext_isBundleInstalled</a></div><div class="ttdeci">bool celix_bundleContext_isBundleInstalled(celix_bundle_context_t *ctx, long bndId)</div></div>
-<div class="ttc" id="acelix__bundle__context_8h_html_ad6e1553f9507d04c7a0ad91d067d479b"><div class="ttname"><a href="celix__bundle__context_8h.html#ad6e1553f9507d04c7a0ad91d067d479b">celix_bundleContext_stopBundle</a></div><div class="ttdeci">bool celix_bundleContext_stopBundle(celix_bundle_context_t *ctx, long bundleId)</div></div>
-<div class="ttc" id="astructcelix__service__tracker__info_html_a5baca60295d208fe0581a564c3627f65"><div class="ttname"><a href="structcelix__service__tracker__info.html#a5baca60295d208fe0581a564c3627f65">celix_service_tracker_info::serviceLanguage</a></div><div class="ttdeci">const char * serviceLanguage</div><div class="ttdef"><b>Definition:</b> celix_bundle_context.h:773</div></div>
-<div class="ttc" id="acelix__bundle__context_8h_html_a1ebd82cb3d61aab769956d856293b9b9"><div class="ttname"><a href="celix__bundle__context_8h.html#a1ebd82cb3d61aab769956d856293b9b9">celix_bundleContext_unregisterService</a></div><div class="ttdeci">void celix_bundleContext_unregisterService(celix_bundle_context_t *ctx, long serviceId)</div></div>
-<div class="ttc" id="astructcelix__service__tracker__info_html_a5f695cf6d8cd69e0c419298ded657546"><div class="ttname"><a href="structcelix__service__tracker__info.html#a5f695cf6d8cd69e0c419298ded657546">celix_service_tracker_info::serviceName</a></div><div class="ttdeci">const char * serviceName</div><div class="ttdef"><b>Definition:</b> celix_bundle_context.h:768</div></div>
-<div class="ttc" id="acelix__bundle__context_8h_html_afde9ed40231b5c3bbba19559e68e77f6"><div class="ttname"><a href="celix__bundle__context_8h.html#afde9ed40231b5c3bbba19559e68e77f6">celix_bundleContext_listBundles</a></div><div class="ttdeci">celix_array_list_t * celix_bundleContext_listBundles(celix_bundle_context_t *ctx)</div></div>
-<div class="ttc" id="astructcelix__service__tracking__options_html_a256f8db1eecb89a8b71e4ef03ab11172"><div class="ttname"><a href="structcelix__service__tracking__options.html#a256f8db1eecb89a8b71e4ef03ab11172">celix_service_tracking_options::setWithProperties</a></div><div class="ttdeci">void(* setWithProperties)(void *handle, void *svc, const celix_properties_t *props) OPTS_INIT</div><div class="ttdef"><b>Definition:</b> celix_bundle_context.h:315</div></div>
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.18
-</small></address>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/celix__dm__component_8h.html b/static/docs/2.2.1/html/celix__dm__component_8h.html
deleted file mode 100755
index 5b1c477..0000000
--- a/static/docs/2.2.1/html/celix__dm__component_8h.html
+++ /dev/null
@@ -1,797 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>Celix: libs/framework/include/celix_dm_component.h File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/searchdata.js"></script>
-<script type="text/javascript" src="search/search.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">Celix
-   &#160;<span id="projectnumber">2.2.1</span>
-   </div>
-   <div id="projectbrief">An implementation of the OSGi specification adapted to C and C++</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.18 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
-     onmouseover="return searchBox.OnSearchSelectShow()"
-     onmouseout="return searchBox.OnSearchSelectHide()"
-     onkeydown="return searchBox.OnSearchSelectKey(event)">
-</div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div id="nav-path" class="navpath">
-  <ul>
-<li class="navelem"><a class="el" href="dir_6719ab1f1f7655efc2fa43f7eb574fd1.html">libs</a></li><li class="navelem"><a class="el" href="dir_edbb2ffdc3e165978e68de3a46f2e8a0.html">framework</a></li><li class="navelem"><a class="el" href="dir_bc286dd6b945a73064974dfd7e40f558.html">include</a></li>  </ul>
-</div>
-</div><!-- top -->
-<div class="header">
-  <div class="summary">
-<a href="#define-members">Macros</a> &#124;
-<a href="#typedef-members">Typedefs</a> &#124;
-<a href="#enum-members">Enumerations</a> &#124;
-<a href="#func-members">Functions</a>  </div>
-  <div class="headertitle">
-<div class="title">celix_dm_component.h File Reference</div>  </div>
-</div><!--header-->
-<div class="contents">
-<div class="textblock"><code>#include &lt;stdbool.h&gt;</code><br />
-<code>#include &quot;celix_types.h&quot;</code><br />
-<code>#include &quot;celix_errno.h&quot;</code><br />
-<code>#include &quot;properties.h&quot;</code><br />
-<code>#include &quot;array_list.h&quot;</code><br />
-<code>#include &quot;<a class="el" href="celix__dm__info_8h_source.html">celix_dm_info.h</a>&quot;</code><br />
-</div><div class="textblock"><div class="dynheader">
-Include dependency graph for celix_dm_component.h:</div>
-<div class="dyncontent">
-<div class="center"><img src="celix__dm__component_8h__incl.png" border="0" usemap="#libs_2framework_2include_2celix__dm__component_8h" alt=""/></div>
-<map name="libs_2framework_2include_2celix__dm__component_8h" id="libs_2framework_2include_2celix__dm__component_8h">
-<area shape="rect" title=" " alt="" coords="176,5,336,47"/>
-<area shape="rect" title=" " alt="" coords="173,169,248,196"/>
-<area shape="rect" title=" " alt="" coords="26,95,125,121"/>
-<area shape="rect" title=" " alt="" coords="149,95,245,121"/>
-<area shape="rect" title=" " alt="" coords="269,95,360,121"/>
-<area shape="rect" title=" " alt="" coords="384,95,471,121"/>
-<area shape="rect" href="celix__dm__info_8h.html" title=" " alt="" coords="495,95,608,121"/>
-<area shape="rect" title=" " alt="" coords="418,169,538,196"/>
-<area shape="rect" title=" " alt="" coords="563,169,687,196"/>
-</map>
-</div>
-</div><div class="textblock"><div class="dynheader">
-This graph shows which files directly or indirectly include this file:</div>
-<div class="dyncontent">
-<div class="center"><img src="celix__dm__component_8h__dep__incl.png" border="0" usemap="#libs_2framework_2include_2celix__dm__component_8hdep" alt=""/></div>
-<map name="libs_2framework_2include_2celix__dm__component_8hdep" id="libs_2framework_2include_2celix__dm__component_8hdep">
-<area shape="rect" title=" " alt="" coords="5,5,165,47"/>
-<area shape="rect" href="celix__api_8h.html" title=" " alt="" coords="10,95,161,136"/>
-</map>
-</div>
-</div>
-<p><a href="celix__dm__component_8h_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
-Macros</h2></td></tr>
-<tr class="memitem:aa19dcff16825fa2e91656ff136d877cf"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__dm__component_8h.html#aa19dcff16825fa2e91656ff136d877cf">CELIX_DM_COMPONENT_MAX_ID_LENGTH</a>&#160;&#160;&#160;64</td></tr>
-<tr class="separator:aa19dcff16825fa2e91656ff136d877cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:af8861849eb5e4057def1bb12a5111d00"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__dm__component_8h.html#af8861849eb5e4057def1bb12a5111d00">CELIX_DM_COMPONENT_MAX_NAME_LENGTH</a>&#160;&#160;&#160;128</td></tr>
-<tr class="separator:af8861849eb5e4057def1bb12a5111d00"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aad1f80b04be28b8e7bf495113c2fe452"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__dm__component_8h.html#aad1f80b04be28b8e7bf495113c2fe452">CELIX_DMCOMPONENT_SETCALLBACKS</a>(dmCmp,  type,  init,  start,  stop,  deinit)</td></tr>
-<tr class="separator:aad1f80b04be28b8e7bf495113c2fe452"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
-Typedefs</h2></td></tr>
-<tr class="memitem:afd49054c559adbeb9627fa3d45d6c02a"><td class="memItemLeft" align="right" valign="top">typedef enum <a class="el" href="celix__dm__component_8h.html#ab8b6c8d35fe5b976b8f58a6816e6c4e4">celix_dm_component_state_enum</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__dm__component_8h.html#afd49054c559adbeb9627fa3d45d6c02a">celix_dm_component_state_t</a></td></tr>
-<tr class="separator:afd49054c559adbeb9627fa3d45d6c02a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a9c73a72049f39d42d66b6d9c60d185dc"><td class="memItemLeft" align="right" valign="top">typedef int(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__dm__component_8h.html#a9c73a72049f39d42d66b6d9c60d185dc">celix_dm_cmp_lifecycle_fpt</a>) (void *userData)</td></tr>
-<tr class="separator:a9c73a72049f39d42d66b6d9c60d185dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
-Enumerations</h2></td></tr>
-<tr class="memitem:ab8b6c8d35fe5b976b8f58a6816e6c4e4"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__dm__component_8h.html#ab8b6c8d35fe5b976b8f58a6816e6c4e4">celix_dm_component_state_enum</a> { <a class="el" href="celix__dm__component_8h.html#ab8b6c8d35fe5b976b8f58a6816e6c4e4aedd3ab4f7703955241fecb14df3fb59e">DM_CMP_STATE_INACTIVE</a> = 1, 
-<a class="el" href="celix__dm__component_8h.html#ab8b6c8d35fe5b976b8f58a6816e6c4e4a76d77f632cc37534055bb227446f5ffc">DM_CMP_STATE_WAITING_FOR_REQUIRED</a> = 2, 
-<a class="el" href="celix__dm__component_8h.html#ab8b6c8d35fe5b976b8f58a6816e6c4e4ad948b8a0aa722ce528335632176dac3e">DM_CMP_STATE_INSTANTIATED_AND_WAITING_FOR_REQUIRED</a> = 3, 
-<a class="el" href="celix__dm__component_8h.html#ab8b6c8d35fe5b976b8f58a6816e6c4e4a582ed79692df8863f9ae6b5663cf1a46">DM_CMP_STATE_TRACKING_OPTIONAL</a> = 4
- }</td></tr>
-<tr class="separator:ab8b6c8d35fe5b976b8f58a6816e6c4e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:adf75af7d75d2c1f7e53d78f23f97d40c"><td class="memItemLeft" align="right" valign="top">celix_dm_component_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__dm__component_8h.html#adf75af7d75d2c1f7e53d78f23f97d40c">celix_dmComponent_create</a> (celix_bundle_context_t *context, const char *name)</td></tr>
-<tr class="separator:adf75af7d75d2c1f7e53d78f23f97d40c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a56a8c5019a43eb96d62fd9e98cb56ba8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__dm__component_8h.html#a56a8c5019a43eb96d62fd9e98cb56ba8">celix_dmComponent_destroy</a> (celix_dm_component_t *cmp)</td></tr>
-<tr class="separator:a56a8c5019a43eb96d62fd9e98cb56ba8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ab8bd7a13007bda2619c1764886eabeab"><td class="memItemLeft" align="right" valign="top">celix_status_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__dm__component_8h.html#ab8bd7a13007bda2619c1764886eabeab">celix_dmComponent_setCLanguageProperty</a> (celix_dm_component_t *component, bool setCLangProp)</td></tr>
-<tr class="separator:ab8bd7a13007bda2619c1764886eabeab"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aafd2f2eff931784f70eb2a37e943446a"><td class="memItemLeft" align="right" valign="top">celix_status_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__dm__component_8h.html#aafd2f2eff931784f70eb2a37e943446a">celix_dmComponent_addInterface</a> (celix_dm_component_t *component, const char *serviceName, const char *serviceVersion, const void *service, celix_properties_t *properties)</td></tr>
-<tr class="separator:aafd2f2eff931784f70eb2a37e943446a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a3e4a6e8e87cc8d3b3655eaaa06ad261e"><td class="memItemLeft" align="right" valign="top">celix_status_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__dm__component_8h.html#a3e4a6e8e87cc8d3b3655eaaa06ad261e">celix_dmComponent_removeInterface</a> (celix_dm_component_t *component, const void *service)</td></tr>
-<tr class="separator:a3e4a6e8e87cc8d3b3655eaaa06ad261e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a45a01df6ed75d8530563d52f58a0b165"><td class="memItemLeft" align="right" valign="top">celix_status_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__dm__component_8h.html#a45a01df6ed75d8530563d52f58a0b165">celix_dmComponent_setImplementation</a> (celix_dm_component_t *component, void *implementation)</td></tr>
-<tr class="separator:a45a01df6ed75d8530563d52f58a0b165"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ae0312e00f51f85d8e48b18020964e21f"><td class="memItemLeft" align="right" valign="top">celix_status_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__dm__component_8h.html#ae0312e00f51f85d8e48b18020964e21f">celix_dmComponent_getInterfaces</a> (celix_dm_component_t *component, celix_array_list_t **servicesNames)</td></tr>
-<tr class="separator:ae0312e00f51f85d8e48b18020964e21f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ad7d4a85042adba432bd8d398d9c106b8"><td class="memItemLeft" align="right" valign="top">celix_status_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__dm__component_8h.html#ad7d4a85042adba432bd8d398d9c106b8">celix_dmComponent_addServiceDependency</a> (celix_dm_component_t *component, celix_dm_service_dependency_t *dep)</td></tr>
-<tr class="separator:ad7d4a85042adba432bd8d398d9c106b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a0ce2c610cbe3a329ea6561eb5cda0d8d"><td class="memItemLeft" align="right" valign="top">celix_status_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__dm__component_8h.html#a0ce2c610cbe3a329ea6561eb5cda0d8d">celix_dmComponent_removeServiceDependency</a> (celix_dm_component_t *component, celix_dm_service_dependency_t *dependency)</td></tr>
-<tr class="separator:a0ce2c610cbe3a329ea6561eb5cda0d8d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:af98630b8f8980c906d5aefc5f8a82c99"><td class="memItemLeft" align="right" valign="top"><a class="el" href="celix__dm__component_8h.html#afd49054c559adbeb9627fa3d45d6c02a">celix_dm_component_state_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__dm__component_8h.html#af98630b8f8980c906d5aefc5f8a82c99">celix_dmComponent_currentState</a> (celix_dm_component_t *cmp)</td></tr>
-<tr class="separator:af98630b8f8980c906d5aefc5f8a82c99"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a5647f75ea3a3c3755940ee42f51320a8"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__dm__component_8h.html#a5647f75ea3a3c3755940ee42f51320a8">celix_dmComponent_getImplementation</a> (celix_dm_component_t *cmp)</td></tr>
-<tr class="separator:a5647f75ea3a3c3755940ee42f51320a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a30de51befa422dc65ac89ae3d9b8319f"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__dm__component_8h.html#a30de51befa422dc65ac89ae3d9b8319f">celix_dmComponent_getName</a> (celix_dm_component_t *cmp)</td></tr>
-<tr class="separator:a30de51befa422dc65ac89ae3d9b8319f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a99be995e9e94514fc4f6782dd48456ba"><td class="memItemLeft" align="right" valign="top">celix_bundle_context_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__dm__component_8h.html#a99be995e9e94514fc4f6782dd48456ba">celix_dmComponent_getBundleContext</a> (celix_dm_component_t *component)</td></tr>
-<tr class="separator:a99be995e9e94514fc4f6782dd48456ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a017e996f6b1db5e902bf3a9cc043634f"><td class="memItemLeft" align="right" valign="top">celix_status_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__dm__component_8h.html#a017e996f6b1db5e902bf3a9cc043634f">celix_dmComponent_setCallbacks</a> (celix_dm_component_t *component, <a class="el" href="celix__dm__component_8h.html#a9c73a72049f39d42d66b6d9c60d185dc">celix_dm_cmp_lifecycle_fpt</a> init, <a class="el" href="celix__dm__component_8h.html#a9c73a72049f39d42d66b6d9c60d185dc">celix_dm_cmp_lifecycle_fpt</a> start, <a class="el" href="celix__dm__component_8h.html#a9c73a72049f39d42d66b6d9c60d185dc">celix_dm_cmp_lifecycle_fpt</a> stop, <a class="el" href="celix__dm__component_8h.html#a9c73a72049f39d42d66b6d9c60d185dc">celix_dm_cmp_lifecycle_fpt</a> deinit)</td></tr>
-<tr class="separator:a017e996f6b1db5e902bf3a9cc043634f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a3345d3bfa11070069d745131668d02ae"><td class="memItemLeft" align="right" valign="top">celix_status_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__dm__component_8h.html#a3345d3bfa11070069d745131668d02ae">celix_dmComponent_getComponentInfo</a> (celix_dm_component_t *component, <a class="el" href="celix__dm__info_8h.html#a4325313bb7b98b6eded2212a6edd065a">dm_component_info_pt</a> *info)</td></tr>
-<tr class="separator:a3345d3bfa11070069d745131668d02ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a7bbf1a0da294be7ba9ae8272f1b938d7"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__dm__component_8h.html#a7bbf1a0da294be7ba9ae8272f1b938d7">celix_dmComponent_isActive</a> (celix_dm_component_t *component)</td></tr>
-<tr class="separator:a7bbf1a0da294be7ba9ae8272f1b938d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:af62df6623e978a1cc62b3ca8ab5863c3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__dm__component_8h.html#af62df6623e978a1cc62b3ca8ab5863c3">celix_dmComponent_destroyComponentInfo</a> (<a class="el" href="celix__dm__info_8h.html#a4325313bb7b98b6eded2212a6edd065a">dm_component_info_pt</a> info)</td></tr>
-<tr class="separator:af62df6623e978a1cc62b3ca8ab5863c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-<h2 class="groupheader">Macro Definition Documentation</h2>
-<a id="aa19dcff16825fa2e91656ff136d877cf"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#aa19dcff16825fa2e91656ff136d877cf">&#9670;&nbsp;</a></span>CELIX_DM_COMPONENT_MAX_ID_LENGTH</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">#define CELIX_DM_COMPONENT_MAX_ID_LENGTH&#160;&#160;&#160;64</td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-</div>
-</div>
-<a id="af8861849eb5e4057def1bb12a5111d00"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#af8861849eb5e4057def1bb12a5111d00">&#9670;&nbsp;</a></span>CELIX_DM_COMPONENT_MAX_NAME_LENGTH</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">#define CELIX_DM_COMPONENT_MAX_NAME_LENGTH&#160;&#160;&#160;128</td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-</div>
-</div>
-<a id="aad1f80b04be28b8e7bf495113c2fe452"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#aad1f80b04be28b8e7bf495113c2fe452">&#9670;&nbsp;</a></span>CELIX_DMCOMPONENT_SETCALLBACKS</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">#define CELIX_DMCOMPONENT_SETCALLBACKS</td>
-          <td>(</td>
-          <td class="paramtype">&#160;</td>
-          <td class="paramname">dmCmp, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">&#160;</td>
-          <td class="paramname">type, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">&#160;</td>
-          <td class="paramname">init, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">&#160;</td>
-          <td class="paramname">start, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">&#160;</td>
-          <td class="paramname">stop, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">&#160;</td>
-          <td class="paramname">deinit&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<b>Value:</b><div class="fragment"><div class="line">    <span class="keywordflow">do</span> {  \</div>
-<div class="line">        int (*tmp_init)(type)   = (init); \</div>
-<div class="line">        int (*tmp_start)(type)  = (start); \</div>
-<div class="line">        int (*tmp_stop)(type)   = (stop); \</div>
-<div class="line">        int (*tmp_deinit)(type) = (deinit); \</div>
-<div class="line">        celix_dmComponent_setCallbacks((dmCmp), (<a class="code" href="celix__dm__component_8h.html#a9c73a72049f39d42d66b6d9c60d185dc">celix_dm_cmp_lifecycle_fpt</a>)tmp_init, (<a class="code" href="celix__dm__component_8h.html#a9c73a72049f39d42d66b6d9c60d185dc">celix_dm_cmp_lifecycle_fpt</a>)tmp_start, (<a class="code" href="celix__dm__component_8h.html#a9c73a72049f39d42d66b6d9c60d185dc">celix_dm_cmp_lifecycle_fpt</a>)tmp_stop, (<a class="code" href="celix__dm__component_8h.html#a9c73a72049f39d42d66b6d9c60d185dc">celix_dm_cmp_lifecycle_fpt</a>)tmp_deinit); \</div>
-<div class="line">    } <span class="keywordflow">while</span>(0)</div>
-</div><!-- fragment --><p>Set the component life cycle callbacks using a MACRO for improving the type safety. </p>
-
-</div>
-</div>
-<h2 class="groupheader">Typedef Documentation</h2>
-<a id="a9c73a72049f39d42d66b6d9c60d185dc"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a9c73a72049f39d42d66b6d9c60d185dc">&#9670;&nbsp;</a></span>celix_dm_cmp_lifecycle_fpt</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">typedef int(* celix_dm_cmp_lifecycle_fpt) (void *userData)</td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-</div>
-</div>
-<a id="afd49054c559adbeb9627fa3d45d6c02a"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#afd49054c559adbeb9627fa3d45d6c02a">&#9670;&nbsp;</a></span>celix_dm_component_state_t</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">typedef enum <a class="el" href="celix__dm__component_8h.html#ab8b6c8d35fe5b976b8f58a6816e6c4e4">celix_dm_component_state_enum</a> <a class="el" href="celix__dm__component_8h.html#afd49054c559adbeb9627fa3d45d6c02a">celix_dm_component_state_t</a></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-</div>
-</div>
-<h2 class="groupheader">Enumeration Type Documentation</h2>
-<a id="ab8b6c8d35fe5b976b8f58a6816e6c4e4"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ab8b6c8d35fe5b976b8f58a6816e6c4e4">&#9670;&nbsp;</a></span>celix_dm_component_state_enum</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">enum <a class="el" href="celix__dm__component_8h.html#ab8b6c8d35fe5b976b8f58a6816e6c4e4">celix_dm_component_state_enum</a></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<table class="fieldtable">
-<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="ab8b6c8d35fe5b976b8f58a6816e6c4e4aedd3ab4f7703955241fecb14df3fb59e"></a>DM_CMP_STATE_INACTIVE&#160;</td><td class="fielddoc"></td></tr>
-<tr><td class="fieldname"><a id="ab8b6c8d35fe5b976b8f58a6816e6c4e4a76d77f632cc37534055bb227446f5ffc"></a>DM_CMP_STATE_WAITING_FOR_REQUIRED&#160;</td><td class="fielddoc"></td></tr>
-<tr><td class="fieldname"><a id="ab8b6c8d35fe5b976b8f58a6816e6c4e4ad948b8a0aa722ce528335632176dac3e"></a>DM_CMP_STATE_INSTANTIATED_AND_WAITING_FOR_REQUIRED&#160;</td><td class="fielddoc"></td></tr>
-<tr><td class="fieldname"><a id="ab8b6c8d35fe5b976b8f58a6816e6c4e4a582ed79692df8863f9ae6b5663cf1a46"></a>DM_CMP_STATE_TRACKING_OPTIONAL&#160;</td><td class="fielddoc"></td></tr>
-</table>
-
-</div>
-</div>
-<h2 class="groupheader">Function Documentation</h2>
-<a id="aafd2f2eff931784f70eb2a37e943446a"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#aafd2f2eff931784f70eb2a37e943446a">&#9670;&nbsp;</a></span>celix_dmComponent_addInterface()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">celix_status_t celix_dmComponent_addInterface </td>
-          <td>(</td>
-          <td class="paramtype">celix_dm_component_t *&#160;</td>
-          <td class="paramname"><em>component</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const char *&#160;</td>
-          <td class="paramname"><em>serviceName</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const char *&#160;</td>
-          <td class="paramname"><em>serviceVersion</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const void *&#160;</td>
-          <td class="paramname"><em>service</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">celix_properties_t *&#160;</td>
-          <td class="paramname"><em>properties</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Adds a C interface to provide as service to the Celix framework.</p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">serviceName</td><td>the service name. </td></tr>
-    <tr><td class="paramname">version</td><td>The version of the interface (e.g. "1.0.0"), Can be a NULL pointer. </td></tr>
-    <tr><td class="paramname">properties</td><td>To (meta) properties to provide with the service. Can be a NULL pointer. </td></tr>
-  </table>
-  </dd>
-</dl>
-
-</div>
-</div>
-<a id="ad7d4a85042adba432bd8d398d9c106b8"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ad7d4a85042adba432bd8d398d9c106b8">&#9670;&nbsp;</a></span>celix_dmComponent_addServiceDependency()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">celix_status_t celix_dmComponent_addServiceDependency </td>
-          <td>(</td>
-          <td class="paramtype">celix_dm_component_t *&#160;</td>
-          <td class="paramname"><em>component</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">celix_dm_service_dependency_t *&#160;</td>
-          <td class="paramname"><em>dep</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Adds a C service dependency to the component </p>
-
-</div>
-</div>
-<a id="adf75af7d75d2c1f7e53d78f23f97d40c"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#adf75af7d75d2c1f7e53d78f23f97d40c">&#9670;&nbsp;</a></span>celix_dmComponent_create()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">celix_dm_component_t* celix_dmComponent_create </td>
-          <td>(</td>
-          <td class="paramtype">celix_bundle_context_t *&#160;</td>
-          <td class="paramname"><em>context</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const char *&#160;</td>
-          <td class="paramname"><em>name</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Creates a DM Component Caller has ownership. </p>
-
-</div>
-</div>
-<a id="af98630b8f8980c906d5aefc5f8a82c99"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#af98630b8f8980c906d5aefc5f8a82c99">&#9670;&nbsp;</a></span>celix_dmComponent_currentState()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname"><a class="el" href="celix__dm__component_8h.html#afd49054c559adbeb9627fa3d45d6c02a">celix_dm_component_state_t</a> celix_dmComponent_currentState </td>
-          <td>(</td>
-          <td class="paramtype">celix_dm_component_t *&#160;</td>
-          <td class="paramname"><em>cmp</em></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Returns the current state of the component. </p>
-
-</div>
-</div>
-<a id="a56a8c5019a43eb96d62fd9e98cb56ba8"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a56a8c5019a43eb96d62fd9e98cb56ba8">&#9670;&nbsp;</a></span>celix_dmComponent_destroy()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void celix_dmComponent_destroy </td>
-          <td>(</td>
-          <td class="paramtype">celix_dm_component_t *&#160;</td>
-          <td class="paramname"><em>cmp</em></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Destroys a DM Component </p>
-
-</div>
-</div>
-<a id="af62df6623e978a1cc62b3ca8ab5863c3"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#af62df6623e978a1cc62b3ca8ab5863c3">&#9670;&nbsp;</a></span>celix_dmComponent_destroyComponentInfo()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void celix_dmComponent_destroyComponentInfo </td>
-          <td>(</td>
-          <td class="paramtype"><a class="el" href="celix__dm__info_8h.html#a4325313bb7b98b6eded2212a6edd065a">dm_component_info_pt</a>&#160;</td>
-          <td class="paramname"><em>info</em></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Destroys a DM Component info struct. </p>
-
-</div>
-</div>
-<a id="a99be995e9e94514fc4f6782dd48456ba"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a99be995e9e94514fc4f6782dd48456ba">&#9670;&nbsp;</a></span>celix_dmComponent_getBundleContext()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">celix_bundle_context_t* celix_dmComponent_getBundleContext </td>
-          <td>(</td>
-          <td class="paramtype">celix_dm_component_t *&#160;</td>
-          <td class="paramname"><em>component</em></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Returns bundle context for the bundle where this DM component is part of. </p>
-
-</div>
-</div>
-<a id="a3345d3bfa11070069d745131668d02ae"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a3345d3bfa11070069d745131668d02ae">&#9670;&nbsp;</a></span>celix_dmComponent_getComponentInfo()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">celix_status_t celix_dmComponent_getComponentInfo </td>
-          <td>(</td>
-          <td class="paramtype">celix_dm_component_t *&#160;</td>
-          <td class="paramname"><em>component</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype"><a class="el" href="celix__dm__info_8h.html#a4325313bb7b98b6eded2212a6edd065a">dm_component_info_pt</a> *&#160;</td>
-          <td class="paramname"><em>info</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Create a DM Component info struct. Containing information about the component. Caller has ownership. </p>
-
-</div>
-</div>
-<a id="a5647f75ea3a3c3755940ee42f51320a8"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a5647f75ea3a3c3755940ee42f51320a8">&#9670;&nbsp;</a></span>celix_dmComponent_getImplementation()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void* celix_dmComponent_getImplementation </td>
-          <td>(</td>
-          <td class="paramtype">celix_dm_component_t *&#160;</td>
-          <td class="paramname"><em>cmp</em></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Returns the implementation of the component. e.g. the component handle/self/this pointer. </p>
-
-</div>
-</div>
-<a id="ae0312e00f51f85d8e48b18020964e21f"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ae0312e00f51f85d8e48b18020964e21f">&#9670;&nbsp;</a></span>celix_dmComponent_getInterfaces()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">celix_status_t celix_dmComponent_getInterfaces </td>
-          <td>(</td>
-          <td class="paramtype">celix_dm_component_t *&#160;</td>
-          <td class="paramname"><em>component</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">celix_array_list_t **&#160;</td>
-          <td class="paramname"><em>servicesNames</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Returns an arraylist of service names. The caller owns the arraylist and strings (char *) </p>
-
-</div>
-</div>
-<a id="a30de51befa422dc65ac89ae3d9b8319f"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a30de51befa422dc65ac89ae3d9b8319f">&#9670;&nbsp;</a></span>celix_dmComponent_getName()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">const char* celix_dmComponent_getName </td>
-          <td>(</td>
-          <td class="paramtype">celix_dm_component_t *&#160;</td>
-          <td class="paramname"><em>cmp</em></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Returns the DM component name. This is used when printing information about the component. </p>
-
-</div>
-</div>
-<a id="a7bbf1a0da294be7ba9ae8272f1b938d7"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a7bbf1a0da294be7ba9ae8272f1b938d7">&#9670;&nbsp;</a></span>celix_dmComponent_isActive()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">bool celix_dmComponent_isActive </td>
-          <td>(</td>
-          <td class="paramtype">celix_dm_component_t *&#160;</td>
-          <td class="paramname"><em>component</em></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-</div>
-</div>
-<a id="a3e4a6e8e87cc8d3b3655eaaa06ad261e"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a3e4a6e8e87cc8d3b3655eaaa06ad261e">&#9670;&nbsp;</a></span>celix_dmComponent_removeInterface()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">celix_status_t celix_dmComponent_removeInterface </td>
-          <td>(</td>
-          <td class="paramtype">celix_dm_component_t *&#160;</td>
-          <td class="paramname"><em>component</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const void *&#160;</td>
-          <td class="paramname"><em>service</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Removed a C interface from a component the Celix framework.</p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">serviceName</td><td>the service name. </td></tr>
-  </table>
-  </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>CELIX_SUCCESS when removed, CELIX_ILLEGAL_ARGUMENT when the component does not provide the interface </dd></dl>
-
-</div>
-</div>
-<a id="a0ce2c610cbe3a329ea6561eb5cda0d8d"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a0ce2c610cbe3a329ea6561eb5cda0d8d">&#9670;&nbsp;</a></span>celix_dmComponent_removeServiceDependency()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">celix_status_t celix_dmComponent_removeServiceDependency </td>
-          <td>(</td>
-          <td class="paramtype">celix_dm_component_t *&#160;</td>
-          <td class="paramname"><em>component</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">celix_dm_service_dependency_t *&#160;</td>
-          <td class="paramname"><em>dependency</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Removes a C service dependency to the component </p>
-
-</div>
-</div>
-<a id="a017e996f6b1db5e902bf3a9cc043634f"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a017e996f6b1db5e902bf3a9cc043634f">&#9670;&nbsp;</a></span>celix_dmComponent_setCallbacks()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">celix_status_t celix_dmComponent_setCallbacks </td>
-          <td>(</td>
-          <td class="paramtype">celix_dm_component_t *&#160;</td>
-          <td class="paramname"><em>component</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype"><a class="el" href="celix__dm__component_8h.html#a9c73a72049f39d42d66b6d9c60d185dc">celix_dm_cmp_lifecycle_fpt</a>&#160;</td>
-          <td class="paramname"><em>init</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype"><a class="el" href="celix__dm__component_8h.html#a9c73a72049f39d42d66b6d9c60d185dc">celix_dm_cmp_lifecycle_fpt</a>&#160;</td>
-          <td class="paramname"><em>start</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype"><a class="el" href="celix__dm__component_8h.html#a9c73a72049f39d42d66b6d9c60d185dc">celix_dm_cmp_lifecycle_fpt</a>&#160;</td>
-          <td class="paramname"><em>stop</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype"><a class="el" href="celix__dm__component_8h.html#a9c73a72049f39d42d66b6d9c60d185dc">celix_dm_cmp_lifecycle_fpt</a>&#160;</td>
-          <td class="paramname"><em>deinit</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Set the component life cycle callbacks. The first argument will be the component implementation (</p><dl class="section see"><dt>See also</dt><dd>component_getImplementation) </dd></dl>
-
-</div>
-</div>
-<a id="ab8bd7a13007bda2619c1764886eabeab"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ab8bd7a13007bda2619c1764886eabeab">&#9670;&nbsp;</a></span>celix_dmComponent_setCLanguageProperty()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">celix_status_t celix_dmComponent_setCLanguageProperty </td>
-          <td>(</td>
-          <td class="paramtype">celix_dm_component_t *&#160;</td>
-          <td class="paramname"><em>component</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">bool&#160;</td>
-          <td class="paramname"><em>setCLangProp</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Specify if a default 'service.lang=C' should be added to the properties of interfaces if no 'service.lang' has been provided. Default is false. Note that this should be set before using component_addInterface. </p>
-
-</div>
-</div>
-<a id="a45a01df6ed75d8530563d52f58a0b165"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a45a01df6ed75d8530563d52f58a0b165">&#9670;&nbsp;</a></span>celix_dmComponent_setImplementation()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">celix_status_t celix_dmComponent_setImplementation </td>
-          <td>(</td>
-          <td class="paramtype">celix_dm_component_t *&#160;</td>
-          <td class="paramname"><em>component</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">void *&#160;</td>
-          <td class="paramname"><em>implementation</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Sets the implementation of the component. e.g. the component handle/self/this pointer. </p>
-
-</div>
-</div>
-</div><!-- contents -->
-<div class="ttc" id="acelix__dm__component_8h_html_a9c73a72049f39d42d66b6d9c60d185dc"><div class="ttname"><a href="celix__dm__component_8h.html#a9c73a72049f39d42d66b6d9c60d185dc">celix_dm_cmp_lifecycle_fpt</a></div><div class="ttdeci">int(* celix_dm_cmp_lifecycle_fpt)(void *userData)</div><div class="ttdef"><b>Definition:</b> celix_dm_component.h:45</div></div>
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.18
-</small></address>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/celix__dm__component_8h__dep__incl.map b/static/docs/2.2.1/html/celix__dm__component_8h__dep__incl.map
deleted file mode 100755
index 8742e35..0000000
--- a/static/docs/2.2.1/html/celix__dm__component_8h__dep__incl.map
+++ /dev/null
@@ -1,4 +0,0 @@
-<map id="libs/framework/include/celix_dm_component.h" name="libs/framework/include/celix_dm_component.h">
-<area shape="rect" id="node1" title=" " alt="" coords="5,5,165,47"/>
-<area shape="rect" id="node2" href="$celix__api_8h.html" title=" " alt="" coords="10,95,161,136"/>
-</map>
diff --git a/static/docs/2.2.1/html/celix__dm__component_8h__dep__incl.md5 b/static/docs/2.2.1/html/celix__dm__component_8h__dep__incl.md5
deleted file mode 100755
index 518f15f..0000000
--- a/static/docs/2.2.1/html/celix__dm__component_8h__dep__incl.md5
+++ /dev/null
@@ -1 +0,0 @@
-f3b03741275a715092e1c004ff9aaf31
\ No newline at end of file
diff --git a/static/docs/2.2.1/html/celix__dm__component_8h__dep__incl.png b/static/docs/2.2.1/html/celix__dm__component_8h__dep__incl.png
deleted file mode 100755
index f6988d9..0000000
--- a/static/docs/2.2.1/html/celix__dm__component_8h__dep__incl.png
+++ /dev/null
Binary files differ
diff --git a/static/docs/2.2.1/html/celix__dm__component_8h__incl.map b/static/docs/2.2.1/html/celix__dm__component_8h__incl.map
deleted file mode 100755
index 1df7cca..0000000
--- a/static/docs/2.2.1/html/celix__dm__component_8h__incl.map
+++ /dev/null
@@ -1,11 +0,0 @@
-<map id="libs/framework/include/celix_dm_component.h" name="libs/framework/include/celix_dm_component.h">
-<area shape="rect" id="node1" title=" " alt="" coords="176,5,336,47"/>
-<area shape="rect" id="node2" title=" " alt="" coords="173,169,248,196"/>
-<area shape="rect" id="node3" title=" " alt="" coords="26,95,125,121"/>
-<area shape="rect" id="node4" title=" " alt="" coords="149,95,245,121"/>
-<area shape="rect" id="node5" title=" " alt="" coords="269,95,360,121"/>
-<area shape="rect" id="node6" title=" " alt="" coords="384,95,471,121"/>
-<area shape="rect" id="node7" href="$celix__dm__info_8h.html" title=" " alt="" coords="495,95,608,121"/>
-<area shape="rect" id="node8" title=" " alt="" coords="418,169,538,196"/>
-<area shape="rect" id="node9" title=" " alt="" coords="563,169,687,196"/>
-</map>
diff --git a/static/docs/2.2.1/html/celix__dm__component_8h__incl.md5 b/static/docs/2.2.1/html/celix__dm__component_8h__incl.md5
deleted file mode 100755
index 9b14e8d..0000000
--- a/static/docs/2.2.1/html/celix__dm__component_8h__incl.md5
+++ /dev/null
@@ -1 +0,0 @@
-93f3caab7f8ba45b46d464dd9715fa61
\ No newline at end of file
diff --git a/static/docs/2.2.1/html/celix__dm__component_8h__incl.png b/static/docs/2.2.1/html/celix__dm__component_8h__incl.png
deleted file mode 100755
index 52161a5..0000000
--- a/static/docs/2.2.1/html/celix__dm__component_8h__incl.png
+++ /dev/null
Binary files differ
diff --git a/static/docs/2.2.1/html/celix__dm__component_8h_source.html b/static/docs/2.2.1/html/celix__dm__component_8h_source.html
deleted file mode 100755
index f178880..0000000
--- a/static/docs/2.2.1/html/celix__dm__component_8h_source.html
+++ /dev/null
@@ -1,202 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>Celix: libs/framework/include/celix_dm_component.h Source File</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/searchdata.js"></script>
-<script type="text/javascript" src="search/search.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">Celix
-   &#160;<span id="projectnumber">2.2.1</span>
-   </div>
-   <div id="projectbrief">An implementation of the OSGi specification adapted to C and C++</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.18 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
-     onmouseover="return searchBox.OnSearchSelectShow()"
-     onmouseout="return searchBox.OnSearchSelectHide()"
-     onkeydown="return searchBox.OnSearchSelectKey(event)">
-</div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div id="nav-path" class="navpath">
-  <ul>
-<li class="navelem"><a class="el" href="dir_6719ab1f1f7655efc2fa43f7eb574fd1.html">libs</a></li><li class="navelem"><a class="el" href="dir_edbb2ffdc3e165978e68de3a46f2e8a0.html">framework</a></li><li class="navelem"><a class="el" href="dir_bc286dd6b945a73064974dfd7e40f558.html">include</a></li>  </ul>
-</div>
-</div><!-- top -->
-<div class="header">
-  <div class="headertitle">
-<div class="title">celix_dm_component.h</div>  </div>
-</div><!--header-->
-<div class="contents">
-<a href="celix__dm__component_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div>
-<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div>
-<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div>
-<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div>
-<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div>
-<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div>
-<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div>
-<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div>
-<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div>
-<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div>
-<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div>
-<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div>
-<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div>
-<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div>
-<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> *  KIND, either express or implied.  See the License for the</span></div>
-<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div>
-<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div>
-<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div>
-<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160; </div>
-<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef CELIX_COMPONENT_H_</span></div>
-<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define CELIX_COMPONENT_H_</span></div>
-<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160; </div>
-<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &lt;stdbool.h&gt;</span></div>
-<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160; </div>
-<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#include &quot;celix_types.h&quot;</span></div>
-<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="preprocessor">#include &quot;celix_errno.h&quot;</span></div>
-<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="preprocessor">#include &quot;properties.h&quot;</span></div>
-<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="preprocessor">#include &quot;array_list.h&quot;</span></div>
-<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="celix__dm__info_8h.html">celix_dm_info.h</a>&quot;</span></div>
-<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160; </div>
-<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
-<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160; </div>
-<div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="celix__dm__component_8h.html#ab8b6c8d35fe5b976b8f58a6816e6c4e4">   35</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code" href="celix__dm__component_8h.html#ab8b6c8d35fe5b976b8f58a6816e6c4e4">celix_dm_component_state_enum</a> {</div>
-<div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="celix__dm__component_8h.html#ab8b6c8d35fe5b976b8f58a6816e6c4e4aedd3ab4f7703955241fecb14df3fb59e">   36</a></span>&#160;    <a class="code" href="celix__dm__component_8h.html#ab8b6c8d35fe5b976b8f58a6816e6c4e4aedd3ab4f7703955241fecb14df3fb59e">DM_CMP_STATE_INACTIVE</a> = 1,</div>
-<div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="celix__dm__component_8h.html#ab8b6c8d35fe5b976b8f58a6816e6c4e4a76d77f632cc37534055bb227446f5ffc">   37</a></span>&#160;    <a class="code" href="celix__dm__component_8h.html#ab8b6c8d35fe5b976b8f58a6816e6c4e4a76d77f632cc37534055bb227446f5ffc">DM_CMP_STATE_WAITING_FOR_REQUIRED</a> = 2,</div>
-<div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="celix__dm__component_8h.html#ab8b6c8d35fe5b976b8f58a6816e6c4e4ad948b8a0aa722ce528335632176dac3e">   38</a></span>&#160;    <a class="code" href="celix__dm__component_8h.html#ab8b6c8d35fe5b976b8f58a6816e6c4e4ad948b8a0aa722ce528335632176dac3e">DM_CMP_STATE_INSTANTIATED_AND_WAITING_FOR_REQUIRED</a> = 3,</div>
-<div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="celix__dm__component_8h.html#ab8b6c8d35fe5b976b8f58a6816e6c4e4a582ed79692df8863f9ae6b5663cf1a46">   39</a></span>&#160;    <a class="code" href="celix__dm__component_8h.html#ab8b6c8d35fe5b976b8f58a6816e6c4e4a582ed79692df8863f9ae6b5663cf1a46">DM_CMP_STATE_TRACKING_OPTIONAL</a> = 4,</div>
-<div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="celix__dm__component_8h.html#afd49054c559adbeb9627fa3d45d6c02a">   40</a></span>&#160;} <a class="code" href="celix__dm__component_8h.html#afd49054c559adbeb9627fa3d45d6c02a">celix_dm_component_state_t</a>;</div>
-<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160; </div>
-<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="preprocessor">#define CELIX_DM_COMPONENT_MAX_ID_LENGTH 64</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="celix__dm__component_8h.html#aa19dcff16825fa2e91656ff136d877cf">   43</a></span>&#160;<span class="preprocessor">#define CELIX_DM_COMPONENT_MAX_NAME_LENGTH 128</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="celix__dm__component_8h.html#af8861849eb5e4057def1bb12a5111d00">   44</a></span>&#160; </div>
-<div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="celix__dm__component_8h.html#a9c73a72049f39d42d66b6d9c60d185dc">   45</a></span>&#160;<span class="keyword">typedef</span> int (*<a class="code" href="celix__dm__component_8h.html#a9c73a72049f39d42d66b6d9c60d185dc">celix_dm_cmp_lifecycle_fpt</a>)(<span class="keywordtype">void</span> *userData);</div>
-<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160; </div>
-<div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="celix__dm__component_8h.html#adf75af7d75d2c1f7e53d78f23f97d40c">   51</a></span>&#160;celix_dm_component_t* <a class="code" href="celix__dm__component_8h.html#adf75af7d75d2c1f7e53d78f23f97d40c">celix_dmComponent_create</a>(celix_bundle_context_t *context, <span class="keyword">const</span> <span class="keywordtype">char</span>* name);</div>
-<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160; </div>
-<div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="celix__dm__component_8h.html#a56a8c5019a43eb96d62fd9e98cb56ba8">   56</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="celix__dm__component_8h.html#a56a8c5019a43eb96d62fd9e98cb56ba8">celix_dmComponent_destroy</a>(celix_dm_component_t *cmp);</div>
-<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160; </div>
-<div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="celix__dm__component_8h.html#ab8bd7a13007bda2619c1764886eabeab">   62</a></span>&#160;celix_status_t <a class="code" href="celix__dm__component_8h.html#ab8bd7a13007bda2619c1764886eabeab">celix_dmComponent_setCLanguageProperty</a>(celix_dm_component_t *component, <span class="keywordtype">bool</span> setCLangProp);</div>
-<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160; </div>
-<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160; </div>
-<div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="celix__dm__component_8h.html#aafd2f2eff931784f70eb2a37e943446a">   72</a></span>&#160;celix_status_t <a class="code" href="celix__dm__component_8h.html#aafd2f2eff931784f70eb2a37e943446a">celix_dmComponent_addInterface</a>(celix_dm_component_t *component, <span class="keyword">const</span> <span class="keywordtype">char</span>* serviceName, <span class="keyword">const</span> <span class="keywordtype">char</span>* serviceVersion, <span class="keyword">const</span> <span class="keywordtype">void</span>* service, celix_properties_t *properties);</div>
-<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160; </div>
-<div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="celix__dm__component_8h.html#a3e4a6e8e87cc8d3b3655eaaa06ad261e">   80</a></span>&#160;celix_status_t <a class="code" href="celix__dm__component_8h.html#a3e4a6e8e87cc8d3b3655eaaa06ad261e">celix_dmComponent_removeInterface</a>(celix_dm_component_t *component, <span class="keyword">const</span> <span class="keywordtype">void</span>* service);</div>
-<div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="celix__dm__component_8h.html#a45a01df6ed75d8530563d52f58a0b165">   84</a></span>&#160;celix_status_t <a class="code" href="celix__dm__component_8h.html#a45a01df6ed75d8530563d52f58a0b165">celix_dmComponent_setImplementation</a>(celix_dm_component_t *component, <span class="keywordtype">void</span>* implementation);</div>
-<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160; </div>
-<div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="celix__dm__component_8h.html#ae0312e00f51f85d8e48b18020964e21f">   89</a></span>&#160;celix_status_t <a class="code" href="celix__dm__component_8h.html#ae0312e00f51f85d8e48b18020964e21f">celix_dmComponent_getInterfaces</a>(celix_dm_component_t *component, celix_array_list_t **servicesNames);</div>
-<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160; </div>
-<div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="celix__dm__component_8h.html#ad7d4a85042adba432bd8d398d9c106b8">   94</a></span>&#160;celix_status_t <a class="code" href="celix__dm__component_8h.html#ad7d4a85042adba432bd8d398d9c106b8">celix_dmComponent_addServiceDependency</a>(celix_dm_component_t *component, celix_dm_service_dependency_t *dep);</div>
-<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160; </div>
-<div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="celix__dm__component_8h.html#a0ce2c610cbe3a329ea6561eb5cda0d8d">   99</a></span>&#160;celix_status_t <a class="code" href="celix__dm__component_8h.html#a0ce2c610cbe3a329ea6561eb5cda0d8d">celix_dmComponent_removeServiceDependency</a>(celix_dm_component_t *component, celix_dm_service_dependency_t *dependency);</div>
-<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160; </div>
-<div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="celix__dm__component_8h.html#af98630b8f8980c906d5aefc5f8a82c99">  104</a></span>&#160;<a class="code" href="celix__dm__component_8h.html#afd49054c559adbeb9627fa3d45d6c02a">celix_dm_component_state_t</a> <a class="code" href="celix__dm__component_8h.html#af98630b8f8980c906d5aefc5f8a82c99">celix_dmComponent_currentState</a>(celix_dm_component_t *cmp);</div>
-<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160; </div>
-<div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="celix__dm__component_8h.html#a5647f75ea3a3c3755940ee42f51320a8">  109</a></span>&#160;<span class="keywordtype">void</span> * <a class="code" href="celix__dm__component_8h.html#a5647f75ea3a3c3755940ee42f51320a8">celix_dmComponent_getImplementation</a>(celix_dm_component_t *cmp);</div>
-<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160; </div>
-<div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="celix__dm__component_8h.html#a30de51befa422dc65ac89ae3d9b8319f">  114</a></span>&#160;<span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="celix__dm__component_8h.html#a30de51befa422dc65ac89ae3d9b8319f">celix_dmComponent_getName</a>(celix_dm_component_t *cmp);</div>
-<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160; </div>
-<div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="celix__dm__component_8h.html#a99be995e9e94514fc4f6782dd48456ba">  119</a></span>&#160;celix_bundle_context_t* <a class="code" href="celix__dm__component_8h.html#a99be995e9e94514fc4f6782dd48456ba">celix_dmComponent_getBundleContext</a>(celix_dm_component_t *component);</div>
-<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160; </div>
-<div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="celix__dm__component_8h.html#a017e996f6b1db5e902bf3a9cc043634f">  125</a></span>&#160;celix_status_t <a class="code" href="celix__dm__component_8h.html#a017e996f6b1db5e902bf3a9cc043634f">celix_dmComponent_setCallbacks</a>(celix_dm_component_t *component, <a class="code" href="celix__dm__component_8h.html#a9c73a72049f39d42d66b6d9c60d185dc">celix_dm_cmp_lifecycle_fpt</a> init, <a class="code" href="celix__dm__component_8h.html#a9c73a72049f39d42d66b6d9c60d185dc">celix_dm_cmp_lifecycle_fpt</a> start, <a class="code" href="celix__dm__component_8h.html#a9c73a72049f39d42d66b6d9c60d185dc">celix_dm_cmp_lifecycle_fpt</a> stop, <a class="code" href="celix__dm__component_8h.html#a9c73a72049f39d42d66b6d9c60d185dc">celix_dm_cmp_lifecycle_fpt</a> deinit);</div>
-<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160; </div>
-<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;<span class="preprocessor">#define CELIX_DMCOMPONENT_SETCALLBACKS(dmCmp, type, init, start, stop, deinit) \</span></div>
-<div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="celix__dm__component_8h.html#aad1f80b04be28b8e7bf495113c2fe452">  131</a></span>&#160;<span class="preprocessor">    do {  \</span></div>
-<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;<span class="preprocessor">        int (*tmp_init)(type)   = (init); \</span></div>
-<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;<span class="preprocessor">        int (*tmp_start)(type)  = (start); \</span></div>
-<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;<span class="preprocessor">        int (*tmp_stop)(type)   = (stop); \</span></div>
-<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;<span class="preprocessor">        int (*tmp_deinit)(type) = (deinit); \</span></div>
-<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;<span class="preprocessor">        celix_dmComponent_setCallbacks((dmCmp), (celix_dm_cmp_lifecycle_fpt)tmp_init, (celix_dm_cmp_lifecycle_fpt)tmp_start, (celix_dm_cmp_lifecycle_fpt)tmp_stop, (celix_dm_cmp_lifecycle_fpt)tmp_deinit); \</span></div>
-<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;<span class="preprocessor">    } while(0)</span></div>
-<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160; </div>
-<div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="celix__dm__component_8h.html#a3345d3bfa11070069d745131668d02ae">  143</a></span>&#160;celix_status_t <a class="code" href="celix__dm__component_8h.html#a3345d3bfa11070069d745131668d02ae">celix_dmComponent_getComponentInfo</a>(celix_dm_component_t *component, <a class="code" href="structcelix__dm__component__info__struct.html">dm_component_info_pt</a> *info);</div>
-<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160; </div>
-<div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="celix__dm__component_8h.html#a7bbf1a0da294be7ba9ae8272f1b938d7">  145</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="celix__dm__component_8h.html#a7bbf1a0da294be7ba9ae8272f1b938d7">celix_dmComponent_isActive</a>(celix_dm_component_t *component);</div>
-<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160; </div>
-<div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="celix__dm__component_8h.html#af62df6623e978a1cc62b3ca8ab5863c3">  150</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="celix__dm__component_8h.html#af62df6623e978a1cc62b3ca8ab5863c3">celix_dmComponent_destroyComponentInfo</a>(<a class="code" href="structcelix__dm__component__info__struct.html">dm_component_info_pt</a> info);</div>
-<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160; </div>
-<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;}</div>
-<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160; </div>
-<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* COMPONENT_H_ */</span><span class="preprocessor"></span></div>
-</div><!-- fragment --></div><!-- contents -->
-<div class="ttc" id="acelix__dm__component_8h_html_ab8bd7a13007bda2619c1764886eabeab"><div class="ttname"><a href="celix__dm__component_8h.html#ab8bd7a13007bda2619c1764886eabeab">celix_dmComponent_setCLanguageProperty</a></div><div class="ttdeci">celix_status_t celix_dmComponent_setCLanguageProperty(celix_dm_component_t *component, bool setCLangProp)</div></div>
-<div class="ttc" id="acelix__dm__component_8h_html_a3345d3bfa11070069d745131668d02ae"><div class="ttname"><a href="celix__dm__component_8h.html#a3345d3bfa11070069d745131668d02ae">celix_dmComponent_getComponentInfo</a></div><div class="ttdeci">celix_status_t celix_dmComponent_getComponentInfo(celix_dm_component_t *component, dm_component_info_pt *info)</div></div>
-<div class="ttc" id="acelix__dm__component_8h_html_aafd2f2eff931784f70eb2a37e943446a"><div class="ttname"><a href="celix__dm__component_8h.html#aafd2f2eff931784f70eb2a37e943446a">celix_dmComponent_addInterface</a></div><div class="ttdeci">celix_status_t celix_dmComponent_addInterface(celix_dm_component_t *component, const char *serviceName, const char *serviceVersion, const void *service, celix_properties_t *properties)</div></div>
-<div class="ttc" id="acelix__dm__component_8h_html_a017e996f6b1db5e902bf3a9cc043634f"><div class="ttname"><a href="celix__dm__component_8h.html#a017e996f6b1db5e902bf3a9cc043634f">celix_dmComponent_setCallbacks</a></div><div class="ttdeci">celix_status_t celix_dmComponent_setCallbacks(celix_dm_component_t *component, celix_dm_cmp_lifecycle_fpt init, celix_dm_cmp_lifecycle_fpt start, celix_dm_cmp_lifecycle_fpt stop, celix_dm_cmp_lifecycle_fpt deinit)</div></div>
-<div class="ttc" id="acelix__dm__info_8h_html"><div class="ttname"><a href="celix__dm__info_8h.html">celix_dm_info.h</a></div></div>
-<div class="ttc" id="acelix__dm__component_8h_html_a5647f75ea3a3c3755940ee42f51320a8"><div class="ttname"><a href="celix__dm__component_8h.html#a5647f75ea3a3c3755940ee42f51320a8">celix_dmComponent_getImplementation</a></div><div class="ttdeci">void * celix_dmComponent_getImplementation(celix_dm_component_t *cmp)</div></div>
-<div class="ttc" id="acelix__dm__component_8h_html_af98630b8f8980c906d5aefc5f8a82c99"><div class="ttname"><a href="celix__dm__component_8h.html#af98630b8f8980c906d5aefc5f8a82c99">celix_dmComponent_currentState</a></div><div class="ttdeci">celix_dm_component_state_t celix_dmComponent_currentState(celix_dm_component_t *cmp)</div></div>
-<div class="ttc" id="acelix__dm__component_8h_html_a45a01df6ed75d8530563d52f58a0b165"><div class="ttname"><a href="celix__dm__component_8h.html#a45a01df6ed75d8530563d52f58a0b165">celix_dmComponent_setImplementation</a></div><div class="ttdeci">celix_status_t celix_dmComponent_setImplementation(celix_dm_component_t *component, void *implementation)</div></div>
-<div class="ttc" id="acelix__dm__component_8h_html_adf75af7d75d2c1f7e53d78f23f97d40c"><div class="ttname"><a href="celix__dm__component_8h.html#adf75af7d75d2c1f7e53d78f23f97d40c">celix_dmComponent_create</a></div><div class="ttdeci">celix_dm_component_t * celix_dmComponent_create(celix_bundle_context_t *context, const char *name)</div></div>
-<div class="ttc" id="acelix__dm__component_8h_html_a99be995e9e94514fc4f6782dd48456ba"><div class="ttname"><a href="celix__dm__component_8h.html#a99be995e9e94514fc4f6782dd48456ba">celix_dmComponent_getBundleContext</a></div><div class="ttdeci">celix_bundle_context_t * celix_dmComponent_getBundleContext(celix_dm_component_t *component)</div></div>
-<div class="ttc" id="acelix__dm__component_8h_html_a9c73a72049f39d42d66b6d9c60d185dc"><div class="ttname"><a href="celix__dm__component_8h.html#a9c73a72049f39d42d66b6d9c60d185dc">celix_dm_cmp_lifecycle_fpt</a></div><div class="ttdeci">int(* celix_dm_cmp_lifecycle_fpt)(void *userData)</div><div class="ttdef"><b>Definition:</b> celix_dm_component.h:45</div></div>
-<div class="ttc" id="acelix__dm__component_8h_html_ab8b6c8d35fe5b976b8f58a6816e6c4e4a76d77f632cc37534055bb227446f5ffc"><div class="ttname"><a href="celix__dm__component_8h.html#ab8b6c8d35fe5b976b8f58a6816e6c4e4a76d77f632cc37534055bb227446f5ffc">DM_CMP_STATE_WAITING_FOR_REQUIRED</a></div><div class="ttdeci">@ DM_CMP_STATE_WAITING_FOR_REQUIRED</div><div class="ttdef"><b>Definition:</b> celix_dm_component.h:37</div></div>
-<div class="ttc" id="acelix__dm__component_8h_html_ab8b6c8d35fe5b976b8f58a6816e6c4e4a582ed79692df8863f9ae6b5663cf1a46"><div class="ttname"><a href="celix__dm__component_8h.html#ab8b6c8d35fe5b976b8f58a6816e6c4e4a582ed79692df8863f9ae6b5663cf1a46">DM_CMP_STATE_TRACKING_OPTIONAL</a></div><div class="ttdeci">@ DM_CMP_STATE_TRACKING_OPTIONAL</div><div class="ttdef"><b>Definition:</b> celix_dm_component.h:39</div></div>
-<div class="ttc" id="acelix__dm__component_8h_html_ad7d4a85042adba432bd8d398d9c106b8"><div class="ttname"><a href="celix__dm__component_8h.html#ad7d4a85042adba432bd8d398d9c106b8">celix_dmComponent_addServiceDependency</a></div><div class="ttdeci">celix_status_t celix_dmComponent_addServiceDependency(celix_dm_component_t *component, celix_dm_service_dependency_t *dep)</div></div>
-<div class="ttc" id="acelix__dm__component_8h_html_a0ce2c610cbe3a329ea6561eb5cda0d8d"><div class="ttname"><a href="celix__dm__component_8h.html#a0ce2c610cbe3a329ea6561eb5cda0d8d">celix_dmComponent_removeServiceDependency</a></div><div class="ttdeci">celix_status_t celix_dmComponent_removeServiceDependency(celix_dm_component_t *component, celix_dm_service_dependency_t *dependency)</div></div>
-<div class="ttc" id="acelix__dm__component_8h_html_a7bbf1a0da294be7ba9ae8272f1b938d7"><div class="ttname"><a href="celix__dm__component_8h.html#a7bbf1a0da294be7ba9ae8272f1b938d7">celix_dmComponent_isActive</a></div><div class="ttdeci">bool celix_dmComponent_isActive(celix_dm_component_t *component)</div></div>
-<div class="ttc" id="acelix__dm__component_8h_html_ae0312e00f51f85d8e48b18020964e21f"><div class="ttname"><a href="celix__dm__component_8h.html#ae0312e00f51f85d8e48b18020964e21f">celix_dmComponent_getInterfaces</a></div><div class="ttdeci">celix_status_t celix_dmComponent_getInterfaces(celix_dm_component_t *component, celix_array_list_t **servicesNames)</div></div>
-<div class="ttc" id="acelix__dm__component_8h_html_af62df6623e978a1cc62b3ca8ab5863c3"><div class="ttname"><a href="celix__dm__component_8h.html#af62df6623e978a1cc62b3ca8ab5863c3">celix_dmComponent_destroyComponentInfo</a></div><div class="ttdeci">void celix_dmComponent_destroyComponentInfo(dm_component_info_pt info)</div></div>
-<div class="ttc" id="acelix__dm__component_8h_html_a30de51befa422dc65ac89ae3d9b8319f"><div class="ttname"><a href="celix__dm__component_8h.html#a30de51befa422dc65ac89ae3d9b8319f">celix_dmComponent_getName</a></div><div class="ttdeci">const char * celix_dmComponent_getName(celix_dm_component_t *cmp)</div></div>
-<div class="ttc" id="astructcelix__dm__component__info__struct_html"><div class="ttname"><a href="structcelix__dm__component__info__struct.html">celix_dm_component_info_struct</a></div><div class="ttdef"><b>Definition:</b> celix_dm_info.h:52</div></div>
-<div class="ttc" id="acelix__dm__component_8h_html_ab8b6c8d35fe5b976b8f58a6816e6c4e4ad948b8a0aa722ce528335632176dac3e"><div class="ttname"><a href="celix__dm__component_8h.html#ab8b6c8d35fe5b976b8f58a6816e6c4e4ad948b8a0aa722ce528335632176dac3e">DM_CMP_STATE_INSTANTIATED_AND_WAITING_FOR_REQUIRED</a></div><div class="ttdeci">@ DM_CMP_STATE_INSTANTIATED_AND_WAITING_FOR_REQUIRED</div><div class="ttdef"><b>Definition:</b> celix_dm_component.h:38</div></div>
-<div class="ttc" id="acelix__dm__component_8h_html_a56a8c5019a43eb96d62fd9e98cb56ba8"><div class="ttname"><a href="celix__dm__component_8h.html#a56a8c5019a43eb96d62fd9e98cb56ba8">celix_dmComponent_destroy</a></div><div class="ttdeci">void celix_dmComponent_destroy(celix_dm_component_t *cmp)</div></div>
-<div class="ttc" id="acelix__dm__component_8h_html_a3e4a6e8e87cc8d3b3655eaaa06ad261e"><div class="ttname"><a href="celix__dm__component_8h.html#a3e4a6e8e87cc8d3b3655eaaa06ad261e">celix_dmComponent_removeInterface</a></div><div class="ttdeci">celix_status_t celix_dmComponent_removeInterface(celix_dm_component_t *component, const void *service)</div></div>
-<div class="ttc" id="acelix__dm__component_8h_html_afd49054c559adbeb9627fa3d45d6c02a"><div class="ttname"><a href="celix__dm__component_8h.html#afd49054c559adbeb9627fa3d45d6c02a">celix_dm_component_state_t</a></div><div class="ttdeci">enum celix_dm_component_state_enum celix_dm_component_state_t</div></div>
-<div class="ttc" id="acelix__dm__component_8h_html_ab8b6c8d35fe5b976b8f58a6816e6c4e4aedd3ab4f7703955241fecb14df3fb59e"><div class="ttname"><a href="celix__dm__component_8h.html#ab8b6c8d35fe5b976b8f58a6816e6c4e4aedd3ab4f7703955241fecb14df3fb59e">DM_CMP_STATE_INACTIVE</a></div><div class="ttdeci">@ DM_CMP_STATE_INACTIVE</div><div class="ttdef"><b>Definition:</b> celix_dm_component.h:36</div></div>
-<div class="ttc" id="acelix__dm__component_8h_html_ab8b6c8d35fe5b976b8f58a6816e6c4e4"><div class="ttname"><a href="celix__dm__component_8h.html#ab8b6c8d35fe5b976b8f58a6816e6c4e4">celix_dm_component_state_enum</a></div><div class="ttdeci">celix_dm_component_state_enum</div><div class="ttdef"><b>Definition:</b> celix_dm_component.h:35</div></div>
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.18
-</small></address>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/celix__dm__info_8h.html b/static/docs/2.2.1/html/celix__dm__info_8h.html
deleted file mode 100755
index 79ce7d6..0000000
--- a/static/docs/2.2.1/html/celix__dm__info_8h.html
+++ /dev/null
@@ -1,320 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>Celix: libs/framework/include/celix_dm_info.h File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/searchdata.js"></script>
-<script type="text/javascript" src="search/search.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">Celix
-   &#160;<span id="projectnumber">2.2.1</span>
-   </div>
-   <div id="projectbrief">An implementation of the OSGi specification adapted to C and C++</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.18 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
-     onmouseover="return searchBox.OnSearchSelectShow()"
-     onmouseout="return searchBox.OnSearchSelectHide()"
-     onkeydown="return searchBox.OnSearchSelectKey(event)">
-</div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div id="nav-path" class="navpath">
-  <ul>
-<li class="navelem"><a class="el" href="dir_6719ab1f1f7655efc2fa43f7eb574fd1.html">libs</a></li><li class="navelem"><a class="el" href="dir_edbb2ffdc3e165978e68de3a46f2e8a0.html">framework</a></li><li class="navelem"><a class="el" href="dir_bc286dd6b945a73064974dfd7e40f558.html">include</a></li>  </ul>
-</div>
-</div><!-- top -->
-<div class="header">
-  <div class="summary">
-<a href="#nested-classes">Classes</a> &#124;
-<a href="#typedef-members">Typedefs</a>  </div>
-  <div class="headertitle">
-<div class="title">celix_dm_info.h File Reference</div>  </div>
-</div><!--header-->
-<div class="contents">
-<div class="textblock"><code>#include &lt;stdbool.h&gt;</code><br />
-<code>#include &quot;celix_array_list.h&quot;</code><br />
-<code>#include &quot;celix_properties.h&quot;</code><br />
-</div><div class="textblock"><div class="dynheader">
-Include dependency graph for celix_dm_info.h:</div>
-<div class="dyncontent">
-<div class="center"><img src="celix__dm__info_8h__incl.png" border="0" usemap="#libs_2framework_2include_2celix__dm__info_8h" alt=""/></div>
-<map name="libs_2framework_2include_2celix__dm__info_8h" id="libs_2framework_2include_2celix__dm__info_8h">
-<area shape="rect" title=" " alt="" coords="89,5,239,47"/>
-<area shape="rect" title=" " alt="" coords="5,95,80,121"/>
-<area shape="rect" title=" " alt="" coords="104,95,224,121"/>
-<area shape="rect" title=" " alt="" coords="249,95,373,121"/>
-</map>
-</div>
-</div><div class="textblock"><div class="dynheader">
-This graph shows which files directly or indirectly include this file:</div>
-<div class="dyncontent">
-<div class="center"><img src="celix__dm__info_8h__dep__incl.png" border="0" usemap="#libs_2framework_2include_2celix__dm__info_8hdep" alt=""/></div>
-<map name="libs_2framework_2include_2celix__dm__info_8hdep" id="libs_2framework_2include_2celix__dm__info_8hdep">
-<area shape="rect" title=" " alt="" coords="115,5,266,47"/>
-<area shape="rect" href="celix__dm__component_8h.html" title=" " alt="" coords="5,95,165,136"/>
-<area shape="rect" href="celix__dm__service__dependency_8h.html" title=" " alt="" coords="190,95,405,136"/>
-<area shape="rect" href="celix__api_8h.html" title=" " alt="" coords="10,184,161,225"/>
-</map>
-</div>
-</div>
-<p><a href="celix__dm__info_8h_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
-Classes</h2></td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__dm__interface__info__struct.html">celix_dm_interface_info_struct</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__dm__service__dependency__info__struct.html">celix_dm_service_dependency_info_struct</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__dm__component__info__struct.html">celix_dm_component_info_struct</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__dm__dependency__manager__info__struct.html">celix_dm_dependency_manager_info_struct</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
-Typedefs</h2></td></tr>
-<tr class="memitem:abb40885e5ab16c4701927d7095194ee2"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structcelix__dm__interface__info__struct.html">celix_dm_interface_info_struct</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__dm__info_8h.html#abb40885e5ab16c4701927d7095194ee2">dm_interface_info_pt</a></td></tr>
-<tr class="separator:abb40885e5ab16c4701927d7095194ee2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a3c8c9b3b3b6d6cb2853ce22f337ed7f0"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structcelix__dm__interface__info__struct.html">celix_dm_interface_info_struct</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__dm__info_8h.html#a3c8c9b3b3b6d6cb2853ce22f337ed7f0">dm_interface_info_t</a></td></tr>
-<tr class="separator:a3c8c9b3b3b6d6cb2853ce22f337ed7f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a635d8bc54edda5e7e70f7b27943196b6"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structcelix__dm__interface__info__struct.html">celix_dm_interface_info_struct</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__dm__info_8h.html#a635d8bc54edda5e7e70f7b27943196b6">celix_dm_interface_info_t</a></td></tr>
-<tr class="separator:a635d8bc54edda5e7e70f7b27943196b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a0a06988849c18fd4848452086f36ed6e"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structcelix__dm__service__dependency__info__struct.html">celix_dm_service_dependency_info_struct</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__dm__info_8h.html#a0a06988849c18fd4848452086f36ed6e">dm_service_dependency_info_pt</a></td></tr>
-<tr class="separator:a0a06988849c18fd4848452086f36ed6e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a553833e914505261622b13563c8a045e"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structcelix__dm__service__dependency__info__struct.html">celix_dm_service_dependency_info_struct</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__dm__info_8h.html#a553833e914505261622b13563c8a045e">dm_service_dependency_info_t</a></td></tr>
-<tr class="separator:a553833e914505261622b13563c8a045e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a7fd4e90372051b1549c588095fb24fd4"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structcelix__dm__service__dependency__info__struct.html">celix_dm_service_dependency_info_struct</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__dm__info_8h.html#a7fd4e90372051b1549c588095fb24fd4">celix_dm_service_dependency_info_t</a></td></tr>
-<tr class="separator:a7fd4e90372051b1549c588095fb24fd4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a4325313bb7b98b6eded2212a6edd065a"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structcelix__dm__component__info__struct.html">celix_dm_component_info_struct</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__dm__info_8h.html#a4325313bb7b98b6eded2212a6edd065a">dm_component_info_pt</a></td></tr>
-<tr class="separator:a4325313bb7b98b6eded2212a6edd065a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a81bba27d8f869e77dd921c7cd8ac35d7"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structcelix__dm__component__info__struct.html">celix_dm_component_info_struct</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__dm__info_8h.html#a81bba27d8f869e77dd921c7cd8ac35d7">dm_component_info_t</a></td></tr>
-<tr class="separator:a81bba27d8f869e77dd921c7cd8ac35d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a57ffe4e9f51e746fdf4ae50151150b16"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structcelix__dm__component__info__struct.html">celix_dm_component_info_struct</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__dm__info_8h.html#a57ffe4e9f51e746fdf4ae50151150b16">celix_dm_component_info_t</a></td></tr>
-<tr class="separator:a57ffe4e9f51e746fdf4ae50151150b16"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a230d51a712bc30bd2b52126e17f63738"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structcelix__dm__dependency__manager__info__struct.html">celix_dm_dependency_manager_info_struct</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__dm__info_8h.html#a230d51a712bc30bd2b52126e17f63738">dm_dependency_manager_info_pt</a></td></tr>
-<tr class="separator:a230d51a712bc30bd2b52126e17f63738"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aeaa11da320e45fdeef41c441bff70f02"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structcelix__dm__dependency__manager__info__struct.html">celix_dm_dependency_manager_info_struct</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__dm__info_8h.html#aeaa11da320e45fdeef41c441bff70f02">dm_dependency_manager_info_t</a></td></tr>
-<tr class="separator:aeaa11da320e45fdeef41c441bff70f02"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:af06092e6852ba40f4241b4e539265e64"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structcelix__dm__dependency__manager__info__struct.html">celix_dm_dependency_manager_info_struct</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__dm__info_8h.html#af06092e6852ba40f4241b4e539265e64">celix_dependency_manager_info_t</a></td></tr>
-<tr class="separator:af06092e6852ba40f4241b4e539265e64"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-<h2 class="groupheader">Typedef Documentation</h2>
-<a id="af06092e6852ba40f4241b4e539265e64"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#af06092e6852ba40f4241b4e539265e64">&#9670;&nbsp;</a></span>celix_dependency_manager_info_t</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">typedef struct <a class="el" href="structcelix__dm__dependency__manager__info__struct.html">celix_dm_dependency_manager_info_struct</a> <a class="el" href="celix__dm__info_8h.html#af06092e6852ba40f4241b4e539265e64">celix_dependency_manager_info_t</a></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-</div>
-</div>
-<a id="a57ffe4e9f51e746fdf4ae50151150b16"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a57ffe4e9f51e746fdf4ae50151150b16">&#9670;&nbsp;</a></span>celix_dm_component_info_t</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">typedef struct <a class="el" href="structcelix__dm__component__info__struct.html">celix_dm_component_info_struct</a> <a class="el" href="celix__dm__info_8h.html#a57ffe4e9f51e746fdf4ae50151150b16">celix_dm_component_info_t</a></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-</div>
-</div>
-<a id="a635d8bc54edda5e7e70f7b27943196b6"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a635d8bc54edda5e7e70f7b27943196b6">&#9670;&nbsp;</a></span>celix_dm_interface_info_t</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">typedef struct <a class="el" href="structcelix__dm__interface__info__struct.html">celix_dm_interface_info_struct</a> <a class="el" href="celix__dm__info_8h.html#a635d8bc54edda5e7e70f7b27943196b6">celix_dm_interface_info_t</a></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-</div>
-</div>
-<a id="a7fd4e90372051b1549c588095fb24fd4"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a7fd4e90372051b1549c588095fb24fd4">&#9670;&nbsp;</a></span>celix_dm_service_dependency_info_t</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">typedef struct <a class="el" href="structcelix__dm__service__dependency__info__struct.html">celix_dm_service_dependency_info_struct</a> <a class="el" href="celix__dm__info_8h.html#a7fd4e90372051b1549c588095fb24fd4">celix_dm_service_dependency_info_t</a></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-</div>
-</div>
-<a id="a4325313bb7b98b6eded2212a6edd065a"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a4325313bb7b98b6eded2212a6edd065a">&#9670;&nbsp;</a></span>dm_component_info_pt</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">typedef struct <a class="el" href="structcelix__dm__component__info__struct.html">celix_dm_component_info_struct</a>* <a class="el" href="celix__dm__info_8h.html#a4325313bb7b98b6eded2212a6edd065a">dm_component_info_pt</a></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-</div>
-</div>
-<a id="a81bba27d8f869e77dd921c7cd8ac35d7"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a81bba27d8f869e77dd921c7cd8ac35d7">&#9670;&nbsp;</a></span>dm_component_info_t</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">typedef struct <a class="el" href="structcelix__dm__component__info__struct.html">celix_dm_component_info_struct</a> <a class="el" href="celix__dm__info_8h.html#a81bba27d8f869e77dd921c7cd8ac35d7">dm_component_info_t</a></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-</div>
-</div>
-<a id="a230d51a712bc30bd2b52126e17f63738"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a230d51a712bc30bd2b52126e17f63738">&#9670;&nbsp;</a></span>dm_dependency_manager_info_pt</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">typedef struct <a class="el" href="structcelix__dm__dependency__manager__info__struct.html">celix_dm_dependency_manager_info_struct</a>* <a class="el" href="celix__dm__info_8h.html#a230d51a712bc30bd2b52126e17f63738">dm_dependency_manager_info_pt</a></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-</div>
-</div>
-<a id="aeaa11da320e45fdeef41c441bff70f02"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#aeaa11da320e45fdeef41c441bff70f02">&#9670;&nbsp;</a></span>dm_dependency_manager_info_t</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">typedef struct <a class="el" href="structcelix__dm__dependency__manager__info__struct.html">celix_dm_dependency_manager_info_struct</a> <a class="el" href="celix__dm__info_8h.html#aeaa11da320e45fdeef41c441bff70f02">dm_dependency_manager_info_t</a></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-</div>
-</div>
-<a id="abb40885e5ab16c4701927d7095194ee2"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#abb40885e5ab16c4701927d7095194ee2">&#9670;&nbsp;</a></span>dm_interface_info_pt</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">typedef struct <a class="el" href="structcelix__dm__interface__info__struct.html">celix_dm_interface_info_struct</a>* <a class="el" href="celix__dm__info_8h.html#abb40885e5ab16c4701927d7095194ee2">dm_interface_info_pt</a></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-</div>
-</div>
-<a id="a3c8c9b3b3b6d6cb2853ce22f337ed7f0"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a3c8c9b3b3b6d6cb2853ce22f337ed7f0">&#9670;&nbsp;</a></span>dm_interface_info_t</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">typedef struct <a class="el" href="structcelix__dm__interface__info__struct.html">celix_dm_interface_info_struct</a> <a class="el" href="celix__dm__info_8h.html#a3c8c9b3b3b6d6cb2853ce22f337ed7f0">dm_interface_info_t</a></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-</div>
-</div>
-<a id="a0a06988849c18fd4848452086f36ed6e"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a0a06988849c18fd4848452086f36ed6e">&#9670;&nbsp;</a></span>dm_service_dependency_info_pt</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">typedef struct <a class="el" href="structcelix__dm__service__dependency__info__struct.html">celix_dm_service_dependency_info_struct</a>* <a class="el" href="celix__dm__info_8h.html#a0a06988849c18fd4848452086f36ed6e">dm_service_dependency_info_pt</a></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-</div>
-</div>
-<a id="a553833e914505261622b13563c8a045e"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a553833e914505261622b13563c8a045e">&#9670;&nbsp;</a></span>dm_service_dependency_info_t</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">typedef struct <a class="el" href="structcelix__dm__service__dependency__info__struct.html">celix_dm_service_dependency_info_struct</a> <a class="el" href="celix__dm__info_8h.html#a553833e914505261622b13563c8a045e">dm_service_dependency_info_t</a></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-</div>
-</div>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.18
-</small></address>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/celix__dm__info_8h__dep__incl.map b/static/docs/2.2.1/html/celix__dm__info_8h__dep__incl.map
deleted file mode 100755
index ace9373..0000000
--- a/static/docs/2.2.1/html/celix__dm__info_8h__dep__incl.map
+++ /dev/null
@@ -1,6 +0,0 @@
-<map id="libs/framework/include/celix_dm_info.h" name="libs/framework/include/celix_dm_info.h">
-<area shape="rect" id="node1" title=" " alt="" coords="115,5,266,47"/>
-<area shape="rect" id="node2" href="$celix__dm__component_8h.html" title=" " alt="" coords="5,95,165,136"/>
-<area shape="rect" id="node4" href="$celix__dm__service__dependency_8h.html" title=" " alt="" coords="190,95,405,136"/>
-<area shape="rect" id="node3" href="$celix__api_8h.html" title=" " alt="" coords="10,184,161,225"/>
-</map>
diff --git a/static/docs/2.2.1/html/celix__dm__info_8h__dep__incl.md5 b/static/docs/2.2.1/html/celix__dm__info_8h__dep__incl.md5
deleted file mode 100755
index 0d4047d..0000000
--- a/static/docs/2.2.1/html/celix__dm__info_8h__dep__incl.md5
+++ /dev/null
@@ -1 +0,0 @@
-4a8d8440307c1816782f2a3457ece53d
\ No newline at end of file
diff --git a/static/docs/2.2.1/html/celix__dm__info_8h__dep__incl.png b/static/docs/2.2.1/html/celix__dm__info_8h__dep__incl.png
deleted file mode 100755
index c17c4ed..0000000
--- a/static/docs/2.2.1/html/celix__dm__info_8h__dep__incl.png
+++ /dev/null
Binary files differ
diff --git a/static/docs/2.2.1/html/celix__dm__info_8h__incl.map b/static/docs/2.2.1/html/celix__dm__info_8h__incl.map
deleted file mode 100755
index e79a78c..0000000
--- a/static/docs/2.2.1/html/celix__dm__info_8h__incl.map
+++ /dev/null
@@ -1,6 +0,0 @@
-<map id="libs/framework/include/celix_dm_info.h" name="libs/framework/include/celix_dm_info.h">
-<area shape="rect" id="node1" title=" " alt="" coords="89,5,239,47"/>
-<area shape="rect" id="node2" title=" " alt="" coords="5,95,80,121"/>
-<area shape="rect" id="node3" title=" " alt="" coords="104,95,224,121"/>
-<area shape="rect" id="node4" title=" " alt="" coords="249,95,373,121"/>
-</map>
diff --git a/static/docs/2.2.1/html/celix__dm__info_8h__incl.md5 b/static/docs/2.2.1/html/celix__dm__info_8h__incl.md5
deleted file mode 100755
index 9e8c349..0000000
--- a/static/docs/2.2.1/html/celix__dm__info_8h__incl.md5
+++ /dev/null
@@ -1 +0,0 @@
-0abb7b6821ea1037166cd6b32190d1ed
\ No newline at end of file
diff --git a/static/docs/2.2.1/html/celix__dm__info_8h__incl.png b/static/docs/2.2.1/html/celix__dm__info_8h__incl.png
deleted file mode 100755
index e910e97..0000000
--- a/static/docs/2.2.1/html/celix__dm__info_8h__incl.png
+++ /dev/null
Binary files differ
diff --git a/static/docs/2.2.1/html/celix__dm__info_8h_source.html b/static/docs/2.2.1/html/celix__dm__info_8h_source.html
deleted file mode 100755
index fb5b391..0000000
--- a/static/docs/2.2.1/html/celix__dm__info_8h_source.html
+++ /dev/null
@@ -1,180 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>Celix: libs/framework/include/celix_dm_info.h Source File</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/searchdata.js"></script>
-<script type="text/javascript" src="search/search.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">Celix
-   &#160;<span id="projectnumber">2.2.1</span>
-   </div>
-   <div id="projectbrief">An implementation of the OSGi specification adapted to C and C++</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.18 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
-     onmouseover="return searchBox.OnSearchSelectShow()"
-     onmouseout="return searchBox.OnSearchSelectHide()"
-     onkeydown="return searchBox.OnSearchSelectKey(event)">
-</div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div id="nav-path" class="navpath">
-  <ul>
-<li class="navelem"><a class="el" href="dir_6719ab1f1f7655efc2fa43f7eb574fd1.html">libs</a></li><li class="navelem"><a class="el" href="dir_edbb2ffdc3e165978e68de3a46f2e8a0.html">framework</a></li><li class="navelem"><a class="el" href="dir_bc286dd6b945a73064974dfd7e40f558.html">include</a></li>  </ul>
-</div>
-</div><!-- top -->
-<div class="header">
-  <div class="headertitle">
-<div class="title">celix_dm_info.h</div>  </div>
-</div><!--header-->
-<div class="contents">
-<a href="celix__dm__info_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div>
-<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div>
-<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div>
-<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div>
-<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div>
-<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div>
-<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div>
-<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div>
-<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div>
-<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div>
-<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div>
-<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div>
-<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div>
-<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div>
-<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> *  KIND, either express or implied.  See the License for the</span></div>
-<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div>
-<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div>
-<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div>
-<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160; </div>
-<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef CELIX_DM_INFO_H_</span></div>
-<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define CELIX_DM_INFO_H_</span></div>
-<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160; </div>
-<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160; </div>
-<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160; </div>
-<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#include &lt;stdbool.h&gt;</span></div>
-<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="preprocessor">#include &quot;celix_array_list.h&quot;</span></div>
-<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="preprocessor">#include &quot;celix_properties.h&quot;</span></div>
-<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160; </div>
-<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
-<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160; </div>
-<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160; </div>
-<div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="structcelix__dm__interface__info__struct.html">   34</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structcelix__dm__interface__info__struct.html">celix_dm_interface_info_struct</a> {</div>
-<div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="structcelix__dm__interface__info__struct.html#ae2306753d7867ac9dc13d0d1b00f60be">   35</a></span>&#160;    <span class="keywordtype">char</span>* <a class="code" href="structcelix__dm__interface__info__struct.html#ae2306753d7867ac9dc13d0d1b00f60be">name</a>;</div>
-<div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="structcelix__dm__interface__info__struct.html#a6fb90a86fdaa6aefde5e598f5ca85e2c">   36</a></span>&#160;    celix_properties_t *<a class="code" href="structcelix__dm__interface__info__struct.html#a6fb90a86fdaa6aefde5e598f5ca85e2c">properties</a>;</div>
-<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;};</div>
-<div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="celix__dm__info_8h.html#a3c8c9b3b3b6d6cb2853ce22f337ed7f0">   38</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structcelix__dm__interface__info__struct.html">celix_dm_interface_info_struct</a> *<a class="code" href="celix__dm__info_8h.html#abb40885e5ab16c4701927d7095194ee2">dm_interface_info_pt</a>;  <span class="comment">//deprecated</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structcelix__dm__interface__info__struct.html">celix_dm_interface_info_struct</a> <a class="code" href="structcelix__dm__interface__info__struct.html">dm_interface_info_t</a>;  <span class="comment">//deprecated</span></div>
-<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structcelix__dm__interface__info__struct.html">celix_dm_interface_info_struct</a> <a class="code" href="structcelix__dm__interface__info__struct.html">celix_dm_interface_info_t</a>;</div>
-<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160; </div>
-<div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="structcelix__dm__service__dependency__info__struct.html">   42</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structcelix__dm__service__dependency__info__struct.html">celix_dm_service_dependency_info_struct</a> {</div>
-<div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="structcelix__dm__service__dependency__info__struct.html#ac06a272ddf7c02e335be784082ba5e9f">   43</a></span>&#160;    <span class="keywordtype">char</span> *<a class="code" href="structcelix__dm__service__dependency__info__struct.html#ac06a272ddf7c02e335be784082ba5e9f">filter</a>;</div>
-<div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="structcelix__dm__service__dependency__info__struct.html#a77659b20ca3bcc2b9282f4644bdcbe66">   44</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="structcelix__dm__service__dependency__info__struct.html#a77659b20ca3bcc2b9282f4644bdcbe66">available</a>;</div>
-<div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="structcelix__dm__service__dependency__info__struct.html#a8ad066c5fa5d75e9fb82add72cbfc705">   45</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="structcelix__dm__service__dependency__info__struct.html#a8ad066c5fa5d75e9fb82add72cbfc705">required</a>;</div>
-<div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="structcelix__dm__service__dependency__info__struct.html#ad9284f87c8033a14e5ba5de8118b7f09">   46</a></span>&#160;    <span class="keywordtype">size_t</span> <a class="code" href="structcelix__dm__service__dependency__info__struct.html#ad9284f87c8033a14e5ba5de8118b7f09">count</a>;</div>
-<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;};</div>
-<div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="celix__dm__info_8h.html#a553833e914505261622b13563c8a045e">   48</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structcelix__dm__service__dependency__info__struct.html">celix_dm_service_dependency_info_struct</a> *<a class="code" href="celix__dm__info_8h.html#a0a06988849c18fd4848452086f36ed6e">dm_service_dependency_info_pt</a>;  <span class="comment">//deprecated</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structcelix__dm__service__dependency__info__struct.html">celix_dm_service_dependency_info_struct</a> <a class="code" href="structcelix__dm__service__dependency__info__struct.html">dm_service_dependency_info_t</a>;  <span class="comment">//deprecated</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structcelix__dm__service__dependency__info__struct.html">celix_dm_service_dependency_info_struct</a> <a class="code" href="structcelix__dm__service__dependency__info__struct.html">celix_dm_service_dependency_info_t</a>;</div>
-<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160; </div>
-<div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="structcelix__dm__component__info__struct.html">   52</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structcelix__dm__component__info__struct.html">celix_dm_component_info_struct</a> {</div>
-<div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="structcelix__dm__component__info__struct.html#a08281c5b4f78ba0d025b37b18c3201b5">   53</a></span>&#160;    <span class="keywordtype">char</span> <span class="keywordtype">id</span>[64];</div>
-<div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="structcelix__dm__component__info__struct.html#aad1da907cd6f4a75f85c8321b1f6ce7a">   54</a></span>&#160;    <span class="keywordtype">char</span> <a class="code" href="structcelix__dm__component__info__struct.html#aad1da907cd6f4a75f85c8321b1f6ce7a">name</a>[128];</div>
-<div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="structcelix__dm__component__info__struct.html#a293333dd64e557ab4b3d80c44d6d2499">   55</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="structcelix__dm__component__info__struct.html#a293333dd64e557ab4b3d80c44d6d2499">active</a>;</div>
-<div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="structcelix__dm__component__info__struct.html#a0c64e56c05452d29efc60ac8b75f7163">   56</a></span>&#160;    <span class="keywordtype">char</span> * <a class="code" href="structcelix__dm__component__info__struct.html#a0c64e56c05452d29efc60ac8b75f7163">state</a>;</div>
-<div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="structcelix__dm__component__info__struct.html#abbbe72fb049ad5ebb5941421929ae51a">   57</a></span>&#160;    celix_array_list_t *<a class="code" href="structcelix__dm__component__info__struct.html#abbbe72fb049ad5ebb5941421929ae51a">interfaces</a>;   <span class="comment">// type dm_interface_info_pt</span></div>
-<div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="structcelix__dm__component__info__struct.html#abb385ead04139565ed13ed34841d1bda">   58</a></span>&#160;    celix_array_list_t *<a class="code" href="structcelix__dm__component__info__struct.html#abb385ead04139565ed13ed34841d1bda">dependency_list</a>;  <span class="comment">// type dm_service_dependency_info_pt</span></div>
-<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;};</div>
-<div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="celix__dm__info_8h.html#a81bba27d8f869e77dd921c7cd8ac35d7">   60</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structcelix__dm__component__info__struct.html">celix_dm_component_info_struct</a> *<a class="code" href="celix__dm__info_8h.html#a4325313bb7b98b6eded2212a6edd065a">dm_component_info_pt</a>; <span class="comment">//deprecated</span></div>
-<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structcelix__dm__component__info__struct.html">celix_dm_component_info_struct</a> <a class="code" href="structcelix__dm__component__info__struct.html">dm_component_info_t</a>; <span class="comment">//deprecated</span></div>
-<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structcelix__dm__component__info__struct.html">celix_dm_component_info_struct</a> <a class="code" href="structcelix__dm__component__info__struct.html">celix_dm_component_info_t</a>;</div>
-<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160; </div>
-<div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="structcelix__dm__dependency__manager__info__struct.html">   64</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structcelix__dm__dependency__manager__info__struct.html">celix_dm_dependency_manager_info_struct</a> {</div>
-<div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="structcelix__dm__dependency__manager__info__struct.html#ac51721859e70f844e4c23873aec85dfb">   65</a></span>&#160;    <span class="keywordtype">long</span> <a class="code" href="structcelix__dm__dependency__manager__info__struct.html#ac51721859e70f844e4c23873aec85dfb">bndId</a>;</div>
-<div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="structcelix__dm__dependency__manager__info__struct.html#a3d4be4557e6b124bd6b2c586fddfb75b">   66</a></span>&#160;    celix_array_list_t *<a class="code" href="structcelix__dm__dependency__manager__info__struct.html#a3d4be4557e6b124bd6b2c586fddfb75b">components</a>;      <span class="comment">// type dm_component_info</span></div>
-<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;};</div>
-<div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="celix__dm__info_8h.html#aeaa11da320e45fdeef41c441bff70f02">   68</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structcelix__dm__dependency__manager__info__struct.html">celix_dm_dependency_manager_info_struct</a> *<a class="code" href="celix__dm__info_8h.html#a230d51a712bc30bd2b52126e17f63738">dm_dependency_manager_info_pt</a>; <span class="comment">//deprecated</span></div>
-<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structcelix__dm__dependency__manager__info__struct.html">celix_dm_dependency_manager_info_struct</a> <a class="code" href="structcelix__dm__dependency__manager__info__struct.html">dm_dependency_manager_info_t</a>; <span class="comment">//deprecated</span></div>
-<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structcelix__dm__dependency__manager__info__struct.html">celix_dm_dependency_manager_info_struct</a> <a class="code" href="structcelix__dm__dependency__manager__info__struct.html">celix_dependency_manager_info_t</a>;</div>
-<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160; </div>
-<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160; </div>
-<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;}</div>
-<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160; </div>
-<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;<span class="preprocessor">#endif //CELIX_DM_INFO_H_</span></div>
-</div><!-- fragment --></div><!-- contents -->
-<div class="ttc" id="astructcelix__dm__interface__info__struct_html_a6fb90a86fdaa6aefde5e598f5ca85e2c"><div class="ttname"><a href="structcelix__dm__interface__info__struct.html#a6fb90a86fdaa6aefde5e598f5ca85e2c">celix_dm_interface_info_struct::properties</a></div><div class="ttdeci">celix_properties_t * properties</div><div class="ttdef"><b>Definition:</b> celix_dm_info.h:36</div></div>
-<div class="ttc" id="astructcelix__dm__component__info__struct_html_a0c64e56c05452d29efc60ac8b75f7163"><div class="ttname"><a href="structcelix__dm__component__info__struct.html#a0c64e56c05452d29efc60ac8b75f7163">celix_dm_component_info_struct::state</a></div><div class="ttdeci">char * state</div><div class="ttdef"><b>Definition:</b> celix_dm_info.h:56</div></div>
-<div class="ttc" id="astructcelix__dm__service__dependency__info__struct_html"><div class="ttname"><a href="structcelix__dm__service__dependency__info__struct.html">celix_dm_service_dependency_info_struct</a></div><div class="ttdef"><b>Definition:</b> celix_dm_info.h:42</div></div>
-<div class="ttc" id="astructcelix__dm__component__info__struct_html_abb385ead04139565ed13ed34841d1bda"><div class="ttname"><a href="structcelix__dm__component__info__struct.html#abb385ead04139565ed13ed34841d1bda">celix_dm_component_info_struct::dependency_list</a></div><div class="ttdeci">celix_array_list_t * dependency_list</div><div class="ttdef"><b>Definition:</b> celix_dm_info.h:58</div></div>
-<div class="ttc" id="acelix__dm__info_8h_html_a0a06988849c18fd4848452086f36ed6e"><div class="ttname"><a href="celix__dm__info_8h.html#a0a06988849c18fd4848452086f36ed6e">dm_service_dependency_info_pt</a></div><div class="ttdeci">struct celix_dm_service_dependency_info_struct * dm_service_dependency_info_pt</div><div class="ttdef"><b>Definition:</b> celix_dm_info.h:48</div></div>
-<div class="ttc" id="astructcelix__dm__interface__info__struct_html_ae2306753d7867ac9dc13d0d1b00f60be"><div class="ttname"><a href="structcelix__dm__interface__info__struct.html#ae2306753d7867ac9dc13d0d1b00f60be">celix_dm_interface_info_struct::name</a></div><div class="ttdeci">char * name</div><div class="ttdef"><b>Definition:</b> celix_dm_info.h:35</div></div>
-<div class="ttc" id="astructcelix__dm__component__info__struct_html_a293333dd64e557ab4b3d80c44d6d2499"><div class="ttname"><a href="structcelix__dm__component__info__struct.html#a293333dd64e557ab4b3d80c44d6d2499">celix_dm_component_info_struct::active</a></div><div class="ttdeci">bool active</div><div class="ttdef"><b>Definition:</b> celix_dm_info.h:55</div></div>
-<div class="ttc" id="acelix__dm__info_8h_html_a230d51a712bc30bd2b52126e17f63738"><div class="ttname"><a href="celix__dm__info_8h.html#a230d51a712bc30bd2b52126e17f63738">dm_dependency_manager_info_pt</a></div><div class="ttdeci">struct celix_dm_dependency_manager_info_struct * dm_dependency_manager_info_pt</div><div class="ttdef"><b>Definition:</b> celix_dm_info.h:68</div></div>
-<div class="ttc" id="acelix__dm__info_8h_html_abb40885e5ab16c4701927d7095194ee2"><div class="ttname"><a href="celix__dm__info_8h.html#abb40885e5ab16c4701927d7095194ee2">dm_interface_info_pt</a></div><div class="ttdeci">struct celix_dm_interface_info_struct * dm_interface_info_pt</div><div class="ttdef"><b>Definition:</b> celix_dm_info.h:38</div></div>
-<div class="ttc" id="astructcelix__dm__service__dependency__info__struct_html_ad9284f87c8033a14e5ba5de8118b7f09"><div class="ttname"><a href="structcelix__dm__service__dependency__info__struct.html#ad9284f87c8033a14e5ba5de8118b7f09">celix_dm_service_dependency_info_struct::count</a></div><div class="ttdeci">size_t count</div><div class="ttdef"><b>Definition:</b> celix_dm_info.h:46</div></div>
-<div class="ttc" id="astructcelix__dm__dependency__manager__info__struct_html_a3d4be4557e6b124bd6b2c586fddfb75b"><div class="ttname"><a href="structcelix__dm__dependency__manager__info__struct.html#a3d4be4557e6b124bd6b2c586fddfb75b">celix_dm_dependency_manager_info_struct::components</a></div><div class="ttdeci">celix_array_list_t * components</div><div class="ttdef"><b>Definition:</b> celix_dm_info.h:66</div></div>
-<div class="ttc" id="acelix__dm__info_8h_html_a4325313bb7b98b6eded2212a6edd065a"><div class="ttname"><a href="celix__dm__info_8h.html#a4325313bb7b98b6eded2212a6edd065a">dm_component_info_pt</a></div><div class="ttdeci">struct celix_dm_component_info_struct * dm_component_info_pt</div><div class="ttdef"><b>Definition:</b> celix_dm_info.h:60</div></div>
-<div class="ttc" id="astructcelix__dm__service__dependency__info__struct_html_a8ad066c5fa5d75e9fb82add72cbfc705"><div class="ttname"><a href="structcelix__dm__service__dependency__info__struct.html#a8ad066c5fa5d75e9fb82add72cbfc705">celix_dm_service_dependency_info_struct::required</a></div><div class="ttdeci">bool required</div><div class="ttdef"><b>Definition:</b> celix_dm_info.h:45</div></div>
-<div class="ttc" id="astructcelix__dm__component__info__struct_html_aad1da907cd6f4a75f85c8321b1f6ce7a"><div class="ttname"><a href="structcelix__dm__component__info__struct.html#aad1da907cd6f4a75f85c8321b1f6ce7a">celix_dm_component_info_struct::name</a></div><div class="ttdeci">char name[128]</div><div class="ttdef"><b>Definition:</b> celix_dm_info.h:54</div></div>
-<div class="ttc" id="astructcelix__dm__component__info__struct_html_abbbe72fb049ad5ebb5941421929ae51a"><div class="ttname"><a href="structcelix__dm__component__info__struct.html#abbbe72fb049ad5ebb5941421929ae51a">celix_dm_component_info_struct::interfaces</a></div><div class="ttdeci">celix_array_list_t * interfaces</div><div class="ttdef"><b>Definition:</b> celix_dm_info.h:57</div></div>
-<div class="ttc" id="astructcelix__dm__service__dependency__info__struct_html_ac06a272ddf7c02e335be784082ba5e9f"><div class="ttname"><a href="structcelix__dm__service__dependency__info__struct.html#ac06a272ddf7c02e335be784082ba5e9f">celix_dm_service_dependency_info_struct::filter</a></div><div class="ttdeci">char * filter</div><div class="ttdef"><b>Definition:</b> celix_dm_info.h:43</div></div>
-<div class="ttc" id="astructcelix__dm__dependency__manager__info__struct_html"><div class="ttname"><a href="structcelix__dm__dependency__manager__info__struct.html">celix_dm_dependency_manager_info_struct</a></div><div class="ttdef"><b>Definition:</b> celix_dm_info.h:64</div></div>
-<div class="ttc" id="astructcelix__dm__service__dependency__info__struct_html_a77659b20ca3bcc2b9282f4644bdcbe66"><div class="ttname"><a href="structcelix__dm__service__dependency__info__struct.html#a77659b20ca3bcc2b9282f4644bdcbe66">celix_dm_service_dependency_info_struct::available</a></div><div class="ttdeci">bool available</div><div class="ttdef"><b>Definition:</b> celix_dm_info.h:44</div></div>
-<div class="ttc" id="astructcelix__dm__component__info__struct_html"><div class="ttname"><a href="structcelix__dm__component__info__struct.html">celix_dm_component_info_struct</a></div><div class="ttdef"><b>Definition:</b> celix_dm_info.h:52</div></div>
-<div class="ttc" id="astructcelix__dm__dependency__manager__info__struct_html_ac51721859e70f844e4c23873aec85dfb"><div class="ttname"><a href="structcelix__dm__dependency__manager__info__struct.html#ac51721859e70f844e4c23873aec85dfb">celix_dm_dependency_manager_info_struct::bndId</a></div><div class="ttdeci">long bndId</div><div class="ttdef"><b>Definition:</b> celix_dm_info.h:65</div></div>
-<div class="ttc" id="astructcelix__dm__interface__info__struct_html"><div class="ttname"><a href="structcelix__dm__interface__info__struct.html">celix_dm_interface_info_struct</a></div><div class="ttdef"><b>Definition:</b> celix_dm_info.h:34</div></div>
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.18
-</small></address>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/celix__dm__service__dependency_8h.html b/static/docs/2.2.1/html/celix__dm__service__dependency_8h.html
deleted file mode 100755
index cf4dd5e..0000000
--- a/static/docs/2.2.1/html/celix__dm__service__dependency_8h.html
+++ /dev/null
@@ -1,681 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>Celix: libs/framework/include/celix_dm_service_dependency.h File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/searchdata.js"></script>
-<script type="text/javascript" src="search/search.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">Celix
-   &#160;<span id="projectnumber">2.2.1</span>
-   </div>
-   <div id="projectbrief">An implementation of the OSGi specification adapted to C and C++</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.18 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
-     onmouseover="return searchBox.OnSearchSelectShow()"
-     onmouseout="return searchBox.OnSearchSelectHide()"
-     onkeydown="return searchBox.OnSearchSelectKey(event)">
-</div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div id="nav-path" class="navpath">
-  <ul>
-<li class="navelem"><a class="el" href="dir_6719ab1f1f7655efc2fa43f7eb574fd1.html">libs</a></li><li class="navelem"><a class="el" href="dir_edbb2ffdc3e165978e68de3a46f2e8a0.html">framework</a></li><li class="navelem"><a class="el" href="dir_bc286dd6b945a73064974dfd7e40f558.html">include</a></li>  </ul>
-</div>
-</div><!-- top -->
-<div class="header">
-  <div class="summary">
-<a href="#nested-classes">Classes</a> &#124;
-<a href="#define-members">Macros</a> &#124;
-<a href="#typedef-members">Typedefs</a> &#124;
-<a href="#enum-members">Enumerations</a> &#124;
-<a href="#func-members">Functions</a>  </div>
-  <div class="headertitle">
-<div class="title">celix_dm_service_dependency.h File Reference</div>  </div>
-</div><!--header-->
-<div class="contents">
-<div class="textblock"><code>#include &quot;celix_types.h&quot;</code><br />
-<code>#include &quot;celix_errno.h&quot;</code><br />
-<code>#include &quot;celix_threads.h&quot;</code><br />
-<code>#include &quot;<a class="el" href="celix__dm__info_8h_source.html">celix_dm_info.h</a>&quot;</code><br />
-</div><div class="textblock"><div class="dynheader">
-Include dependency graph for celix_dm_service_dependency.h:</div>
-<div class="dyncontent">
-<div class="center"><img src="celix__dm__service__dependency_8h__incl.png" border="0" usemap="#libs_2framework_2include_2celix__dm__service__dependency_8h" alt=""/></div>
-<map name="libs_2framework_2include_2celix__dm__service__dependency_8h" id="libs_2framework_2include_2celix__dm__service__dependency_8h">
-<area shape="rect" title=" " alt="" coords="133,5,347,47"/>
-<area shape="rect" title=" " alt="" coords="5,95,104,121"/>
-<area shape="rect" title=" " alt="" coords="128,95,224,121"/>
-<area shape="rect" title=" " alt="" coords="249,95,359,121"/>
-<area shape="rect" href="celix__dm__info_8h.html" title=" " alt="" coords="383,95,497,121"/>
-<area shape="rect" title=" " alt="" coords="281,169,356,196"/>
-<area shape="rect" title=" " alt="" coords="380,169,500,196"/>
-<area shape="rect" title=" " alt="" coords="525,169,649,196"/>
-</map>
-</div>
-</div>
-<p><a href="celix__dm__service__dependency_8h_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
-Classes</h2></td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__dm__service__dependency__callback__options.html">celix_dm_service_dependency_callback_options</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
-Macros</h2></td></tr>
-<tr class="memitem:a1b153c6b38f75362450aad5b3ad729f7"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__dm__service__dependency_8h.html#a1b153c6b38f75362450aad5b3ad729f7">CELIX_EMPTY_DM_SERVICE_DEPENDENCY_CALLBACK_OPTIONS</a></td></tr>
-<tr class="separator:a1b153c6b38f75362450aad5b3ad729f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
-Typedefs</h2></td></tr>
-<tr class="memitem:a00447f0e837918fcf6e39698ef375f46"><td class="memItemLeft" align="right" valign="top">typedef enum <a class="el" href="celix__dm__service__dependency_8h.html#a80a698d57b244ab54ffad631a41ae88c">celix_dm_service_dependency_strategy_enum</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__dm__service__dependency_8h.html#a00447f0e837918fcf6e39698ef375f46">celix_dm_service_dependency_strategy_t</a></td></tr>
-<tr class="separator:a00447f0e837918fcf6e39698ef375f46"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a3aab7f5d65c74eb819047e5ec1f4c05f"><td class="memItemLeft" align="right" valign="top">typedef int(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__dm__service__dependency_8h.html#a3aab7f5d65c74eb819047e5ec1f4c05f">celix_dm_service_update_fp</a>) (void *handle, void *service)</td></tr>
-<tr class="separator:a3aab7f5d65c74eb819047e5ec1f4c05f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a8a77266cc94a0f019b29d75a8e54995d"><td class="memItemLeft" align="right" valign="top">typedef int(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__dm__service__dependency_8h.html#a8a77266cc94a0f019b29d75a8e54995d">celix_dm_service_swap_fp</a>) (void *handle, void *oldService, void *newService)</td></tr>
-<tr class="separator:a8a77266cc94a0f019b29d75a8e54995d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:afb8ee50fcfc77f274578d85a70bb2b94"><td class="memItemLeft" align="right" valign="top">typedef int(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__dm__service__dependency_8h.html#afb8ee50fcfc77f274578d85a70bb2b94">celix_dm_service_update_with_props_fp</a>) (void *handle, void *service, const celix_properties_t *props)</td></tr>
-<tr class="separator:afb8ee50fcfc77f274578d85a70bb2b94"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a6b4b49e1cbd6865c5dc14e94086f629f"><td class="memItemLeft" align="right" valign="top">typedef int(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__dm__service__dependency_8h.html#a6b4b49e1cbd6865c5dc14e94086f629f">celix_dm_service_swap_with_props_fp</a>) (void *handle, void *oldService, void *newService, const celix_properties_t *newProps)</td></tr>
-<tr class="separator:a6b4b49e1cbd6865c5dc14e94086f629f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ace7f03a4e7746a8ca8218afd172752f8"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structcelix__dm__service__dependency__callback__options.html">celix_dm_service_dependency_callback_options</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__dm__service__dependency_8h.html#ace7f03a4e7746a8ca8218afd172752f8">celix_dm_service_dependency_callback_options_t</a></td></tr>
-<tr class="separator:ace7f03a4e7746a8ca8218afd172752f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
-Enumerations</h2></td></tr>
-<tr class="memitem:a80a698d57b244ab54ffad631a41ae88c"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__dm__service__dependency_8h.html#a80a698d57b244ab54ffad631a41ae88c">celix_dm_service_dependency_strategy_enum</a> { <a class="el" href="celix__dm__service__dependency_8h.html#a80a698d57b244ab54ffad631a41ae88ca6c94c0c92189ea864b218b45d2526db1">DM_SERVICE_DEPENDENCY_STRATEGY_LOCKING</a>, 
-<a class="el" href="celix__dm__service__dependency_8h.html#a80a698d57b244ab54ffad631a41ae88caf4c6748a0a1d0e04997c11847c737428">DM_SERVICE_DEPENDENCY_STRATEGY_SUSPEND</a>
- }</td></tr>
-<tr class="separator:a80a698d57b244ab54ffad631a41ae88c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:a588b147bec75a501fac3b35076fc98a3"><td class="memItemLeft" align="right" valign="top">celix_dm_service_dependency_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__dm__service__dependency_8h.html#a588b147bec75a501fac3b35076fc98a3">celix_dmServiceDependency_create</a> (void)</td></tr>
-<tr class="separator:a588b147bec75a501fac3b35076fc98a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ac282334d66c3cfc4fda1b67245172979"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__dm__service__dependency_8h.html#ac282334d66c3cfc4fda1b67245172979">celix_dmServiceDependency_destroy</a> (celix_dm_service_dependency_t *dep)</td></tr>
-<tr class="separator:ac282334d66c3cfc4fda1b67245172979"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a0c33bcf502f8683bce3cf382c4bdc76a"><td class="memItemLeft" align="right" valign="top">celix_status_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__dm__service__dependency_8h.html#a0c33bcf502f8683bce3cf382c4bdc76a">celix_dmServiceDependency_setRequired</a> (celix_dm_service_dependency_t *dependency, bool required)</td></tr>
-<tr class="separator:a0c33bcf502f8683bce3cf382c4bdc76a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a9aec79471c46aecc7412523fe839e549"><td class="memItemLeft" align="right" valign="top">celix_status_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__dm__service__dependency_8h.html#a9aec79471c46aecc7412523fe839e549">celix_dmServiceDependency_setAddCLanguageFilter</a> (celix_dm_service_dependency_t *dependency, bool addCLangFilter)</td></tr>
-<tr class="separator:a9aec79471c46aecc7412523fe839e549"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a9d833904b765bee7073ec41828ea7d2e"><td class="memItemLeft" align="right" valign="top">celix_status_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__dm__service__dependency_8h.html#a9d833904b765bee7073ec41828ea7d2e">celix_dmServiceDependency_setStrategy</a> (celix_dm_service_dependency_t *dependency, <a class="el" href="celix__dm__service__dependency_8h.html#a00447f0e837918fcf6e39698ef375f46">celix_dm_service_dependency_strategy_t</a> strategy)</td></tr>
-<tr class="separator:a9d833904b765bee7073ec41828ea7d2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a8365396c6363ad98b66725243f97f8ea"><td class="memItemLeft" align="right" valign="top"><a class="el" href="celix__dm__service__dependency_8h.html#a00447f0e837918fcf6e39698ef375f46">celix_dm_service_dependency_strategy_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__dm__service__dependency_8h.html#a8365396c6363ad98b66725243f97f8ea">celix_dmServiceDependency_getStrategy</a> (celix_dm_service_dependency_t *dependency)</td></tr>
-<tr class="separator:a8365396c6363ad98b66725243f97f8ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a2602a6526ef6cde42d606c9ed958cec7"><td class="memItemLeft" align="right" valign="top">celix_status_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__dm__service__dependency_8h.html#a2602a6526ef6cde42d606c9ed958cec7">celix_dmServiceDependency_setService</a> (celix_dm_service_dependency_t *dependency, const char *serviceName, const char *serviceVersionRange, const char *filter)</td></tr>
-<tr class="separator:a2602a6526ef6cde42d606c9ed958cec7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a487a41d56ea2bf1aa51cd7f7e83ff844"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__dm__service__dependency_8h.html#a487a41d56ea2bf1aa51cd7f7e83ff844">celix_dmServiceDependency_getFilter</a> (celix_dm_service_dependency_t *dependency)</td></tr>
-<tr class="separator:a487a41d56ea2bf1aa51cd7f7e83ff844"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a1a731a456c8e617acfa4d81a6357959c"><td class="memItemLeft" align="right" valign="top">celix_status_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__dm__service__dependency_8h.html#a1a731a456c8e617acfa4d81a6357959c">celix_dmServiceDependency_setCallback</a> (celix_dm_service_dependency_t *dependency, <a class="el" href="celix__dm__service__dependency_8h.html#a3aab7f5d65c74eb819047e5ec1f4c05f">celix_dm_service_update_fp</a> set)</td></tr>
-<tr class="separator:a1a731a456c8e617acfa4d81a6357959c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a9bdfec7b27301bd71dd4f45fcdd11568"><td class="memItemLeft" align="right" valign="top">celix_status_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__dm__service__dependency_8h.html#a9bdfec7b27301bd71dd4f45fcdd11568">celix_dmServiceDependency_setCallbackWithProperties</a> (celix_dm_service_dependency_t *dependency, <a class="el" href="celix__dm__service__dependency_8h.html#afb8ee50fcfc77f274578d85a70bb2b94">celix_dm_service_update_with_props_fp</a> set)</td></tr>
-<tr class="separator:a9bdfec7b27301bd71dd4f45fcdd11568"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a31898ef1ad5f9695dc85a24202020ebe"><td class="memItemLeft" align="right" valign="top">celix_status_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__dm__service__dependency_8h.html#a31898ef1ad5f9695dc85a24202020ebe">celix_dmServiceDependency_setCallbacksWithOptions</a> (celix_dm_service_dependency_t *dependency, const <a class="el" href="celix__dm__service__dependency_8h.html#ace7f03a4e7746a8ca8218afd172752f8">celix_dm_service_dependency_callback_options_t</a> *opts)</td></tr>
-<tr class="separator:a31898ef1ad5f9695dc85a24202020ebe"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aebe0669933d37f9fd1c3fdc873127d78"><td class="memItemLeft" align="right" valign="top">celix_status_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__dm__service__dependency_8h.html#aebe0669933d37f9fd1c3fdc873127d78">celix_dmServiceDependency_setCallbackHandle</a> (celix_dm_service_dependency_t *dependency, void *handle)</td></tr>
-<tr class="separator:aebe0669933d37f9fd1c3fdc873127d78"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a0b84d9164563664da40491151f7d7131"><td class="memItemLeft" align="right" valign="top"><a class="el" href="celix__dm__info_8h.html#a553833e914505261622b13563c8a045e">dm_service_dependency_info_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__dm__service__dependency_8h.html#a0b84d9164563664da40491151f7d7131">celix_dmServiceDependency_createInfo</a> (celix_dm_service_dependency_t *dep)</td></tr>
-<tr class="separator:a0b84d9164563664da40491151f7d7131"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:acb96da27c0087a05d885b0f55756de8a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__dm__service__dependency_8h.html#acb96da27c0087a05d885b0f55756de8a">celix_dmServiceDependency_destroyInfo</a> (celix_dm_service_dependency_t *dep, <a class="el" href="celix__dm__info_8h.html#a553833e914505261622b13563c8a045e">dm_service_dependency_info_t</a> *info)</td></tr>
-<tr class="separator:acb96da27c0087a05d885b0f55756de8a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-<h2 class="groupheader">Macro Definition Documentation</h2>
-<a id="a1b153c6b38f75362450aad5b3ad729f7"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a1b153c6b38f75362450aad5b3ad729f7">&#9670;&nbsp;</a></span>CELIX_EMPTY_DM_SERVICE_DEPENDENCY_CALLBACK_OPTIONS</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">#define CELIX_EMPTY_DM_SERVICE_DEPENDENCY_CALLBACK_OPTIONS</td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<b>Value:</b><div class="fragment"><div class="line">    { .set = NULL, \</div>
-<div class="line">    .add = NULL, \</div>
-<div class="line">    .remove = NULL, \</div>
-<div class="line">    .swap = NULL, \</div>
-<div class="line">    .setWithProps = NULL, \</div>
-<div class="line">    .addWithProps = NULL, \</div>
-<div class="line">    .removeWithProps = NULL, \</div>
-<div class="line">    .swapWithProps = NULL }</div>
-</div><!-- fragment -->
-</div>
-</div>
-<h2 class="groupheader">Typedef Documentation</h2>
-<a id="ace7f03a4e7746a8ca8218afd172752f8"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ace7f03a4e7746a8ca8218afd172752f8">&#9670;&nbsp;</a></span>celix_dm_service_dependency_callback_options_t</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">typedef struct <a class="el" href="structcelix__dm__service__dependency__callback__options.html">celix_dm_service_dependency_callback_options</a> <a class="el" href="celix__dm__service__dependency_8h.html#ace7f03a4e7746a8ca8218afd172752f8">celix_dm_service_dependency_callback_options_t</a></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-</div>
-</div>
-<a id="a00447f0e837918fcf6e39698ef375f46"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a00447f0e837918fcf6e39698ef375f46">&#9670;&nbsp;</a></span>celix_dm_service_dependency_strategy_t</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">typedef enum <a class="el" href="celix__dm__service__dependency_8h.html#a80a698d57b244ab54ffad631a41ae88c">celix_dm_service_dependency_strategy_enum</a> <a class="el" href="celix__dm__service__dependency_8h.html#a00447f0e837918fcf6e39698ef375f46">celix_dm_service_dependency_strategy_t</a></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-</div>
-</div>
-<a id="a8a77266cc94a0f019b29d75a8e54995d"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a8a77266cc94a0f019b29d75a8e54995d">&#9670;&nbsp;</a></span>celix_dm_service_swap_fp</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">typedef int(* celix_dm_service_swap_fp) (void *handle, void *oldService, void *newService)</td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-</div>
-</div>
-<a id="a6b4b49e1cbd6865c5dc14e94086f629f"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a6b4b49e1cbd6865c5dc14e94086f629f">&#9670;&nbsp;</a></span>celix_dm_service_swap_with_props_fp</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">typedef int(* celix_dm_service_swap_with_props_fp) (void *handle, void *oldService, void *newService, const celix_properties_t *newProps)</td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-</div>
-</div>
-<a id="a3aab7f5d65c74eb819047e5ec1f4c05f"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a3aab7f5d65c74eb819047e5ec1f4c05f">&#9670;&nbsp;</a></span>celix_dm_service_update_fp</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">typedef int(* celix_dm_service_update_fp) (void *handle, void *service)</td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-</div>
-</div>
-<a id="afb8ee50fcfc77f274578d85a70bb2b94"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#afb8ee50fcfc77f274578d85a70bb2b94">&#9670;&nbsp;</a></span>celix_dm_service_update_with_props_fp</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">typedef int(* celix_dm_service_update_with_props_fp) (void *handle, void *service, const celix_properties_t *props)</td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-</div>
-</div>
-<h2 class="groupheader">Enumeration Type Documentation</h2>
-<a id="a80a698d57b244ab54ffad631a41ae88c"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a80a698d57b244ab54ffad631a41ae88c">&#9670;&nbsp;</a></span>celix_dm_service_dependency_strategy_enum</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">enum <a class="el" href="celix__dm__service__dependency_8h.html#a80a698d57b244ab54ffad631a41ae88c">celix_dm_service_dependency_strategy_enum</a></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<table class="fieldtable">
-<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a80a698d57b244ab54ffad631a41ae88ca6c94c0c92189ea864b218b45d2526db1"></a>DM_SERVICE_DEPENDENCY_STRATEGY_LOCKING&#160;</td><td class="fielddoc"></td></tr>
-<tr><td class="fieldname"><a id="a80a698d57b244ab54ffad631a41ae88caf4c6748a0a1d0e04997c11847c737428"></a>DM_SERVICE_DEPENDENCY_STRATEGY_SUSPEND&#160;</td><td class="fielddoc"></td></tr>
-</table>
-
-</div>
-</div>
-<h2 class="groupheader">Function Documentation</h2>
-<a id="a588b147bec75a501fac3b35076fc98a3"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a588b147bec75a501fac3b35076fc98a3">&#9670;&nbsp;</a></span>celix_dmServiceDependency_create()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">celix_dm_service_dependency_t* celix_dmServiceDependency_create </td>
-          <td>(</td>
-          <td class="paramtype">void&#160;</td>
-          <td class="paramname"></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Create a service dependency. Caller has ownership. </p>
-
-</div>
-</div>
-<a id="a0b84d9164563664da40491151f7d7131"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a0b84d9164563664da40491151f7d7131">&#9670;&nbsp;</a></span>celix_dmServiceDependency_createInfo()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname"><a class="el" href="celix__dm__info_8h.html#a553833e914505261622b13563c8a045e">dm_service_dependency_info_t</a>* celix_dmServiceDependency_createInfo </td>
-          <td>(</td>
-          <td class="paramtype">celix_dm_service_dependency_t *&#160;</td>
-          <td class="paramname"><em>dep</em></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Creates a service dependency info. The service dependency info struct contains information about the service dependency. The caller is the owner </p>
-
-</div>
-</div>
-<a id="ac282334d66c3cfc4fda1b67245172979"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ac282334d66c3cfc4fda1b67245172979">&#9670;&nbsp;</a></span>celix_dmServiceDependency_destroy()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void celix_dmServiceDependency_destroy </td>
-          <td>(</td>
-          <td class="paramtype">celix_dm_service_dependency_t *&#160;</td>
-          <td class="paramname"><em>dep</em></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Destroys a service dependency. Caller has ownership. </p>
-
-</div>
-</div>
-<a id="acb96da27c0087a05d885b0f55756de8a"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#acb96da27c0087a05d885b0f55756de8a">&#9670;&nbsp;</a></span>celix_dmServiceDependency_destroyInfo()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void celix_dmServiceDependency_destroyInfo </td>
-          <td>(</td>
-          <td class="paramtype">celix_dm_service_dependency_t *&#160;</td>
-          <td class="paramname"><em>dep</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype"><a class="el" href="celix__dm__info_8h.html#a553833e914505261622b13563c8a045e">dm_service_dependency_info_t</a> *&#160;</td>
-          <td class="paramname"><em>info</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Destroy a provided service dependency info struct. </p>
-
-</div>
-</div>
-<a id="a487a41d56ea2bf1aa51cd7f7e83ff844"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a487a41d56ea2bf1aa51cd7f7e83ff844">&#9670;&nbsp;</a></span>celix_dmServiceDependency_getFilter()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">const char* celix_dmServiceDependency_getFilter </td>
-          <td>(</td>
-          <td class="paramtype">celix_dm_service_dependency_t *&#160;</td>
-          <td class="paramname"><em>dependency</em></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Returns the service dependency filter. </p>
-
-</div>
-</div>
-<a id="a8365396c6363ad98b66725243f97f8ea"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a8365396c6363ad98b66725243f97f8ea">&#9670;&nbsp;</a></span>celix_dmServiceDependency_getStrategy()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname"><a class="el" href="celix__dm__service__dependency_8h.html#a00447f0e837918fcf6e39698ef375f46">celix_dm_service_dependency_strategy_t</a> celix_dmServiceDependency_getStrategy </td>
-          <td>(</td>
-          <td class="paramtype">celix_dm_service_dependency_t *&#160;</td>
-          <td class="paramname"><em>dependency</em></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Return the service dependency update strategy. </p>
-
-</div>
-</div>
-<a id="a9aec79471c46aecc7412523fe839e549"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a9aec79471c46aecc7412523fe839e549">&#9670;&nbsp;</a></span>celix_dmServiceDependency_setAddCLanguageFilter()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">celix_status_t celix_dmServiceDependency_setAddCLanguageFilter </td>
-          <td>(</td>
-          <td class="paramtype">celix_dm_service_dependency_t *&#160;</td>
-          <td class="paramname"><em>dependency</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">bool&#160;</td>
-          <td class="paramname"><em>addCLangFilter</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Specify if the service dependency should add a C language filter for this dependency if no "service.lang" part is found the in the provided filter. Default is false </p>
-
-</div>
-</div>
-<a id="a1a731a456c8e617acfa4d81a6357959c"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a1a731a456c8e617acfa4d81a6357959c">&#9670;&nbsp;</a></span>celix_dmServiceDependency_setCallback()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">celix_status_t celix_dmServiceDependency_setCallback </td>
-          <td>(</td>
-          <td class="paramtype">celix_dm_service_dependency_t *&#160;</td>
-          <td class="paramname"><em>dependency</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype"><a class="el" href="celix__dm__service__dependency_8h.html#a3aab7f5d65c74eb819047e5ec1f4c05f">celix_dm_service_update_fp</a>&#160;</td>
-          <td class="paramname"><em>set</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Set the set callbacks when services specified by the service dependency The first argument of the callbacks will be the component implement (</p><dl class="section see"><dt>See also</dt><dd>component_getImplementation) The second the argument a pointer to an instance of a service struct of the specified service dependency. </dd></dl>
-
-</div>
-</div>
-<a id="aebe0669933d37f9fd1c3fdc873127d78"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#aebe0669933d37f9fd1c3fdc873127d78">&#9670;&nbsp;</a></span>celix_dmServiceDependency_setCallbackHandle()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">celix_status_t celix_dmServiceDependency_setCallbackHandle </td>
-          <td>(</td>
-          <td class="paramtype">celix_dm_service_dependency_t *&#160;</td>
-          <td class="paramname"><em>dependency</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">void *&#160;</td>
-          <td class="paramname"><em>handle</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Set the callback handle to be used in the callbacks. Note that this normally should not be set, because the result of component_getImplementation() is used This can be used in rare cases when the callbacks are actually interceptors. e.g. in the case of C++ support. </p>
-
-</div>
-</div>
-<a id="a31898ef1ad5f9695dc85a24202020ebe"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a31898ef1ad5f9695dc85a24202020ebe">&#9670;&nbsp;</a></span>celix_dmServiceDependency_setCallbacksWithOptions()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">celix_status_t celix_dmServiceDependency_setCallbacksWithOptions </td>
-          <td>(</td>
-          <td class="paramtype">celix_dm_service_dependency_t *&#160;</td>
-          <td class="paramname"><em>dependency</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const <a class="el" href="celix__dm__service__dependency_8h.html#ace7f03a4e7746a8ca8218afd172752f8">celix_dm_service_dependency_callback_options_t</a> *&#160;</td>
-          <td class="paramname"><em>opts</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Set the set, add, change, remove and swap function callbacks when services specified by the service dependency are (respectively) set, added, changed, removed or swapped.</p>
-<p>The version with the WithProps suffix will be called with as third argument the service properties. </p>
-
-</div>
-</div>
-<a id="a9bdfec7b27301bd71dd4f45fcdd11568"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a9bdfec7b27301bd71dd4f45fcdd11568">&#9670;&nbsp;</a></span>celix_dmServiceDependency_setCallbackWithProperties()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">celix_status_t celix_dmServiceDependency_setCallbackWithProperties </td>
-          <td>(</td>
-          <td class="paramtype">celix_dm_service_dependency_t *&#160;</td>
-          <td class="paramname"><em>dependency</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype"><a class="el" href="celix__dm__service__dependency_8h.html#afb8ee50fcfc77f274578d85a70bb2b94">celix_dm_service_update_with_props_fp</a>&#160;</td>
-          <td class="paramname"><em>set</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Set the set function callbacks when services specified by the service dependency The first argument of the callbacks will be the component implement (</p><dl class="section see"><dt>See also</dt><dd>component_getImplementation) The second argument of th callbacks will be a pointer to an instance of a service struct of the specified service dependency. The third argument of th callbacks will be a pointer to a service properties of the a service instance of the specified service dependency. </dd></dl>
-
-</div>
-</div>
-<a id="a0c33bcf502f8683bce3cf382c4bdc76a"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a0c33bcf502f8683bce3cf382c4bdc76a">&#9670;&nbsp;</a></span>celix_dmServiceDependency_setRequired()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">celix_status_t celix_dmServiceDependency_setRequired </td>
-          <td>(</td>
-          <td class="paramtype">celix_dm_service_dependency_t *&#160;</td>
-          <td class="paramname"><em>dependency</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">bool&#160;</td>
-          <td class="paramname"><em>required</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Specify if the service dependency is required. default is false </p>
-
-</div>
-</div>
-<a id="a2602a6526ef6cde42d606c9ed958cec7"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a2602a6526ef6cde42d606c9ed958cec7">&#9670;&nbsp;</a></span>celix_dmServiceDependency_setService()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">celix_status_t celix_dmServiceDependency_setService </td>
-          <td>(</td>
-          <td class="paramtype">celix_dm_service_dependency_t *&#160;</td>
-          <td class="paramname"><em>dependency</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const char *&#160;</td>
-          <td class="paramname"><em>serviceName</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const char *&#160;</td>
-          <td class="paramname"><em>serviceVersionRange</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const char *&#160;</td>
-          <td class="paramname"><em>filter</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Set the service name, version range and filter.</p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">serviceName</td><td>The service name. Must have a value. </td></tr>
-    <tr><td class="paramname">serviceVersionRange</td><td>The service version range, can be a NULL pointer. </td></tr>
-    <tr><td class="paramname">filter</td><td>The (additional) filter to use (e.g. "(location=front)"). Can be a NULL pointer. </td></tr>
-  </table>
-  </dd>
-</dl>
-
-</div>
-</div>
-<a id="a9d833904b765bee7073ec41828ea7d2e"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a9d833904b765bee7073ec41828ea7d2e">&#9670;&nbsp;</a></span>celix_dmServiceDependency_setStrategy()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">celix_status_t celix_dmServiceDependency_setStrategy </td>
-          <td>(</td>
-          <td class="paramtype">celix_dm_service_dependency_t *&#160;</td>
-          <td class="paramname"><em>dependency</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype"><a class="el" href="celix__dm__service__dependency_8h.html#a00447f0e837918fcf6e39698ef375f46">celix_dm_service_dependency_strategy_t</a>&#160;</td>
-          <td class="paramname"><em>strategy</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Specify if the service dependency update strategy.</p>
-<p>The DM_SERVICE_DEPENDENCY_STRATEGY_LOCKING strategy notifies the component in case the dependencies set changes (e.g. a dependency is added/removed): the component is responsible for protecting via locks the dependencies list and check (always under lock) if the service he's depending on is still available.</p>
-<p>The DM_SERVICE_DEPENDENCY_STRATEGY_SUSPEND (default when no strategy is explicitly set) reliefs the programmer from dealing with service dependencies' consistency issues: in case this strategy is adopted, the component is stopped and restarted (i.e. temporarily suspended) upon service dependencies' changes.</p>
-<p>Default strategy is DM_SERVICE_DEPENDENCY_STRATEGY_SUSPEND </p>
-
-</div>
-</div>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.18
-</small></address>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/celix__dm__service__dependency_8h__incl.map b/static/docs/2.2.1/html/celix__dm__service__dependency_8h__incl.map
deleted file mode 100755
index 179b34b..0000000
--- a/static/docs/2.2.1/html/celix__dm__service__dependency_8h__incl.map
+++ /dev/null
@@ -1,10 +0,0 @@
-<map id="libs/framework/include/celix_dm_service_dependency.h" name="libs/framework/include/celix_dm_service_dependency.h">
-<area shape="rect" id="node1" title=" " alt="" coords="133,5,347,47"/>
-<area shape="rect" id="node2" title=" " alt="" coords="5,95,104,121"/>
-<area shape="rect" id="node3" title=" " alt="" coords="128,95,224,121"/>
-<area shape="rect" id="node4" title=" " alt="" coords="249,95,359,121"/>
-<area shape="rect" id="node5" href="$celix__dm__info_8h.html" title=" " alt="" coords="383,95,497,121"/>
-<area shape="rect" id="node6" title=" " alt="" coords="281,169,356,196"/>
-<area shape="rect" id="node7" title=" " alt="" coords="380,169,500,196"/>
-<area shape="rect" id="node8" title=" " alt="" coords="525,169,649,196"/>
-</map>
diff --git a/static/docs/2.2.1/html/celix__dm__service__dependency_8h__incl.md5 b/static/docs/2.2.1/html/celix__dm__service__dependency_8h__incl.md5
deleted file mode 100755
index f7f25bb..0000000
--- a/static/docs/2.2.1/html/celix__dm__service__dependency_8h__incl.md5
+++ /dev/null
@@ -1 +0,0 @@
-4d3f8aaec0ffd212e69bb33da7297143
\ No newline at end of file
diff --git a/static/docs/2.2.1/html/celix__dm__service__dependency_8h__incl.png b/static/docs/2.2.1/html/celix__dm__service__dependency_8h__incl.png
deleted file mode 100755
index 68c27e2..0000000
--- a/static/docs/2.2.1/html/celix__dm__service__dependency_8h__incl.png
+++ /dev/null
Binary files differ
diff --git a/static/docs/2.2.1/html/celix__dm__service__dependency_8h_source.html b/static/docs/2.2.1/html/celix__dm__service__dependency_8h_source.html
deleted file mode 100755
index 1986880..0000000
--- a/static/docs/2.2.1/html/celix__dm__service__dependency_8h_source.html
+++ /dev/null
@@ -1,215 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>Celix: libs/framework/include/celix_dm_service_dependency.h Source File</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/searchdata.js"></script>
-<script type="text/javascript" src="search/search.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">Celix
-   &#160;<span id="projectnumber">2.2.1</span>
-   </div>
-   <div id="projectbrief">An implementation of the OSGi specification adapted to C and C++</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.18 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
-     onmouseover="return searchBox.OnSearchSelectShow()"
-     onmouseout="return searchBox.OnSearchSelectHide()"
-     onkeydown="return searchBox.OnSearchSelectKey(event)">
-</div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div id="nav-path" class="navpath">
-  <ul>
-<li class="navelem"><a class="el" href="dir_6719ab1f1f7655efc2fa43f7eb574fd1.html">libs</a></li><li class="navelem"><a class="el" href="dir_edbb2ffdc3e165978e68de3a46f2e8a0.html">framework</a></li><li class="navelem"><a class="el" href="dir_bc286dd6b945a73064974dfd7e40f558.html">include</a></li>  </ul>
-</div>
-</div><!-- top -->
-<div class="header">
-  <div class="headertitle">
-<div class="title">celix_dm_service_dependency.h</div>  </div>
-</div><!--header-->
-<div class="contents">
-<a href="celix__dm__service__dependency_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div>
-<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div>
-<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div>
-<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div>
-<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div>
-<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div>
-<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div>
-<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div>
-<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div>
-<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div>
-<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div>
-<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div>
-<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div>
-<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div>
-<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> *  KIND, either express or implied.  See the License for the</span></div>
-<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div>
-<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div>
-<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div>
-<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160; </div>
-<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef CELIX_DM_SERVICE_DEPENDENCY_H_</span></div>
-<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define CELIX_DM_SERVICE_DEPENDENCY_H_</span></div>
-<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160; </div>
-<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &quot;celix_types.h&quot;</span></div>
-<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#include &quot;celix_errno.h&quot;</span></div>
-<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#include &quot;celix_threads.h&quot;</span></div>
-<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160; </div>
-<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="celix__dm__info_8h.html">celix_dm_info.h</a>&quot;</span></div>
-<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160; </div>
-<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
-<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160; </div>
-<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160; </div>
-<div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="celix__dm__service__dependency_8h.html#a80a698d57b244ab54ffad631a41ae88c">   34</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code" href="celix__dm__service__dependency_8h.html#a80a698d57b244ab54ffad631a41ae88c">celix_dm_service_dependency_strategy_enum</a> {</div>
-<div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="celix__dm__service__dependency_8h.html#a80a698d57b244ab54ffad631a41ae88ca6c94c0c92189ea864b218b45d2526db1">   35</a></span>&#160;    <a class="code" href="celix__dm__service__dependency_8h.html#a80a698d57b244ab54ffad631a41ae88ca6c94c0c92189ea864b218b45d2526db1">DM_SERVICE_DEPENDENCY_STRATEGY_LOCKING</a>,</div>
-<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;    <a class="code" href="celix__dm__service__dependency_8h.html#a80a698d57b244ab54ffad631a41ae88caf4c6748a0a1d0e04997c11847c737428">DM_SERVICE_DEPENDENCY_STRATEGY_SUSPEND</a></div>
-<div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="celix__dm__service__dependency_8h.html#a80a698d57b244ab54ffad631a41ae88caf4c6748a0a1d0e04997c11847c737428">   37</a></span>&#160;} <a class="code" href="celix__dm__service__dependency_8h.html#a00447f0e837918fcf6e39698ef375f46">celix_dm_service_dependency_strategy_t</a>;</div>
-<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160; </div>
-<div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="celix__dm__service__dependency_8h.html#a3aab7f5d65c74eb819047e5ec1f4c05f">   39</a></span>&#160;<span class="keyword">typedef</span> int (*<a class="code" href="celix__dm__service__dependency_8h.html#a3aab7f5d65c74eb819047e5ec1f4c05f">celix_dm_service_update_fp</a>)(<span class="keywordtype">void</span> *handle, <span class="keywordtype">void</span>* service);</div>
-<div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="celix__dm__service__dependency_8h.html#a8a77266cc94a0f019b29d75a8e54995d">   40</a></span>&#160;<span class="keyword">typedef</span> int (*<a class="code" href="celix__dm__service__dependency_8h.html#a8a77266cc94a0f019b29d75a8e54995d">celix_dm_service_swap_fp</a>)(<span class="keywordtype">void</span> *handle, <span class="keywordtype">void</span>* oldService, <span class="keywordtype">void</span>* newService);</div>
-<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160; </div>
-<div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="celix__dm__service__dependency_8h.html#afb8ee50fcfc77f274578d85a70bb2b94">   42</a></span>&#160;<span class="keyword">typedef</span> int (*<a class="code" href="celix__dm__service__dependency_8h.html#afb8ee50fcfc77f274578d85a70bb2b94">celix_dm_service_update_with_props_fp</a>)(<span class="keywordtype">void</span> *handle, <span class="keywordtype">void</span>* service, <span class="keyword">const</span> celix_properties_t *props);</div>
-<div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="celix__dm__service__dependency_8h.html#a6b4b49e1cbd6865c5dc14e94086f629f">   43</a></span>&#160;<span class="keyword">typedef</span> int (*<a class="code" href="celix__dm__service__dependency_8h.html#a6b4b49e1cbd6865c5dc14e94086f629f">celix_dm_service_swap_with_props_fp</a>)(<span class="keywordtype">void</span> *handle, <span class="keywordtype">void</span>* oldService, <span class="keywordtype">void</span>* newService, <span class="keyword">const</span> celix_properties_t *newProps);</div>
-<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160; </div>
-<div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="structcelix__dm__service__dependency__callback__options.html">   45</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structcelix__dm__service__dependency__callback__options.html">celix_dm_service_dependency_callback_options</a> {</div>
-<div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="structcelix__dm__service__dependency__callback__options.html#a84e8cecdb9dd19f072d1b9c28fa95c8b">   46</a></span>&#160;    <a class="code" href="celix__dm__service__dependency_8h.html#a3aab7f5d65c74eb819047e5ec1f4c05f">celix_dm_service_update_fp</a> <a class="code" href="structcelix__dm__service__dependency__callback__options.html#a84e8cecdb9dd19f072d1b9c28fa95c8b">set</a>;</div>
-<div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="structcelix__dm__service__dependency__callback__options.html#a9663db4ef079c6300f95dadfe2c03813">   47</a></span>&#160;    <a class="code" href="celix__dm__service__dependency_8h.html#a3aab7f5d65c74eb819047e5ec1f4c05f">celix_dm_service_update_fp</a> <a class="code" href="structcelix__dm__service__dependency__callback__options.html#a9663db4ef079c6300f95dadfe2c03813">add</a>;</div>
-<div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="structcelix__dm__service__dependency__callback__options.html#a10fe45460fc65e1590a58477f515424b">   48</a></span>&#160;    <a class="code" href="celix__dm__service__dependency_8h.html#a3aab7f5d65c74eb819047e5ec1f4c05f">celix_dm_service_update_fp</a> <a class="code" href="structcelix__dm__service__dependency__callback__options.html#a10fe45460fc65e1590a58477f515424b">remove</a>;</div>
-<div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="structcelix__dm__service__dependency__callback__options.html#a35b874e6fa5a6c3af03f09e6492e8b48">   49</a></span>&#160;    <a class="code" href="celix__dm__service__dependency_8h.html#a8a77266cc94a0f019b29d75a8e54995d">celix_dm_service_swap_fp</a> <a class="code" href="structcelix__dm__service__dependency__callback__options.html#a35b874e6fa5a6c3af03f09e6492e8b48">swap</a>;</div>
-<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160; </div>
-<div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="structcelix__dm__service__dependency__callback__options.html#a286bb094f7e4b4a9066e9b235aa8ade9">   51</a></span>&#160;    <a class="code" href="celix__dm__service__dependency_8h.html#afb8ee50fcfc77f274578d85a70bb2b94">celix_dm_service_update_with_props_fp</a> <a class="code" href="structcelix__dm__service__dependency__callback__options.html#a286bb094f7e4b4a9066e9b235aa8ade9">setWithProps</a>;</div>
-<div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="structcelix__dm__service__dependency__callback__options.html#a5cf7a8e9026d08803798c70cb6a30330">   52</a></span>&#160;    <a class="code" href="celix__dm__service__dependency_8h.html#afb8ee50fcfc77f274578d85a70bb2b94">celix_dm_service_update_with_props_fp</a> <a class="code" href="structcelix__dm__service__dependency__callback__options.html#a5cf7a8e9026d08803798c70cb6a30330">addWithProps</a>;</div>
-<div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="structcelix__dm__service__dependency__callback__options.html#a54ee61c8ab040dc87de22588013316fd">   53</a></span>&#160;    <a class="code" href="celix__dm__service__dependency_8h.html#afb8ee50fcfc77f274578d85a70bb2b94">celix_dm_service_update_with_props_fp</a> <a class="code" href="structcelix__dm__service__dependency__callback__options.html#a54ee61c8ab040dc87de22588013316fd">removeWithProps</a>;</div>
-<div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="structcelix__dm__service__dependency__callback__options.html#a1e0bfcf2034cd6d69d954256d101598d">   54</a></span>&#160;    <a class="code" href="celix__dm__service__dependency_8h.html#a6b4b49e1cbd6865c5dc14e94086f629f">celix_dm_service_swap_with_props_fp</a> <a class="code" href="structcelix__dm__service__dependency__callback__options.html#a1e0bfcf2034cd6d69d954256d101598d">swapWithProps</a>;</div>
-<div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="celix__dm__service__dependency_8h.html#ace7f03a4e7746a8ca8218afd172752f8">   55</a></span>&#160;} <a class="code" href="celix__dm__service__dependency_8h.html#ace7f03a4e7746a8ca8218afd172752f8">celix_dm_service_dependency_callback_options_t</a>;</div>
-<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160; </div>
-<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;<span class="preprocessor">#define CELIX_EMPTY_DM_SERVICE_DEPENDENCY_CALLBACK_OPTIONS { .set = NULL, \</span></div>
-<div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="celix__dm__service__dependency_8h.html#a1b153c6b38f75362450aad5b3ad729f7">   58</a></span>&#160;<span class="preprocessor">    .add = NULL, \</span></div>
-<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;<span class="preprocessor">    .remove = NULL, \</span></div>
-<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;<span class="preprocessor">    .swap = NULL, \</span></div>
-<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;<span class="preprocessor">    .setWithProps = NULL, \</span></div>
-<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;<span class="preprocessor">    .addWithProps = NULL, \</span></div>
-<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;<span class="preprocessor">    .removeWithProps = NULL, \</span></div>
-<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;<span class="preprocessor">    .swapWithProps = NULL }</span></div>
-<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160; </div>
-<div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="celix__dm__service__dependency_8h.html#a588b147bec75a501fac3b35076fc98a3">   70</a></span>&#160;celix_dm_service_dependency_t* <a class="code" href="celix__dm__service__dependency_8h.html#a588b147bec75a501fac3b35076fc98a3">celix_dmServiceDependency_create</a>(<span class="keywordtype">void</span>);</div>
-<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160; </div>
-<div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="celix__dm__service__dependency_8h.html#ac282334d66c3cfc4fda1b67245172979">   76</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="celix__dm__service__dependency_8h.html#ac282334d66c3cfc4fda1b67245172979">celix_dmServiceDependency_destroy</a>(celix_dm_service_dependency_t *dep);</div>
-<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160; </div>
-<div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="celix__dm__service__dependency_8h.html#a0c33bcf502f8683bce3cf382c4bdc76a">   81</a></span>&#160;celix_status_t <a class="code" href="celix__dm__service__dependency_8h.html#a0c33bcf502f8683bce3cf382c4bdc76a">celix_dmServiceDependency_setRequired</a>(celix_dm_service_dependency_t *dependency, <span class="keywordtype">bool</span> required);</div>
-<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160; </div>
-<div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="celix__dm__service__dependency_8h.html#a9aec79471c46aecc7412523fe839e549">   87</a></span>&#160;celix_status_t <a class="code" href="celix__dm__service__dependency_8h.html#a9aec79471c46aecc7412523fe839e549">celix_dmServiceDependency_setAddCLanguageFilter</a>(celix_dm_service_dependency_t *dependency, <span class="keywordtype">bool</span> addCLangFilter);</div>
-<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160; </div>
-<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160; </div>
-<div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="celix__dm__service__dependency_8h.html#a9d833904b765bee7073ec41828ea7d2e">  103</a></span>&#160;celix_status_t <a class="code" href="celix__dm__service__dependency_8h.html#a9d833904b765bee7073ec41828ea7d2e">celix_dmServiceDependency_setStrategy</a>(celix_dm_service_dependency_t *dependency, <a class="code" href="celix__dm__service__dependency_8h.html#a00447f0e837918fcf6e39698ef375f46">celix_dm_service_dependency_strategy_t</a> strategy);</div>
-<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160; </div>
-<div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="celix__dm__service__dependency_8h.html#a8365396c6363ad98b66725243f97f8ea">  108</a></span>&#160;<a class="code" href="celix__dm__service__dependency_8h.html#a00447f0e837918fcf6e39698ef375f46">celix_dm_service_dependency_strategy_t</a> <a class="code" href="celix__dm__service__dependency_8h.html#a8365396c6363ad98b66725243f97f8ea">celix_dmServiceDependency_getStrategy</a>(celix_dm_service_dependency_t *dependency);</div>
-<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160; </div>
-<div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="celix__dm__service__dependency_8h.html#a2602a6526ef6cde42d606c9ed958cec7">  117</a></span>&#160;celix_status_t <a class="code" href="celix__dm__service__dependency_8h.html#a2602a6526ef6cde42d606c9ed958cec7">celix_dmServiceDependency_setService</a>(celix_dm_service_dependency_t *dependency, <span class="keyword">const</span> <span class="keywordtype">char</span>* serviceName, <span class="keyword">const</span> <span class="keywordtype">char</span>* serviceVersionRange, <span class="keyword">const</span> <span class="keywordtype">char</span>* filter);</div>
-<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160; </div>
-<div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="celix__dm__service__dependency_8h.html#a487a41d56ea2bf1aa51cd7f7e83ff844">  122</a></span>&#160;<span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="celix__dm__service__dependency_8h.html#a487a41d56ea2bf1aa51cd7f7e83ff844">celix_dmServiceDependency_getFilter</a>(celix_dm_service_dependency_t *dependency);</div>
-<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160; </div>
-<div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="celix__dm__service__dependency_8h.html#a1a731a456c8e617acfa4d81a6357959c">  129</a></span>&#160;celix_status_t <a class="code" href="celix__dm__service__dependency_8h.html#a1a731a456c8e617acfa4d81a6357959c">celix_dmServiceDependency_setCallback</a>(celix_dm_service_dependency_t *dependency, <a class="code" href="celix__dm__service__dependency_8h.html#a3aab7f5d65c74eb819047e5ec1f4c05f">celix_dm_service_update_fp</a> set);</div>
-<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160; </div>
-<div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="celix__dm__service__dependency_8h.html#a9bdfec7b27301bd71dd4f45fcdd11568">  137</a></span>&#160;celix_status_t <a class="code" href="celix__dm__service__dependency_8h.html#a9bdfec7b27301bd71dd4f45fcdd11568">celix_dmServiceDependency_setCallbackWithProperties</a>(celix_dm_service_dependency_t *dependency, <a class="code" href="celix__dm__service__dependency_8h.html#afb8ee50fcfc77f274578d85a70bb2b94">celix_dm_service_update_with_props_fp</a> set);</div>
-<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160; </div>
-<div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="celix__dm__service__dependency_8h.html#a31898ef1ad5f9695dc85a24202020ebe">  145</a></span>&#160;celix_status_t <a class="code" href="celix__dm__service__dependency_8h.html#a31898ef1ad5f9695dc85a24202020ebe">celix_dmServiceDependency_setCallbacksWithOptions</a>(celix_dm_service_dependency_t *dependency, <span class="keyword">const</span> <a class="code" href="structcelix__dm__service__dependency__callback__options.html">celix_dm_service_dependency_callback_options_t</a> *opts);</div>
-<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160; </div>
-<div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="celix__dm__service__dependency_8h.html#aebe0669933d37f9fd1c3fdc873127d78">  152</a></span>&#160;celix_status_t <a class="code" href="celix__dm__service__dependency_8h.html#aebe0669933d37f9fd1c3fdc873127d78">celix_dmServiceDependency_setCallbackHandle</a>(celix_dm_service_dependency_t *dependency, <span class="keywordtype">void</span>* handle);</div>
-<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160; </div>
-<div class="line"><a name="l00158"></a><span class="lineno"><a class="line" href="celix__dm__service__dependency_8h.html#a0b84d9164563664da40491151f7d7131">  158</a></span>&#160;<a class="code" href="structcelix__dm__service__dependency__info__struct.html">dm_service_dependency_info_t</a>* <a class="code" href="celix__dm__service__dependency_8h.html#a0b84d9164563664da40491151f7d7131">celix_dmServiceDependency_createInfo</a>(celix_dm_service_dependency_t* dep);</div>
-<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160; </div>
-<div class="line"><a name="l00163"></a><span class="lineno"><a class="line" href="celix__dm__service__dependency_8h.html#acb96da27c0087a05d885b0f55756de8a">  163</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="celix__dm__service__dependency_8h.html#acb96da27c0087a05d885b0f55756de8a">celix_dmServiceDependency_destroyInfo</a>(celix_dm_service_dependency_t *dep, <a class="code" href="structcelix__dm__service__dependency__info__struct.html">dm_service_dependency_info_t</a> *info);</div>
-<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160; </div>
-<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;}</div>
-<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160; </div>
-<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* CELIX_DM_SERVICE_DEPENDENCY_H_ */</span><span class="preprocessor"></span></div>
-</div><!-- fragment --></div><!-- contents -->
-<div class="ttc" id="acelix__dm__service__dependency_8h_html_a1a731a456c8e617acfa4d81a6357959c"><div class="ttname"><a href="celix__dm__service__dependency_8h.html#a1a731a456c8e617acfa4d81a6357959c">celix_dmServiceDependency_setCallback</a></div><div class="ttdeci">celix_status_t celix_dmServiceDependency_setCallback(celix_dm_service_dependency_t *dependency, celix_dm_service_update_fp set)</div></div>
-<div class="ttc" id="acelix__dm__service__dependency_8h_html_a2602a6526ef6cde42d606c9ed958cec7"><div class="ttname"><a href="celix__dm__service__dependency_8h.html#a2602a6526ef6cde42d606c9ed958cec7">celix_dmServiceDependency_setService</a></div><div class="ttdeci">celix_status_t celix_dmServiceDependency_setService(celix_dm_service_dependency_t *dependency, const char *serviceName, const char *serviceVersionRange, const char *filter)</div></div>
-<div class="ttc" id="acelix__dm__service__dependency_8h_html_ac282334d66c3cfc4fda1b67245172979"><div class="ttname"><a href="celix__dm__service__dependency_8h.html#ac282334d66c3cfc4fda1b67245172979">celix_dmServiceDependency_destroy</a></div><div class="ttdeci">void celix_dmServiceDependency_destroy(celix_dm_service_dependency_t *dep)</div></div>
-<div class="ttc" id="astructcelix__dm__service__dependency__callback__options_html_a1e0bfcf2034cd6d69d954256d101598d"><div class="ttname"><a href="structcelix__dm__service__dependency__callback__options.html#a1e0bfcf2034cd6d69d954256d101598d">celix_dm_service_dependency_callback_options::swapWithProps</a></div><div class="ttdeci">celix_dm_service_swap_with_props_fp swapWithProps</div><div class="ttdef"><b>Definition:</b> celix_dm_service_dependency.h:54</div></div>
-<div class="ttc" id="astructcelix__dm__service__dependency__callback__options_html_a54ee61c8ab040dc87de22588013316fd"><div class="ttname"><a href="structcelix__dm__service__dependency__callback__options.html#a54ee61c8ab040dc87de22588013316fd">celix_dm_service_dependency_callback_options::removeWithProps</a></div><div class="ttdeci">celix_dm_service_update_with_props_fp removeWithProps</div><div class="ttdef"><b>Definition:</b> celix_dm_service_dependency.h:53</div></div>
-<div class="ttc" id="astructcelix__dm__service__dependency__callback__options_html_a9663db4ef079c6300f95dadfe2c03813"><div class="ttname"><a href="structcelix__dm__service__dependency__callback__options.html#a9663db4ef079c6300f95dadfe2c03813">celix_dm_service_dependency_callback_options::add</a></div><div class="ttdeci">celix_dm_service_update_fp add</div><div class="ttdef"><b>Definition:</b> celix_dm_service_dependency.h:47</div></div>
-<div class="ttc" id="acelix__dm__service__dependency_8h_html_a80a698d57b244ab54ffad631a41ae88c"><div class="ttname"><a href="celix__dm__service__dependency_8h.html#a80a698d57b244ab54ffad631a41ae88c">celix_dm_service_dependency_strategy_enum</a></div><div class="ttdeci">celix_dm_service_dependency_strategy_enum</div><div class="ttdef"><b>Definition:</b> celix_dm_service_dependency.h:34</div></div>
-<div class="ttc" id="acelix__dm__info_8h_html"><div class="ttname"><a href="celix__dm__info_8h.html">celix_dm_info.h</a></div></div>
-<div class="ttc" id="astructcelix__dm__service__dependency__info__struct_html"><div class="ttname"><a href="structcelix__dm__service__dependency__info__struct.html">celix_dm_service_dependency_info_struct</a></div><div class="ttdef"><b>Definition:</b> celix_dm_info.h:42</div></div>
-<div class="ttc" id="astructcelix__dm__service__dependency__callback__options_html_a10fe45460fc65e1590a58477f515424b"><div class="ttname"><a href="structcelix__dm__service__dependency__callback__options.html#a10fe45460fc65e1590a58477f515424b">celix_dm_service_dependency_callback_options::remove</a></div><div class="ttdeci">celix_dm_service_update_fp remove</div><div class="ttdef"><b>Definition:</b> celix_dm_service_dependency.h:48</div></div>
-<div class="ttc" id="acelix__dm__service__dependency_8h_html_a9d833904b765bee7073ec41828ea7d2e"><div class="ttname"><a href="celix__dm__service__dependency_8h.html#a9d833904b765bee7073ec41828ea7d2e">celix_dmServiceDependency_setStrategy</a></div><div class="ttdeci">celix_status_t celix_dmServiceDependency_setStrategy(celix_dm_service_dependency_t *dependency, celix_dm_service_dependency_strategy_t strategy)</div></div>
-<div class="ttc" id="acelix__dm__service__dependency_8h_html_ace7f03a4e7746a8ca8218afd172752f8"><div class="ttname"><a href="celix__dm__service__dependency_8h.html#ace7f03a4e7746a8ca8218afd172752f8">celix_dm_service_dependency_callback_options_t</a></div><div class="ttdeci">struct celix_dm_service_dependency_callback_options celix_dm_service_dependency_callback_options_t</div></div>
-<div class="ttc" id="acelix__dm__service__dependency_8h_html_a487a41d56ea2bf1aa51cd7f7e83ff844"><div class="ttname"><a href="celix__dm__service__dependency_8h.html#a487a41d56ea2bf1aa51cd7f7e83ff844">celix_dmServiceDependency_getFilter</a></div><div class="ttdeci">const char * celix_dmServiceDependency_getFilter(celix_dm_service_dependency_t *dependency)</div></div>
-<div class="ttc" id="astructcelix__dm__service__dependency__callback__options_html_a35b874e6fa5a6c3af03f09e6492e8b48"><div class="ttname"><a href="structcelix__dm__service__dependency__callback__options.html#a35b874e6fa5a6c3af03f09e6492e8b48">celix_dm_service_dependency_callback_options::swap</a></div><div class="ttdeci">celix_dm_service_swap_fp swap</div><div class="ttdef"><b>Definition:</b> celix_dm_service_dependency.h:49</div></div>
-<div class="ttc" id="astructcelix__dm__service__dependency__callback__options_html_a84e8cecdb9dd19f072d1b9c28fa95c8b"><div class="ttname"><a href="structcelix__dm__service__dependency__callback__options.html#a84e8cecdb9dd19f072d1b9c28fa95c8b">celix_dm_service_dependency_callback_options::set</a></div><div class="ttdeci">celix_dm_service_update_fp set</div><div class="ttdef"><b>Definition:</b> celix_dm_service_dependency.h:46</div></div>
-<div class="ttc" id="acelix__dm__service__dependency_8h_html_a588b147bec75a501fac3b35076fc98a3"><div class="ttname"><a href="celix__dm__service__dependency_8h.html#a588b147bec75a501fac3b35076fc98a3">celix_dmServiceDependency_create</a></div><div class="ttdeci">celix_dm_service_dependency_t * celix_dmServiceDependency_create(void)</div></div>
-<div class="ttc" id="astructcelix__dm__service__dependency__callback__options_html_a286bb094f7e4b4a9066e9b235aa8ade9"><div class="ttname"><a href="structcelix__dm__service__dependency__callback__options.html#a286bb094f7e4b4a9066e9b235aa8ade9">celix_dm_service_dependency_callback_options::setWithProps</a></div><div class="ttdeci">celix_dm_service_update_with_props_fp setWithProps</div><div class="ttdef"><b>Definition:</b> celix_dm_service_dependency.h:51</div></div>
-<div class="ttc" id="astructcelix__dm__service__dependency__callback__options_html_a5cf7a8e9026d08803798c70cb6a30330"><div class="ttname"><a href="structcelix__dm__service__dependency__callback__options.html#a5cf7a8e9026d08803798c70cb6a30330">celix_dm_service_dependency_callback_options::addWithProps</a></div><div class="ttdeci">celix_dm_service_update_with_props_fp addWithProps</div><div class="ttdef"><b>Definition:</b> celix_dm_service_dependency.h:52</div></div>
-<div class="ttc" id="acelix__dm__service__dependency_8h_html_a0b84d9164563664da40491151f7d7131"><div class="ttname"><a href="celix__dm__service__dependency_8h.html#a0b84d9164563664da40491151f7d7131">celix_dmServiceDependency_createInfo</a></div><div class="ttdeci">dm_service_dependency_info_t * celix_dmServiceDependency_createInfo(celix_dm_service_dependency_t *dep)</div></div>
-<div class="ttc" id="acelix__dm__service__dependency_8h_html_a80a698d57b244ab54ffad631a41ae88ca6c94c0c92189ea864b218b45d2526db1"><div class="ttname"><a href="celix__dm__service__dependency_8h.html#a80a698d57b244ab54ffad631a41ae88ca6c94c0c92189ea864b218b45d2526db1">DM_SERVICE_DEPENDENCY_STRATEGY_LOCKING</a></div><div class="ttdeci">@ DM_SERVICE_DEPENDENCY_STRATEGY_LOCKING</div><div class="ttdef"><b>Definition:</b> celix_dm_service_dependency.h:35</div></div>
-<div class="ttc" id="acelix__dm__service__dependency_8h_html_a6b4b49e1cbd6865c5dc14e94086f629f"><div class="ttname"><a href="celix__dm__service__dependency_8h.html#a6b4b49e1cbd6865c5dc14e94086f629f">celix_dm_service_swap_with_props_fp</a></div><div class="ttdeci">int(* celix_dm_service_swap_with_props_fp)(void *handle, void *oldService, void *newService, const celix_properties_t *newProps)</div><div class="ttdef"><b>Definition:</b> celix_dm_service_dependency.h:43</div></div>
-<div class="ttc" id="acelix__dm__service__dependency_8h_html_a3aab7f5d65c74eb819047e5ec1f4c05f"><div class="ttname"><a href="celix__dm__service__dependency_8h.html#a3aab7f5d65c74eb819047e5ec1f4c05f">celix_dm_service_update_fp</a></div><div class="ttdeci">int(* celix_dm_service_update_fp)(void *handle, void *service)</div><div class="ttdef"><b>Definition:</b> celix_dm_service_dependency.h:39</div></div>
-<div class="ttc" id="acelix__dm__service__dependency_8h_html_a0c33bcf502f8683bce3cf382c4bdc76a"><div class="ttname"><a href="celix__dm__service__dependency_8h.html#a0c33bcf502f8683bce3cf382c4bdc76a">celix_dmServiceDependency_setRequired</a></div><div class="ttdeci">celix_status_t celix_dmServiceDependency_setRequired(celix_dm_service_dependency_t *dependency, bool required)</div></div>
-<div class="ttc" id="acelix__dm__service__dependency_8h_html_acb96da27c0087a05d885b0f55756de8a"><div class="ttname"><a href="celix__dm__service__dependency_8h.html#acb96da27c0087a05d885b0f55756de8a">celix_dmServiceDependency_destroyInfo</a></div><div class="ttdeci">void celix_dmServiceDependency_destroyInfo(celix_dm_service_dependency_t *dep, dm_service_dependency_info_t *info)</div></div>
-<div class="ttc" id="acelix__dm__service__dependency_8h_html_afb8ee50fcfc77f274578d85a70bb2b94"><div class="ttname"><a href="celix__dm__service__dependency_8h.html#afb8ee50fcfc77f274578d85a70bb2b94">celix_dm_service_update_with_props_fp</a></div><div class="ttdeci">int(* celix_dm_service_update_with_props_fp)(void *handle, void *service, const celix_properties_t *props)</div><div class="ttdef"><b>Definition:</b> celix_dm_service_dependency.h:42</div></div>
-<div class="ttc" id="acelix__dm__service__dependency_8h_html_a9aec79471c46aecc7412523fe839e549"><div class="ttname"><a href="celix__dm__service__dependency_8h.html#a9aec79471c46aecc7412523fe839e549">celix_dmServiceDependency_setAddCLanguageFilter</a></div><div class="ttdeci">celix_status_t celix_dmServiceDependency_setAddCLanguageFilter(celix_dm_service_dependency_t *dependency, bool addCLangFilter)</div></div>
-<div class="ttc" id="astructcelix__dm__service__dependency__callback__options_html"><div class="ttname"><a href="structcelix__dm__service__dependency__callback__options.html">celix_dm_service_dependency_callback_options</a></div><div class="ttdef"><b>Definition:</b> celix_dm_service_dependency.h:45</div></div>
-<div class="ttc" id="acelix__dm__service__dependency_8h_html_a9bdfec7b27301bd71dd4f45fcdd11568"><div class="ttname"><a href="celix__dm__service__dependency_8h.html#a9bdfec7b27301bd71dd4f45fcdd11568">celix_dmServiceDependency_setCallbackWithProperties</a></div><div class="ttdeci">celix_status_t celix_dmServiceDependency_setCallbackWithProperties(celix_dm_service_dependency_t *dependency, celix_dm_service_update_with_props_fp set)</div></div>
-<div class="ttc" id="acelix__dm__service__dependency_8h_html_a80a698d57b244ab54ffad631a41ae88caf4c6748a0a1d0e04997c11847c737428"><div class="ttname"><a href="celix__dm__service__dependency_8h.html#a80a698d57b244ab54ffad631a41ae88caf4c6748a0a1d0e04997c11847c737428">DM_SERVICE_DEPENDENCY_STRATEGY_SUSPEND</a></div><div class="ttdeci">@ DM_SERVICE_DEPENDENCY_STRATEGY_SUSPEND</div><div class="ttdef"><b>Definition:</b> celix_dm_service_dependency.h:36</div></div>
-<div class="ttc" id="acelix__dm__service__dependency_8h_html_a8a77266cc94a0f019b29d75a8e54995d"><div class="ttname"><a href="celix__dm__service__dependency_8h.html#a8a77266cc94a0f019b29d75a8e54995d">celix_dm_service_swap_fp</a></div><div class="ttdeci">int(* celix_dm_service_swap_fp)(void *handle, void *oldService, void *newService)</div><div class="ttdef"><b>Definition:</b> celix_dm_service_dependency.h:40</div></div>
-<div class="ttc" id="acelix__dm__service__dependency_8h_html_a00447f0e837918fcf6e39698ef375f46"><div class="ttname"><a href="celix__dm__service__dependency_8h.html#a00447f0e837918fcf6e39698ef375f46">celix_dm_service_dependency_strategy_t</a></div><div class="ttdeci">enum celix_dm_service_dependency_strategy_enum celix_dm_service_dependency_strategy_t</div></div>
-<div class="ttc" id="acelix__dm__service__dependency_8h_html_aebe0669933d37f9fd1c3fdc873127d78"><div class="ttname"><a href="celix__dm__service__dependency_8h.html#aebe0669933d37f9fd1c3fdc873127d78">celix_dmServiceDependency_setCallbackHandle</a></div><div class="ttdeci">celix_status_t celix_dmServiceDependency_setCallbackHandle(celix_dm_service_dependency_t *dependency, void *handle)</div></div>
-<div class="ttc" id="acelix__dm__service__dependency_8h_html_a8365396c6363ad98b66725243f97f8ea"><div class="ttname"><a href="celix__dm__service__dependency_8h.html#a8365396c6363ad98b66725243f97f8ea">celix_dmServiceDependency_getStrategy</a></div><div class="ttdeci">celix_dm_service_dependency_strategy_t celix_dmServiceDependency_getStrategy(celix_dm_service_dependency_t *dependency)</div></div>
-<div class="ttc" id="acelix__dm__service__dependency_8h_html_a31898ef1ad5f9695dc85a24202020ebe"><div class="ttname"><a href="celix__dm__service__dependency_8h.html#a31898ef1ad5f9695dc85a24202020ebe">celix_dmServiceDependency_setCallbacksWithOptions</a></div><div class="ttdeci">celix_status_t celix_dmServiceDependency_setCallbacksWithOptions(celix_dm_service_dependency_t *dependency, const celix_dm_service_dependency_callback_options_t *opts)</div></div>
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.18
-</small></address>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/celix__framework_8h.html b/static/docs/2.2.1/html/celix__framework_8h.html
deleted file mode 100755
index 856064d..0000000
--- a/static/docs/2.2.1/html/celix__framework_8h.html
+++ /dev/null
@@ -1,299 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>Celix: libs/framework/include/celix_framework.h File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/searchdata.js"></script>
-<script type="text/javascript" src="search/search.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">Celix
-   &#160;<span id="projectnumber">2.2.1</span>
-   </div>
-   <div id="projectbrief">An implementation of the OSGi specification adapted to C and C++</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.18 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
-     onmouseover="return searchBox.OnSearchSelectShow()"
-     onmouseout="return searchBox.OnSearchSelectHide()"
-     onkeydown="return searchBox.OnSearchSelectKey(event)">
-</div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div id="nav-path" class="navpath">
-  <ul>
-<li class="navelem"><a class="el" href="dir_6719ab1f1f7655efc2fa43f7eb574fd1.html">libs</a></li><li class="navelem"><a class="el" href="dir_edbb2ffdc3e165978e68de3a46f2e8a0.html">framework</a></li><li class="navelem"><a class="el" href="dir_bc286dd6b945a73064974dfd7e40f558.html">include</a></li>  </ul>
-</div>
-</div><!-- top -->
-<div class="header">
-  <div class="summary">
-<a href="#func-members">Functions</a>  </div>
-  <div class="headertitle">
-<div class="title">celix_framework.h File Reference</div>  </div>
-</div><!--header-->
-<div class="contents">
-<div class="textblock"><code>#include &quot;celix_types.h&quot;</code><br />
-<code>#include &quot;celix_properties.h&quot;</code><br />
-</div><div class="textblock"><div class="dynheader">
-Include dependency graph for celix_framework.h:</div>
-<div class="dyncontent">
-<div class="center"><img src="celix__framework_8h__incl.png" border="0" usemap="#libs_2framework_2include_2celix__framework_8h" alt=""/></div>
-<map name="libs_2framework_2include_2celix__framework_8h" id="libs_2framework_2include_2celix__framework_8h">
-<area shape="rect" title=" " alt="" coords="47,5,198,47"/>
-<area shape="rect" title=" " alt="" coords="5,95,104,121"/>
-<area shape="rect" title=" " alt="" coords="129,95,253,121"/>
-</map>
-</div>
-</div><div class="textblock"><div class="dynheader">
-This graph shows which files directly or indirectly include this file:</div>
-<div class="dyncontent">
-<div class="center"><img src="celix__framework_8h__dep__incl.png" border="0" usemap="#libs_2framework_2include_2celix__framework_8hdep" alt=""/></div>
-<map name="libs_2framework_2include_2celix__framework_8hdep" id="libs_2framework_2include_2celix__framework_8hdep">
-<area shape="rect" title=" " alt="" coords="5,5,156,47"/>
-<area shape="rect" href="celix__api_8h.html" title=" " alt="" coords="5,95,156,136"/>
-</map>
-</div>
-</div>
-<p><a href="celix__framework_8h_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:a671ba53e13abea3d4eb328a66b62802f"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__framework_8h.html#a671ba53e13abea3d4eb328a66b62802f">celix_framework_getUUID</a> (const celix_framework_t *fw)</td></tr>
-<tr class="separator:a671ba53e13abea3d4eb328a66b62802f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aa2e913753f841b3b0b22c196b39d03b1"><td class="memItemLeft" align="right" valign="top">celix_bundle_context_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__framework_8h.html#aa2e913753f841b3b0b22c196b39d03b1">celix_framework_getFrameworkContext</a> (const celix_framework_t *fw)</td></tr>
-<tr class="separator:aa2e913753f841b3b0b22c196b39d03b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ae980ec9c8f83f8a3e65dc7da9d794f18"><td class="memItemLeft" align="right" valign="top">celix_bundle_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__framework_8h.html#ae980ec9c8f83f8a3e65dc7da9d794f18">celix_framework_getFrameworkBundle</a> (const celix_framework_t *fw)</td></tr>
-<tr class="separator:ae980ec9c8f83f8a3e65dc7da9d794f18"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a192ba45dd2a7175fd4d19c70da59f9ab"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__framework_8h.html#a192ba45dd2a7175fd4d19c70da59f9ab">celix_framework_useBundles</a> (celix_framework_t *fw, bool includeFrameworkBundle, void *callbackHandle, void(*use)(void *handle, const celix_bundle_t *bnd))</td></tr>
-<tr class="separator:a192ba45dd2a7175fd4d19c70da59f9ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ab158bb807ea2171c5d20076cb457c8d1"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__framework_8h.html#ab158bb807ea2171c5d20076cb457c8d1">celix_framework_useBundle</a> (celix_framework_t *fw, bool onlyActive, long bndId, void *callbackHandle, void(*use)(void *handle, const celix_bundle_t *bnd))</td></tr>
-<tr class="separator:ab158bb807ea2171c5d20076cb457c8d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-<h2 class="groupheader">Function Documentation</h2>
-<a id="ae980ec9c8f83f8a3e65dc7da9d794f18"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ae980ec9c8f83f8a3e65dc7da9d794f18">&#9670;&nbsp;</a></span>celix_framework_getFrameworkBundle()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">celix_bundle_t* celix_framework_getFrameworkBundle </td>
-          <td>(</td>
-          <td class="paramtype">const celix_framework_t *&#160;</td>
-          <td class="paramname"><em>fw</em></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Returns the framework bundle. This is the same as a 'normal' bundle, expect that this bundle cannot be uninstalled and the <code>celix_bundle_getEntry</code> return a entries relative from the working directory. </p><dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">fw</td><td>The framework </td></tr>
-  </table>
-  </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>A pointer to the bundle of the framework or NULL if something went wrong. </dd></dl>
-
-</div>
-</div>
-<a id="aa2e913753f841b3b0b22c196b39d03b1"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#aa2e913753f841b3b0b22c196b39d03b1">&#9670;&nbsp;</a></span>celix_framework_getFrameworkContext()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">celix_bundle_context_t* celix_framework_getFrameworkContext </td>
-          <td>(</td>
-          <td class="paramtype">const celix_framework_t *&#160;</td>
-          <td class="paramname"><em>fw</em></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Returns the framework bundle context. This is the same as a 'normal' bundle context and can be used to register, use and track services. The only difference is that the framework is the bundle. </p><dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">fw</td><td>The framework </td></tr>
-  </table>
-  </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>A pointer to the bundle context of the framework or NULL if something went wrong. </dd></dl>
-
-</div>
-</div>
-<a id="a671ba53e13abea3d4eb328a66b62802f"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a671ba53e13abea3d4eb328a66b62802f">&#9670;&nbsp;</a></span>celix_framework_getUUID()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">const char* celix_framework_getUUID </td>
-          <td>(</td>
-          <td class="paramtype">const celix_framework_t *&#160;</td>
-          <td class="paramname"><em>fw</em></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Returns the framework UUID. This is unique for every created framework and will not be the same if the process is restarted. </p>
-
-</div>
-</div>
-<a id="ab158bb807ea2171c5d20076cb457c8d1"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ab158bb807ea2171c5d20076cb457c8d1">&#9670;&nbsp;</a></span>celix_framework_useBundle()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">bool celix_framework_useBundle </td>
-          <td>(</td>
-          <td class="paramtype">celix_framework_t *&#160;</td>
-          <td class="paramname"><em>fw</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">bool&#160;</td>
-          <td class="paramname"><em>onlyActive</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">long&#160;</td>
-          <td class="paramname"><em>bndId</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">void *&#160;</td>
-          <td class="paramname"><em>callbackHandle</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">void(*)(void *handle, const celix_bundle_t *bnd)&#160;</td>
-          <td class="paramname"><em>use</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Use the bundle with the provided bundle id The provided callback will be called if the bundle is found.</p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">fw</td><td>The framework. </td></tr>
-    <tr><td class="paramname">onlyActive</td><td>If true only starting and active bundles will trigger the callback. </td></tr>
-    <tr><td class="paramname">bundleId</td><td>The bundle id. </td></tr>
-    <tr><td class="paramname">callbackHandle</td><td>The data pointer, which will be used in the callbacks </td></tr>
-    <tr><td class="paramname">use</td><td>The callback which will be called for the currently started bundles. The bundle pointers are only guaranteed to be valid during the callback. </td></tr>
-  </table>
-  </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Returns true if the bundle is found and the callback is called. </dd></dl>
-
-</div>
-</div>
-<a id="a192ba45dd2a7175fd4d19c70da59f9ab"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a192ba45dd2a7175fd4d19c70da59f9ab">&#9670;&nbsp;</a></span>celix_framework_useBundles()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void celix_framework_useBundles </td>
-          <td>(</td>
-          <td class="paramtype">celix_framework_t *&#160;</td>
-          <td class="paramname"><em>fw</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">bool&#160;</td>
-          <td class="paramname"><em>includeFrameworkBundle</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">void *&#160;</td>
-          <td class="paramname"><em>callbackHandle</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">void(*)(void *handle, const celix_bundle_t *bnd)&#160;</td>
-          <td class="paramname"><em>use</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Use the currently active (started) bundles. The provided callback will be called for all the currently started bundles.</p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">ctx</td><td>The bundle context. </td></tr>
-    <tr><td class="paramname">includeFrameworkBundle</td><td>If true the callback will also be triggered for the framework bundle. </td></tr>
-    <tr><td class="paramname">callbackHandle</td><td>The data pointer, which will be used in the callbacks </td></tr>
-    <tr><td class="paramname">use</td><td>The callback which will be called for the currently started bundles. The bundle pointers are only guaranteed to be valid during the callback. </td></tr>
-  </table>
-  </dd>
-</dl>
-
-</div>
-</div>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.18
-</small></address>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/celix__framework_8h__dep__incl.map b/static/docs/2.2.1/html/celix__framework_8h__dep__incl.map
deleted file mode 100755
index a4cc95a..0000000
--- a/static/docs/2.2.1/html/celix__framework_8h__dep__incl.map
+++ /dev/null
@@ -1,4 +0,0 @@
-<map id="libs/framework/include/celix_framework.h" name="libs/framework/include/celix_framework.h">
-<area shape="rect" id="node1" title=" " alt="" coords="5,5,156,47"/>
-<area shape="rect" id="node2" href="$celix__api_8h.html" title=" " alt="" coords="5,95,156,136"/>
-</map>
diff --git a/static/docs/2.2.1/html/celix__framework_8h__dep__incl.md5 b/static/docs/2.2.1/html/celix__framework_8h__dep__incl.md5
deleted file mode 100755
index bc85af1..0000000
--- a/static/docs/2.2.1/html/celix__framework_8h__dep__incl.md5
+++ /dev/null
@@ -1 +0,0 @@
-d017e89d406f8664b8d75a4e4800376b
\ No newline at end of file
diff --git a/static/docs/2.2.1/html/celix__framework_8h__dep__incl.png b/static/docs/2.2.1/html/celix__framework_8h__dep__incl.png
deleted file mode 100755
index 32019bc..0000000
--- a/static/docs/2.2.1/html/celix__framework_8h__dep__incl.png
+++ /dev/null
Binary files differ
diff --git a/static/docs/2.2.1/html/celix__framework_8h__incl.map b/static/docs/2.2.1/html/celix__framework_8h__incl.map
deleted file mode 100755
index 6b237cf..0000000
--- a/static/docs/2.2.1/html/celix__framework_8h__incl.map
+++ /dev/null
@@ -1,5 +0,0 @@
-<map id="libs/framework/include/celix_framework.h" name="libs/framework/include/celix_framework.h">
-<area shape="rect" id="node1" title=" " alt="" coords="47,5,198,47"/>
-<area shape="rect" id="node2" title=" " alt="" coords="5,95,104,121"/>
-<area shape="rect" id="node3" title=" " alt="" coords="129,95,253,121"/>
-</map>
diff --git a/static/docs/2.2.1/html/celix__framework_8h__incl.md5 b/static/docs/2.2.1/html/celix__framework_8h__incl.md5
deleted file mode 100755
index 2e6e181..0000000
--- a/static/docs/2.2.1/html/celix__framework_8h__incl.md5
+++ /dev/null
@@ -1 +0,0 @@
-bd9368ca7a1865a397599c887ba9dc96
\ No newline at end of file
diff --git a/static/docs/2.2.1/html/celix__framework_8h__incl.png b/static/docs/2.2.1/html/celix__framework_8h__incl.png
deleted file mode 100755
index f0b36b7..0000000
--- a/static/docs/2.2.1/html/celix__framework_8h__incl.png
+++ /dev/null
Binary files differ
diff --git a/static/docs/2.2.1/html/celix__framework_8h_source.html b/static/docs/2.2.1/html/celix__framework_8h_source.html
deleted file mode 100755
index eb8dfe2..0000000
--- a/static/docs/2.2.1/html/celix__framework_8h_source.html
+++ /dev/null
@@ -1,134 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>Celix: libs/framework/include/celix_framework.h Source File</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/searchdata.js"></script>
-<script type="text/javascript" src="search/search.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">Celix
-   &#160;<span id="projectnumber">2.2.1</span>
-   </div>
-   <div id="projectbrief">An implementation of the OSGi specification adapted to C and C++</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.18 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
-     onmouseover="return searchBox.OnSearchSelectShow()"
-     onmouseout="return searchBox.OnSearchSelectHide()"
-     onkeydown="return searchBox.OnSearchSelectKey(event)">
-</div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div id="nav-path" class="navpath">
-  <ul>
-<li class="navelem"><a class="el" href="dir_6719ab1f1f7655efc2fa43f7eb574fd1.html">libs</a></li><li class="navelem"><a class="el" href="dir_edbb2ffdc3e165978e68de3a46f2e8a0.html">framework</a></li><li class="navelem"><a class="el" href="dir_bc286dd6b945a73064974dfd7e40f558.html">include</a></li>  </ul>
-</div>
-</div><!-- top -->
-<div class="header">
-  <div class="headertitle">
-<div class="title">celix_framework.h</div>  </div>
-</div><!--header-->
-<div class="contents">
-<a href="celix__framework_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div>
-<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div>
-<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div>
-<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div>
-<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div>
-<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div>
-<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div>
-<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div>
-<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div>
-<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div>
-<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div>
-<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div>
-<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div>
-<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div>
-<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> *  KIND, either express or implied.  See the License for the</span></div>
-<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div>
-<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div>
-<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div>
-<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160; </div>
-<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef CELIX_FRAMEWORK_H_</span></div>
-<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define CELIX_FRAMEWORK_H_</span></div>
-<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160; </div>
-<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160; </div>
-<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#include &quot;celix_types.h&quot;</span></div>
-<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#include &quot;celix_properties.h&quot;</span></div>
-<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160; </div>
-<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
-<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160; </div>
-<div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="celix__framework_8h.html#a671ba53e13abea3d4eb328a66b62802f">   35</a></span>&#160;<span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="celix__framework_8h.html#a671ba53e13abea3d4eb328a66b62802f">celix_framework_getUUID</a>(<span class="keyword">const</span> celix_framework_t *fw);</div>
-<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160; </div>
-<div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="celix__framework_8h.html#aa2e913753f841b3b0b22c196b39d03b1">   43</a></span>&#160;celix_bundle_context_t* <a class="code" href="celix__framework_8h.html#aa2e913753f841b3b0b22c196b39d03b1">celix_framework_getFrameworkContext</a>(<span class="keyword">const</span> celix_framework_t *fw);</div>
-<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160; </div>
-<div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="celix__framework_8h.html#ae980ec9c8f83f8a3e65dc7da9d794f18">   51</a></span>&#160;celix_bundle_t* <a class="code" href="celix__framework_8h.html#ae980ec9c8f83f8a3e65dc7da9d794f18">celix_framework_getFrameworkBundle</a>(<span class="keyword">const</span> celix_framework_t *fw);</div>
-<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160; </div>
-<div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="celix__framework_8h.html#a192ba45dd2a7175fd4d19c70da59f9ab">   63</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="celix__framework_8h.html#a192ba45dd2a7175fd4d19c70da59f9ab">celix_framework_useBundles</a>(celix_framework_t *fw, <span class="keywordtype">bool</span> includeFrameworkBundle, <span class="keywordtype">void</span> *callbackHandle, <span class="keywordtype">void</span>(*use)(<span class="keywordtype">void</span> *handle, <span class="keyword">const</span> celix_bundle_t *bnd));</div>
-<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160; </div>
-<div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="celix__framework_8h.html#ab158bb807ea2171c5d20076cb457c8d1">   77</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="celix__framework_8h.html#ab158bb807ea2171c5d20076cb457c8d1">celix_framework_useBundle</a>(celix_framework_t *fw, <span class="keywordtype">bool</span> onlyActive, <span class="keywordtype">long</span> bndId, <span class="keywordtype">void</span> *callbackHandle, <span class="keywordtype">void</span>(*use)(<span class="keywordtype">void</span> *handle, <span class="keyword">const</span> celix_bundle_t *bnd));</div>
-<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160; </div>
-<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160; </div>
-<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160; </div>
-<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;}</div>
-<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160; </div>
-<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* CELIX_FRAMEWORK_H_ */</span><span class="preprocessor"></span></div>
-</div><!-- fragment --></div><!-- contents -->
-<div class="ttc" id="acelix__framework_8h_html_ae980ec9c8f83f8a3e65dc7da9d794f18"><div class="ttname"><a href="celix__framework_8h.html#ae980ec9c8f83f8a3e65dc7da9d794f18">celix_framework_getFrameworkBundle</a></div><div class="ttdeci">celix_bundle_t * celix_framework_getFrameworkBundle(const celix_framework_t *fw)</div></div>
-<div class="ttc" id="acelix__framework_8h_html_a671ba53e13abea3d4eb328a66b62802f"><div class="ttname"><a href="celix__framework_8h.html#a671ba53e13abea3d4eb328a66b62802f">celix_framework_getUUID</a></div><div class="ttdeci">const char * celix_framework_getUUID(const celix_framework_t *fw)</div></div>
-<div class="ttc" id="acelix__framework_8h_html_a192ba45dd2a7175fd4d19c70da59f9ab"><div class="ttname"><a href="celix__framework_8h.html#a192ba45dd2a7175fd4d19c70da59f9ab">celix_framework_useBundles</a></div><div class="ttdeci">void celix_framework_useBundles(celix_framework_t *fw, bool includeFrameworkBundle, void *callbackHandle, void(*use)(void *handle, const celix_bundle_t *bnd))</div></div>
-<div class="ttc" id="acelix__framework_8h_html_aa2e913753f841b3b0b22c196b39d03b1"><div class="ttname"><a href="celix__framework_8h.html#aa2e913753f841b3b0b22c196b39d03b1">celix_framework_getFrameworkContext</a></div><div class="ttdeci">celix_bundle_context_t * celix_framework_getFrameworkContext(const celix_framework_t *fw)</div></div>
-<div class="ttc" id="acelix__framework_8h_html_ab158bb807ea2171c5d20076cb457c8d1"><div class="ttname"><a href="celix__framework_8h.html#ab158bb807ea2171c5d20076cb457c8d1">celix_framework_useBundle</a></div><div class="ttdeci">bool celix_framework_useBundle(celix_framework_t *fw, bool onlyActive, long bndId, void *callbackHandle, void(*use)(void *handle, const celix_bundle_t *bnd))</div></div>
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.18
-</small></address>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/classes.html b/static/docs/2.2.1/html/classes.html
deleted file mode 100755
index a57e2ce..0000000
--- a/static/docs/2.2.1/html/classes.html
+++ /dev/null
@@ -1,99 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>Celix: Class Index</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/searchdata.js"></script>
-<script type="text/javascript" src="search/search.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">Celix
-   &#160;<span id="projectnumber">2.2.1</span>
-   </div>
-   <div id="projectbrief">An implementation of the OSGi specification adapted to C and C++</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.18 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
-     onmouseover="return searchBox.OnSearchSelectShow()"
-     onmouseout="return searchBox.OnSearchSelectHide()"
-     onkeydown="return searchBox.OnSearchSelectKey(event)">
-</div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="header">
-  <div class="headertitle">
-<div class="title">Class Index</div>  </div>
-</div><!--header-->
-<div class="contents">
-<div class="qindex"><a class="qindex" href="#letter_c">c</a></div>
-<table class="classindex">
-<tr><td rowspan="2" valign="bottom"><a name="letter_c"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;c&#160;&#160;</div></td></tr></table>
-</td>
-<td valign="top"><a class="el" href="structcelix__dm__component__info__struct.html">celix_dm_component_info_struct</a>&#160;&#160;&#160;</td>
-<td valign="top"><a class="el" href="structcelix__dm__service__dependency__callback__options.html">celix_dm_service_dependency_callback_options</a>&#160;&#160;&#160;</td>
-<td valign="top"><a class="el" href="structcelix__service__registration__options.html">celix_service_registration_options</a>&#160;&#160;&#160;</td>
-<td valign="top"><a class="el" href="structcelix__service__use__options.html">celix_service_use_options</a>&#160;&#160;&#160;</td>
-</tr>
-<tr><td valign="top"><a class="el" href="structcelix__dm__dependency__manager__info__struct.html">celix_dm_dependency_manager_info_struct</a>&#160;&#160;&#160;</td>
-<td valign="top"><a class="el" href="structcelix__dm__service__dependency__info__struct.html">celix_dm_service_dependency_info_struct</a>&#160;&#160;&#160;</td>
-<td valign="top"><a class="el" href="structcelix__service__tracker__info.html">celix_service_tracker_info</a>&#160;&#160;&#160;</td>
-<td></td></tr>
-<tr><td valign="top"><a class="el" href="structcelix__bundle__tracker__options.html">celix_bundle_tracker_options</a>&#160;&#160;&#160;</td>
-<td valign="top"><a class="el" href="structcelix__dm__interface__info__struct.html">celix_dm_interface_info_struct</a>&#160;&#160;&#160;</td>
-<td valign="top"><a class="el" href="structcelix__service__filter__options.html">celix_service_filter_options</a>&#160;&#160;&#160;</td>
-<td valign="top"><a class="el" href="structcelix__service__tracking__options.html">celix_service_tracking_options</a>&#160;&#160;&#160;</td>
-<td></td></tr>
-<tr><td></td><td></td><td></td><td></td><td></td></tr>
-</table>
-<div class="qindex"><a class="qindex" href="#letter_c">c</a></div>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.18
-</small></address>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/closed.png b/static/docs/2.2.1/html/closed.png
deleted file mode 100755
index 98cc2c9..0000000
--- a/static/docs/2.2.1/html/closed.png
+++ /dev/null
Binary files differ
diff --git a/static/docs/2.2.1/html/dir_6719ab1f1f7655efc2fa43f7eb574fd1.html b/static/docs/2.2.1/html/dir_6719ab1f1f7655efc2fa43f7eb574fd1.html
deleted file mode 100755
index 15e3c84..0000000
--- a/static/docs/2.2.1/html/dir_6719ab1f1f7655efc2fa43f7eb574fd1.html
+++ /dev/null
@@ -1,88 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>Celix: libs Directory Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/searchdata.js"></script>
-<script type="text/javascript" src="search/search.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">Celix
-   &#160;<span id="projectnumber">2.2.1</span>
-   </div>
-   <div id="projectbrief">An implementation of the OSGi specification adapted to C and C++</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.18 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
-     onmouseover="return searchBox.OnSearchSelectShow()"
-     onmouseout="return searchBox.OnSearchSelectHide()"
-     onkeydown="return searchBox.OnSearchSelectKey(event)">
-</div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div id="nav-path" class="navpath">
-  <ul>
-<li class="navelem"><a class="el" href="dir_6719ab1f1f7655efc2fa43f7eb574fd1.html">libs</a></li>  </ul>
-</div>
-</div><!-- top -->
-<div class="header">
-  <div class="headertitle">
-<div class="title">libs Directory Reference</div>  </div>
-</div><!--header-->
-<div class="contents">
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a>
-Directories</h2></td></tr>
-<tr class="memitem:dir_edbb2ffdc3e165978e68de3a46f2e8a0"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_edbb2ffdc3e165978e68de3a46f2e8a0.html">framework</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.18
-</small></address>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/dir_bc286dd6b945a73064974dfd7e40f558.html b/static/docs/2.2.1/html/dir_bc286dd6b945a73064974dfd7e40f558.html
deleted file mode 100755
index b360ec9..0000000
--- a/static/docs/2.2.1/html/dir_bc286dd6b945a73064974dfd7e40f558.html
+++ /dev/null
@@ -1,102 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>Celix: libs/framework/include Directory Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/searchdata.js"></script>
-<script type="text/javascript" src="search/search.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">Celix
-   &#160;<span id="projectnumber">2.2.1</span>
-   </div>
-   <div id="projectbrief">An implementation of the OSGi specification adapted to C and C++</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.18 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
-     onmouseover="return searchBox.OnSearchSelectShow()"
-     onmouseout="return searchBox.OnSearchSelectHide()"
-     onkeydown="return searchBox.OnSearchSelectKey(event)">
-</div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div id="nav-path" class="navpath">
-  <ul>
-<li class="navelem"><a class="el" href="dir_6719ab1f1f7655efc2fa43f7eb574fd1.html">libs</a></li><li class="navelem"><a class="el" href="dir_edbb2ffdc3e165978e68de3a46f2e8a0.html">framework</a></li><li class="navelem"><a class="el" href="dir_bc286dd6b945a73064974dfd7e40f558.html">include</a></li>  </ul>
-</div>
-</div><!-- top -->
-<div class="header">
-  <div class="headertitle">
-<div class="title">include Directory Reference</div>  </div>
-</div><!--header-->
-<div class="contents">
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
-Files</h2></td></tr>
-<tr class="memitem:celix__api_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__api_8h.html">celix_api.h</a> <a href="celix__api_8h_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:celix__bundle_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__bundle_8h.html">celix_bundle.h</a> <a href="celix__bundle_8h_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:celix__bundle__activator_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__bundle__activator_8h.html">celix_bundle_activator.h</a> <a href="celix__bundle__activator_8h_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:celix__bundle__context_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__bundle__context_8h.html">celix_bundle_context.h</a> <a href="celix__bundle__context_8h_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:celix__dm__component_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__dm__component_8h.html">celix_dm_component.h</a> <a href="celix__dm__component_8h_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:celix__dm__info_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__dm__info_8h.html">celix_dm_info.h</a> <a href="celix__dm__info_8h_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:celix__dm__service__dependency_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__dm__service__dependency_8h.html">celix_dm_service_dependency.h</a> <a href="celix__dm__service__dependency_8h_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:celix__framework_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="celix__framework_8h.html">celix_framework.h</a> <a href="celix__framework_8h_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.18
-</small></address>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/dir_edbb2ffdc3e165978e68de3a46f2e8a0.html b/static/docs/2.2.1/html/dir_edbb2ffdc3e165978e68de3a46f2e8a0.html
deleted file mode 100755
index d44170b..0000000
--- a/static/docs/2.2.1/html/dir_edbb2ffdc3e165978e68de3a46f2e8a0.html
+++ /dev/null
@@ -1,88 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>Celix: libs/framework Directory Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/searchdata.js"></script>
-<script type="text/javascript" src="search/search.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">Celix
-   &#160;<span id="projectnumber">2.2.1</span>
-   </div>
-   <div id="projectbrief">An implementation of the OSGi specification adapted to C and C++</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.18 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
-     onmouseover="return searchBox.OnSearchSelectShow()"
-     onmouseout="return searchBox.OnSearchSelectHide()"
-     onkeydown="return searchBox.OnSearchSelectKey(event)">
-</div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div id="nav-path" class="navpath">
-  <ul>
-<li class="navelem"><a class="el" href="dir_6719ab1f1f7655efc2fa43f7eb574fd1.html">libs</a></li><li class="navelem"><a class="el" href="dir_edbb2ffdc3e165978e68de3a46f2e8a0.html">framework</a></li>  </ul>
-</div>
-</div><!-- top -->
-<div class="header">
-  <div class="headertitle">
-<div class="title">framework Directory Reference</div>  </div>
-</div><!--header-->
-<div class="contents">
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a>
-Directories</h2></td></tr>
-<tr class="memitem:dir_bc286dd6b945a73064974dfd7e40f558"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_bc286dd6b945a73064974dfd7e40f558.html">include</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.18
-</small></address>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/doc.png b/static/docs/2.2.1/html/doc.png
deleted file mode 100755
index 17edabf..0000000
--- a/static/docs/2.2.1/html/doc.png
+++ /dev/null
Binary files differ
diff --git a/static/docs/2.2.1/html/doxygen.css b/static/docs/2.2.1/html/doxygen.css
deleted file mode 100755
index 5e35db3..0000000
--- a/static/docs/2.2.1/html/doxygen.css
+++ /dev/null
@@ -1,1730 +0,0 @@
-/* The standard CSS for doxygen 1.8.18 */
-
-body, table, div, p, dl {
-	font: 400 14px/22px Roboto,sans-serif;
-}
-
-p.reference, p.definition {
-	font: 400 14px/22px Roboto,sans-serif;
-}
-
-/* @group Heading Levels */
-
-h1.groupheader {
-	font-size: 150%;
-}
-
-.title {
-	font: 400 14px/28px Roboto,sans-serif;
-	font-size: 150%;
-	font-weight: bold;
-	margin: 10px 2px;
-}
-
-h2.groupheader {
-	border-bottom: 1px solid #879ECB;
-	color: #354C7B;
-	font-size: 150%;
-	font-weight: normal;
-	margin-top: 1.75em;
-	padding-top: 8px;
-	padding-bottom: 4px;
-	width: 100%;
-}
-
-h3.groupheader {
-	font-size: 100%;
-}
-
-h1, h2, h3, h4, h5, h6 {
-	-webkit-transition: text-shadow 0.5s linear;
-	-moz-transition: text-shadow 0.5s linear;
-	-ms-transition: text-shadow 0.5s linear;
-	-o-transition: text-shadow 0.5s linear;
-	transition: text-shadow 0.5s linear;
-	margin-right: 15px;
-}
-
-h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow {
-	text-shadow: 0 0 15px cyan;
-}
-
-dt {
-	font-weight: bold;
-}
-
-ul.multicol {
-	-moz-column-gap: 1em;
-	-webkit-column-gap: 1em;
-	column-gap: 1em;
-	-moz-column-count: 3;
-	-webkit-column-count: 3;
-	column-count: 3;
-}
-
-p.startli, p.startdd {
-	margin-top: 2px;
-}
-
-th p.starttd, p.intertd, p.endtd {
-        font-size: 100%;
-        font-weight: 700;
-}
-
-p.starttd {
-	margin-top: 0px;
-}
-
-p.endli {
-	margin-bottom: 0px;
-}
-
-p.enddd {
-	margin-bottom: 4px;
-}
-
-p.endtd {
-	margin-bottom: 2px;
-}
-
-p.interli {
-}
-
-p.interdd {
-}
-
-p.intertd {
-}
-
-/* @end */
-
-caption {
-	font-weight: bold;
-}
-
-span.legend {
-        font-size: 70%;
-        text-align: center;
-}
-
-h3.version {
-        font-size: 90%;
-        text-align: center;
-}
-
-div.qindex, div.navtab{
-	background-color: #EBEFF6;
-	border: 1px solid #A3B4D7;
-	text-align: center;
-}
-
-div.qindex, div.navpath {
-	width: 100%;
-	line-height: 140%;
-}
-
-div.navtab {
-	margin-right: 15px;
-}
-
-/* @group Link Styling */
-
-a {
-	color: #3D578C;
-	font-weight: normal;
-	text-decoration: none;
-}
-
-.contents a:visited {
-	color: #4665A2;
-}
-
-a:hover {
-	text-decoration: underline;
-}
-
-a.qindex {
-	font-weight: bold;
-}
-
-a.qindexHL {
-	font-weight: bold;
-	background-color: #9CAFD4;
-	color: #FFFFFF;
-	border: 1px double #869DCA;
-}
-
-.contents a.qindexHL:visited {
-        color: #FFFFFF;
-}
-
-a.el {
-	font-weight: bold;
-}
-
-a.elRef {
-}
-
-a.code, a.code:visited, a.line, a.line:visited {
-	color: #4665A2; 
-}
-
-a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited {
-	color: #4665A2; 
-}
-
-/* @end */
-
-dl.el {
-	margin-left: -1cm;
-}
-
-ul {
-  overflow: hidden; /*Fixed: list item bullets overlap floating elements*/
-}
-
-#side-nav ul {
-  overflow: visible; /* reset ul rule for scroll bar in GENERATE_TREEVIEW window */
-}
-
-#main-nav ul {
-  overflow: visible; /* reset ul rule for the navigation bar drop down lists */
-}
-
-.fragment {
-  text-align: left;
-  direction: ltr;
-  overflow-x: auto; /*Fixed: fragment lines overlap floating elements*/
-  overflow-y: hidden;
-}
-
-pre.fragment {
-        border: 1px solid #C4CFE5;
-        background-color: #FBFCFD;
-        padding: 4px 6px;
-        margin: 4px 8px 4px 2px;
-        overflow: auto;
-        word-wrap: break-word;
-        font-size:  9pt;
-        line-height: 125%;
-        font-family: monospace, fixed;
-        font-size: 105%;
-}
-
-div.fragment {
-  padding: 0 0 1px 0; /*Fixed: last line underline overlap border*/
-  margin: 4px 8px 4px 2px;
-	background-color: #FBFCFD;
-	border: 1px solid #C4CFE5;
-}
-
-div.line {
-	font-family: monospace, fixed;
-        font-size: 13px;
-	min-height: 13px;
-	line-height: 1.0;
-	text-wrap: unrestricted;
-	white-space: -moz-pre-wrap; /* Moz */
-	white-space: -pre-wrap;     /* Opera 4-6 */
-	white-space: -o-pre-wrap;   /* Opera 7 */
-	white-space: pre-wrap;      /* CSS3  */
-	word-wrap: break-word;      /* IE 5.5+ */
-	text-indent: -53px;
-	padding-left: 53px;
-	padding-bottom: 0px;
-	margin: 0px;
-	-webkit-transition-property: background-color, box-shadow;
-	-webkit-transition-duration: 0.5s;
-	-moz-transition-property: background-color, box-shadow;
-	-moz-transition-duration: 0.5s;
-	-ms-transition-property: background-color, box-shadow;
-	-ms-transition-duration: 0.5s;
-	-o-transition-property: background-color, box-shadow;
-	-o-transition-duration: 0.5s;
-	transition-property: background-color, box-shadow;
-	transition-duration: 0.5s;
-}
-
-div.line:after {
-    content:"\000A";
-    white-space: pre;
-}
-
-div.line.glow {
-	background-color: cyan;
-	box-shadow: 0 0 10px cyan;
-}
-
-
-span.lineno {
-	padding-right: 4px;
-	text-align: right;
-	border-right: 2px solid #0F0;
-	background-color: #E8E8E8;
-        white-space: pre;
-}
-span.lineno a {
-	background-color: #D8D8D8;
-}
-
-span.lineno a:hover {
-	background-color: #C8C8C8;
-}
-
-.lineno {
-	-webkit-touch-callout: none;
-	-webkit-user-select: none;
-	-khtml-user-select: none;
-	-moz-user-select: none;
-	-ms-user-select: none;
-	user-select: none;
-}
-
-div.ah, span.ah {
-	background-color: black;
-	font-weight: bold;
-	color: #FFFFFF;
-	margin-bottom: 3px;
-	margin-top: 3px;
-	padding: 0.2em;
-	border: solid thin #333;
-	border-radius: 0.5em;
-	-webkit-border-radius: .5em;
-	-moz-border-radius: .5em;
-	box-shadow: 2px 2px 3px #999;
-	-webkit-box-shadow: 2px 2px 3px #999;
-	-moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
-	background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444));
-	background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000 110%);
-}
-
-div.classindex ul {
-        list-style: none;
-        padding-left: 0;
-}
-
-div.classindex span.ai {
-        display: inline-block;
-}
-
-div.groupHeader {
-	margin-left: 16px;
-	margin-top: 12px;
-	font-weight: bold;
-}
-
-div.groupText {
-	margin-left: 16px;
-	font-style: italic;
-}
-
-body {
-	background-color: white;
-	color: black;
-        margin: 0;
-}
-
-div.contents {
-	margin-top: 10px;
-	margin-left: 12px;
-	margin-right: 8px;
-}
-
-td.indexkey {
-	background-color: #EBEFF6;
-	font-weight: bold;
-	border: 1px solid #C4CFE5;
-	margin: 2px 0px 2px 0;
-	padding: 2px 10px;
-        white-space: nowrap;
-        vertical-align: top;
-}
-
-td.indexvalue {
-	background-color: #EBEFF6;
-	border: 1px solid #C4CFE5;
-	padding: 2px 10px;
-	margin: 2px 0px;
-}
-
-tr.memlist {
-	background-color: #EEF1F7;
-}
-
-p.formulaDsp {
-	text-align: center;
-}
-
-img.formulaDsp {
-	
-}
-
-img.formulaInl, img.inline {
-	vertical-align: middle;
-}
-
-div.center {
-	text-align: center;
-        margin-top: 0px;
-        margin-bottom: 0px;
-        padding: 0px;
-}
-
-div.center img {
-	border: 0px;
-}
-
-address.footer {
-	text-align: right;
-	padding-right: 12px;
-}
-
-img.footer {
-	border: 0px;
-	vertical-align: middle;
-}
-
-/* @group Code Colorization */
-
-span.keyword {
-	color: #008000
-}
-
-span.keywordtype {
-	color: #604020
-}
-
-span.keywordflow {
-	color: #e08000
-}
-
-span.comment {
-	color: #800000
-}
-
-span.preprocessor {
-	color: #806020
-}
-
-span.stringliteral {
-	color: #002080
-}
-
-span.charliteral {
-	color: #008080
-}
-
-span.vhdldigit { 
-	color: #ff00ff 
-}
-
-span.vhdlchar { 
-	color: #000000 
-}
-
-span.vhdlkeyword { 
-	color: #700070 
-}
-
-span.vhdllogic { 
-	color: #ff0000 
-}
-
-blockquote {
-        background-color: #F7F8FB;
-        border-left: 2px solid #9CAFD4;
-        margin: 0 24px 0 4px;
-        padding: 0 12px 0 16px;
-}
-
-blockquote.DocNodeRTL {
-   border-left: 0;
-   border-right: 2px solid #9CAFD4;
-   margin: 0 4px 0 24px;
-   padding: 0 16px 0 12px;
-}
-
-/* @end */
-
-/*
-.search {
-	color: #003399;
-	font-weight: bold;
-}
-
-form.search {
-	margin-bottom: 0px;
-	margin-top: 0px;
-}
-
-input.search {
-	font-size: 75%;
-	color: #000080;
-	font-weight: normal;
-	background-color: #e8eef2;
-}
-*/
-
-td.tiny {
-	font-size: 75%;
-}
-
-.dirtab {
-	padding: 4px;
-	border-collapse: collapse;
-	border: 1px solid #A3B4D7;
-}
-
-th.dirtab {
-	background: #EBEFF6;
-	font-weight: bold;
-}
-
-hr {
-	height: 0px;
-	border: none;
-	border-top: 1px solid #4A6AAA;
-}
-
-hr.footer {
-	height: 1px;
-}
-
-/* @group Member Descriptions */
-
-table.memberdecls {
-	border-spacing: 0px;
-	padding: 0px;
-}
-
-.memberdecls td, .fieldtable tr {
-	-webkit-transition-property: background-color, box-shadow;
-	-webkit-transition-duration: 0.5s;
-	-moz-transition-property: background-color, box-shadow;
-	-moz-transition-duration: 0.5s;
-	-ms-transition-property: background-color, box-shadow;
-	-ms-transition-duration: 0.5s;
-	-o-transition-property: background-color, box-shadow;
-	-o-transition-duration: 0.5s;
-	transition-property: background-color, box-shadow;
-	transition-duration: 0.5s;
-}
-
-.memberdecls td.glow, .fieldtable tr.glow {
-	background-color: cyan;
-	box-shadow: 0 0 15px cyan;
-}
-
-.mdescLeft, .mdescRight,
-.memItemLeft, .memItemRight,
-.memTemplItemLeft, .memTemplItemRight, .memTemplParams {
-	background-color: #F9FAFC;
-	border: none;
-	margin: 4px;
-	padding: 1px 0 0 8px;
-}
-
-.mdescLeft, .mdescRight {
-	padding: 0px 8px 4px 8px;
-	color: #555;
-}
-
-.memSeparator {
-        border-bottom: 1px solid #DEE4F0;
-        line-height: 1px;
-        margin: 0px;
-        padding: 0px;
-}
-
-.memItemLeft, .memTemplItemLeft {
-        white-space: nowrap;
-}
-
-.memItemRight, .memTemplItemRight {
-	width: 100%;
-}
-
-.memTemplParams {
-	color: #4665A2;
-        white-space: nowrap;
-	font-size: 80%;
-}
-
-/* @end */
-
-/* @group Member Details */
-
-/* Styles for detailed member documentation */
-
-.memtitle {
-	padding: 8px;
-	border-top: 1px solid #A8B8D9;
-	border-left: 1px solid #A8B8D9;
-	border-right: 1px solid #A8B8D9;
-	border-top-right-radius: 4px;
-	border-top-left-radius: 4px;
-	margin-bottom: -1px;
-	background-image: url('nav_f.png');
-	background-repeat: repeat-x;
-	background-color: #E2E8F2;
-	line-height: 1.25;
-	font-weight: 300;
-	float:left;
-}
-
-.permalink
-{
-        font-size: 65%;
-        display: inline-block;
-        vertical-align: middle;
-}
-
-.memtemplate {
-	font-size: 80%;
-	color: #4665A2;
-	font-weight: normal;
-	margin-left: 9px;
-}
-
-.memnav {
-	background-color: #EBEFF6;
-	border: 1px solid #A3B4D7;
-	text-align: center;
-	margin: 2px;
-	margin-right: 15px;
-	padding: 2px;
-}
-
-.mempage {
-	width: 100%;
-}
-
-.memitem {
-	padding: 0;
-	margin-bottom: 10px;
-	margin-right: 5px;
-        -webkit-transition: box-shadow 0.5s linear;
-        -moz-transition: box-shadow 0.5s linear;
-        -ms-transition: box-shadow 0.5s linear;
-        -o-transition: box-shadow 0.5s linear;
-        transition: box-shadow 0.5s linear;
-        display: table !important;
-        width: 100%;
-}
-
-.memitem.glow {
-         box-shadow: 0 0 15px cyan;
-}
-
-.memname {
-        font-weight: 400;
-        margin-left: 6px;
-}
-
-.memname td {
-	vertical-align: bottom;
-}
-
-.memproto, dl.reflist dt {
-        border-top: 1px solid #A8B8D9;
-        border-left: 1px solid #A8B8D9;
-        border-right: 1px solid #A8B8D9;
-        padding: 6px 0px 6px 0px;
-        color: #253555;
-        font-weight: bold;
-        text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
-        background-color: #DFE5F1;
-        /* opera specific markup */
-        box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
-        border-top-right-radius: 4px;
-        /* firefox specific markup */
-        -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
-        -moz-border-radius-topright: 4px;
-        /* webkit specific markup */
-        -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
-        -webkit-border-top-right-radius: 4px;
-
-}
-
-.overload {
-        font-family: "courier new",courier,monospace;
-	font-size: 65%;
-}
-
-.memdoc, dl.reflist dd {
-        border-bottom: 1px solid #A8B8D9;      
-        border-left: 1px solid #A8B8D9;      
-        border-right: 1px solid #A8B8D9; 
-        padding: 6px 10px 2px 10px;
-        background-color: #FBFCFD;
-        border-top-width: 0;
-        background-image:url('nav_g.png');
-        background-repeat:repeat-x;
-        background-color: #FFFFFF;
-        /* opera specific markup */
-        border-bottom-left-radius: 4px;
-        border-bottom-right-radius: 4px;
-        box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
-        /* firefox specific markup */
-        -moz-border-radius-bottomleft: 4px;
-        -moz-border-radius-bottomright: 4px;
-        -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
-        /* webkit specific markup */
-        -webkit-border-bottom-left-radius: 4px;
-        -webkit-border-bottom-right-radius: 4px;
-        -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
-}
-
-dl.reflist dt {
-        padding: 5px;
-}
-
-dl.reflist dd {
-        margin: 0px 0px 10px 0px;
-        padding: 5px;
-}
-
-.paramkey {
-	text-align: right;
-}
-
-.paramtype {
-	white-space: nowrap;
-}
-
-.paramname {
-	color: #602020;
-	white-space: nowrap;
-}
-.paramname em {
-	font-style: normal;
-}
-.paramname code {
-        line-height: 14px;
-}
-
-.params, .retval, .exception, .tparams {
-        margin-left: 0px;
-        padding-left: 0px;
-}       
-
-.params .paramname, .retval .paramname, .tparams .paramname, .exception .paramname {
-        font-weight: bold;
-        vertical-align: top;
-}
-        
-.params .paramtype, .tparams .paramtype {
-        font-style: italic;
-        vertical-align: top;
-}       
-        
-.params .paramdir, .tparams .paramdir {
-        font-family: "courier new",courier,monospace;
-        vertical-align: top;
-}
-
-table.mlabels {
-	border-spacing: 0px;
-}
-
-td.mlabels-left {
-	width: 100%;
-	padding: 0px;
-}
-
-td.mlabels-right {
-	vertical-align: bottom;
-	padding: 0px;
-	white-space: nowrap;
-}
-
-span.mlabels {
-        margin-left: 8px;
-}
-
-span.mlabel {
-        background-color: #728DC1;
-        border-top:1px solid #5373B4;
-        border-left:1px solid #5373B4;
-        border-right:1px solid #C4CFE5;
-        border-bottom:1px solid #C4CFE5;
-	text-shadow: none;
-	color: white;
-	margin-right: 4px;
-	padding: 2px 3px;
-	border-radius: 3px;
-	font-size: 7pt;
-	white-space: nowrap;
-	vertical-align: middle;
-}
-
-
-
-/* @end */
-
-/* these are for tree view inside a (index) page */
-
-div.directory {
-        margin: 10px 0px;
-        border-top: 1px solid #9CAFD4;
-        border-bottom: 1px solid #9CAFD4;
-        width: 100%;
-}
-
-.directory table {
-        border-collapse:collapse;
-}
-
-.directory td {
-        margin: 0px;
-        padding: 0px;
-	vertical-align: top;
-}
-
-.directory td.entry {
-        white-space: nowrap;
-        padding-right: 6px;
-	padding-top: 3px;
-}
-
-.directory td.entry a {
-        outline:none;
-}
-
-.directory td.entry a img {
-        border: none;
-}
-
-.directory td.desc {
-        width: 100%;
-        padding-left: 6px;
-	padding-right: 6px;
-	padding-top: 3px;
-	border-left: 1px solid rgba(0,0,0,0.05);
-}
-
-.directory tr.even {
-	padding-left: 6px;
-	background-color: #F7F8FB;
-}
-
-.directory img {
-	vertical-align: -30%;
-}
-
-.directory .levels {
-        white-space: nowrap;
-        width: 100%;
-        text-align: right;
-        font-size: 9pt;
-}
-
-.directory .levels span {
-        cursor: pointer;
-        padding-left: 2px;
-        padding-right: 2px;
-	color: #3D578C;
-}
-
-.arrow {
-    color: #9CAFD4;
-    -webkit-user-select: none;
-    -khtml-user-select: none;
-    -moz-user-select: none;
-    -ms-user-select: none;
-    user-select: none;
-    cursor: pointer;
-    font-size: 80%;
-    display: inline-block;
-    width: 16px;
-    height: 22px;
-}
-
-.icon {
-    font-family: Arial, Helvetica;
-    font-weight: bold;
-    font-size: 12px;
-    height: 14px;
-    width: 16px;
-    display: inline-block;
-    background-color: #728DC1;
-    color: white;
-    text-align: center;
-    border-radius: 4px;
-    margin-left: 2px;
-    margin-right: 2px;
-}
-
-.icona {
-    width: 24px;
-    height: 22px;
-    display: inline-block;
-}
-
-.iconfopen {
-    width: 24px;
-    height: 18px;
-    margin-bottom: 4px;
-    background-image:url('folderopen.png');
-    background-position: 0px -4px;
-    background-repeat: repeat-y;
-    vertical-align:top;
-    display: inline-block;
-}
-
-.iconfclosed {
-    width: 24px;
-    height: 18px;
-    margin-bottom: 4px;
-    background-image:url('folderclosed.png');
-    background-position: 0px -4px;
-    background-repeat: repeat-y;
-    vertical-align:top;
-    display: inline-block;
-}
-
-.icondoc {
-    width: 24px;
-    height: 18px;
-    margin-bottom: 4px;
-    background-image:url('doc.png');
-    background-position: 0px -4px;
-    background-repeat: repeat-y;
-    vertical-align:top;
-    display: inline-block;
-}
-
-table.directory {
-    font: 400 14px Roboto,sans-serif;
-}
-
-/* @end */
-
-div.dynheader {
-        margin-top: 8px;
-	-webkit-touch-callout: none;
-	-webkit-user-select: none;
-	-khtml-user-select: none;
-	-moz-user-select: none;
-	-ms-user-select: none;
-	user-select: none;
-}
-
-address {
-	font-style: normal;
-	color: #2A3D61;
-}
-
-table.doxtable caption {
-	caption-side: top;
-}
-
-table.doxtable {
-	border-collapse:collapse;
-        margin-top: 4px;
-        margin-bottom: 4px;
-}
-
-table.doxtable td, table.doxtable th {
-	border: 1px solid #2D4068;
-	padding: 3px 7px 2px;
-}
-
-table.doxtable th {
-	background-color: #374F7F;
-	color: #FFFFFF;
-	font-size: 110%;
-	padding-bottom: 4px;
-	padding-top: 5px;
-}
-
-table.fieldtable {
-        /*width: 100%;*/
-        margin-bottom: 10px;
-        border: 1px solid #A8B8D9;
-        border-spacing: 0px;
-        -moz-border-radius: 4px;
-        -webkit-border-radius: 4px;
-        border-radius: 4px;
-        -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
-        -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
-        box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
-}
-
-.fieldtable td, .fieldtable th {
-        padding: 3px 7px 2px;
-}
-
-.fieldtable td.fieldtype, .fieldtable td.fieldname {
-        white-space: nowrap;
-        border-right: 1px solid #A8B8D9;
-        border-bottom: 1px solid #A8B8D9;
-        vertical-align: top;
-}
-
-.fieldtable td.fieldname {
-        padding-top: 3px;
-}
-
-.fieldtable td.fielddoc {
-        border-bottom: 1px solid #A8B8D9;
-        /*width: 100%;*/
-}
-
-.fieldtable td.fielddoc p:first-child {
-        margin-top: 0px;
-}       
-        
-.fieldtable td.fielddoc p:last-child {
-        margin-bottom: 2px;
-}
-
-.fieldtable tr:last-child td {
-        border-bottom: none;
-}
-
-.fieldtable th {
-        background-image:url('nav_f.png');
-        background-repeat:repeat-x;
-        background-color: #E2E8F2;
-        font-size: 90%;
-        color: #253555;
-        padding-bottom: 4px;
-        padding-top: 5px;
-        text-align:left;
-        font-weight: 400;
-        -moz-border-radius-topleft: 4px;
-        -moz-border-radius-topright: 4px;
-        -webkit-border-top-left-radius: 4px;
-        -webkit-border-top-right-radius: 4px;
-        border-top-left-radius: 4px;
-        border-top-right-radius: 4px;
-        border-bottom: 1px solid #A8B8D9;
-}
-
-
-.tabsearch {
-	top: 0px;
-	left: 10px;
-	height: 36px;
-	background-image: url('tab_b.png');
-	z-index: 101;
-	overflow: hidden;
-	font-size: 13px;
-}
-
-.navpath ul
-{
-	font-size: 11px;
-	background-image:url('tab_b.png');
-	background-repeat:repeat-x;
-	background-position: 0 -5px;
-	height:30px;
-	line-height:30px;
-	color:#8AA0CC;
-	border:solid 1px #C2CDE4;
-	overflow:hidden;
-	margin:0px;
-	padding:0px;
-}
-
-.navpath li
-{
-	list-style-type:none;
-	float:left;
-	padding-left:10px;
-	padding-right:15px;
-	background-image:url('bc_s.png');
-	background-repeat:no-repeat;
-	background-position:right;
-	color:#364D7C;
-}
-
-.navpath li.navelem a
-{
-	height:32px;
-	display:block;
-	text-decoration: none;
-	outline: none;
-	color: #283A5D;
-	font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
-	text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
-	text-decoration: none;        
-}
-
-.navpath li.navelem a:hover
-{
-	color:#6884BD;
-}
-
-.navpath li.footer
-{
-        list-style-type:none;
-        float:right;
-        padding-left:10px;
-        padding-right:15px;
-        background-image:none;
-        background-repeat:no-repeat;
-        background-position:right;
-        color:#364D7C;
-        font-size: 8pt;
-}
-
-
-div.summary
-{
-	float: right;
-	font-size: 8pt;
-	padding-right: 5px;
-	width: 50%;
-	text-align: right;
-}       
-
-div.summary a
-{
-	white-space: nowrap;
-}
-
-table.classindex
-{
-        margin: 10px;
-        white-space: nowrap;
-        margin-left: 3%;
-        margin-right: 3%;
-        width: 94%;
-        border: 0;
-        border-spacing: 0; 
-        padding: 0;
-}
-
-div.ingroups
-{
-	font-size: 8pt;
-	width: 50%;
-	text-align: left;
-}
-
-div.ingroups a
-{
-	white-space: nowrap;
-}
-
-div.header
-{
-        background-image:url('nav_h.png');
-        background-repeat:repeat-x;
-	background-color: #F9FAFC;
-	margin:  0px;
-	border-bottom: 1px solid #C4CFE5;
-}
-
-div.headertitle
-{
-	padding: 5px 5px 5px 10px;
-}
-
-.PageDocRTL-title div.headertitle {
-  text-align: right;
-  direction: rtl;
-}
-
-dl {
-        padding: 0 0 0 0;
-}
-
-/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug, dl.examples */
-dl.section {
-	margin-left: 0px;
-	padding-left: 0px;
-}
-
-dl.section.DocNodeRTL {
-  margin-right: 0px;
-  padding-right: 0px;
-}
-
-dl.note {
-  margin-left: -7px;
-  padding-left: 3px;
-  border-left: 4px solid;
-  border-color: #D0C000;
-}
-
-dl.note.DocNodeRTL {
-  margin-left: 0;
-  padding-left: 0;
-  border-left: 0;
-  margin-right: -7px;
-  padding-right: 3px;
-  border-right: 4px solid;
-  border-color: #D0C000;
-}
-
-dl.warning, dl.attention {
-  margin-left: -7px;
-  padding-left: 3px;
-  border-left: 4px solid;
-  border-color: #FF0000;
-}
-
-dl.warning.DocNodeRTL, dl.attention.DocNodeRTL {
-  margin-left: 0;
-  padding-left: 0;
-  border-left: 0;
-  margin-right: -7px;
-  padding-right: 3px;
-  border-right: 4px solid;
-  border-color: #FF0000;
-}
-
-dl.pre, dl.post, dl.invariant {
-  margin-left: -7px;
-  padding-left: 3px;
-  border-left: 4px solid;
-  border-color: #00D000;
-}
-
-dl.pre.DocNodeRTL, dl.post.DocNodeRTL, dl.invariant.DocNodeRTL {
-  margin-left: 0;
-  padding-left: 0;
-  border-left: 0;
-  margin-right: -7px;
-  padding-right: 3px;
-  border-right: 4px solid;
-  border-color: #00D000;
-}
-
-dl.deprecated {
-  margin-left: -7px;
-  padding-left: 3px;
-  border-left: 4px solid;
-  border-color: #505050;
-}
-
-dl.deprecated.DocNodeRTL {
-  margin-left: 0;
-  padding-left: 0;
-  border-left: 0;
-  margin-right: -7px;
-  padding-right: 3px;
-  border-right: 4px solid;
-  border-color: #505050;
-}
-
-dl.todo {
-  margin-left: -7px;
-  padding-left: 3px;
-  border-left: 4px solid;
-  border-color: #00C0E0;
-}
-
-dl.todo.DocNodeRTL {
-  margin-left: 0;
-  padding-left: 0;
-  border-left: 0;
-  margin-right: -7px;
-  padding-right: 3px;
-  border-right: 4px solid;
-  border-color: #00C0E0;
-}
-
-dl.test {
-  margin-left: -7px;
-  padding-left: 3px;
-  border-left: 4px solid;
-  border-color: #3030E0;
-}
-
-dl.test.DocNodeRTL {
-  margin-left: 0;
-  padding-left: 0;
-  border-left: 0;
-  margin-right: -7px;
-  padding-right: 3px;
-  border-right: 4px solid;
-  border-color: #3030E0;
-}
-
-dl.bug {
-  margin-left: -7px;
-  padding-left: 3px;
-  border-left: 4px solid;
-  border-color: #C08050;
-}
-
-dl.bug.DocNodeRTL {
-  margin-left: 0;
-  padding-left: 0;
-  border-left: 0;
-  margin-right: -7px;
-  padding-right: 3px;
-  border-right: 4px solid;
-  border-color: #C08050;
-}
-
-dl.section dd {
-	margin-bottom: 6px;
-}
-
-
-#projectlogo
-{
-	text-align: center;
-	vertical-align: bottom;
-	border-collapse: separate;
-}
- 
-#projectlogo img
-{ 
-	border: 0px none;
-}
- 
-#projectalign
-{
-        vertical-align: middle;
-}
-
-#projectname
-{
-	font: 300% Tahoma, Arial,sans-serif;
-	margin: 0px;
-	padding: 2px 0px;
-}
-    
-#projectbrief
-{
-	font: 120% Tahoma, Arial,sans-serif;
-	margin: 0px;
-	padding: 0px;
-}
-
-#projectnumber
-{
-	font: 50% Tahoma, Arial,sans-serif;
-	margin: 0px;
-	padding: 0px;
-}
-
-#titlearea
-{
-	padding: 0px;
-	margin: 0px;
-	width: 100%;
-	border-bottom: 1px solid #5373B4;
-}
-
-.image
-{
-        text-align: center;
-}
-
-.dotgraph
-{
-        text-align: center;
-}
-
-.mscgraph
-{
-        text-align: center;
-}
-
-.plantumlgraph
-{
-        text-align: center;
-}
-
-.diagraph
-{
-        text-align: center;
-}
-
-.caption
-{
-	font-weight: bold;
-}
-
-div.zoom
-{
-	border: 1px solid #90A5CE;
-}
-
-dl.citelist {
-        margin-bottom:50px;
-}
-
-dl.citelist dt {
-        color:#334975;
-        float:left;
-        font-weight:bold;
-        margin-right:10px;
-        padding:5px;
-}
-
-dl.citelist dd {
-        margin:2px 0;
-        padding:5px 0;
-}
-
-div.toc {
-        padding: 14px 25px;
-        background-color: #F4F6FA;
-        border: 1px solid #D8DFEE;
-        border-radius: 7px 7px 7px 7px;
-        float: right;
-        height: auto;
-        margin: 0 8px 10px 10px;
-        width: 200px;
-}
-
-.PageDocRTL-title div.toc {
-  float: left !important;
-  text-align: right;
-}
-
-div.toc li {
-        background: url("bdwn.png") no-repeat scroll 0 5px transparent;
-        font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif;
-        margin-top: 5px;
-        padding-left: 10px;
-        padding-top: 2px;
-}
-
-.PageDocRTL-title div.toc li {
-  background-position-x: right !important;
-  padding-left: 0 !important;
-  padding-right: 10px;
-}
-
-div.toc h3 {
-        font: bold 12px/1.2 Arial,FreeSans,sans-serif;
-	color: #4665A2;
-        border-bottom: 0 none;
-        margin: 0;
-}
-
-div.toc ul {
-        list-style: none outside none;
-        border: medium none;
-        padding: 0px;
-}       
-
-div.toc li.level1 {
-        margin-left: 0px;
-}
-
-div.toc li.level2 {
-        margin-left: 15px;
-}
-
-div.toc li.level3 {
-        margin-left: 30px;
-}
-
-div.toc li.level4 {
-        margin-left: 45px;
-}
-
-.PageDocRTL-title div.toc li.level1 {
-  margin-left: 0 !important;
-  margin-right: 0;
-}
-
-.PageDocRTL-title div.toc li.level2 {
-  margin-left: 0 !important;
-  margin-right: 15px;
-}
-
-.PageDocRTL-title div.toc li.level3 {
-  margin-left: 0 !important;
-  margin-right: 30px;
-}
-
-.PageDocRTL-title div.toc li.level4 {
-  margin-left: 0 !important;
-  margin-right: 45px;
-}
-
-.inherit_header {
-        font-weight: bold;
-        color: gray;
-        cursor: pointer;
-	-webkit-touch-callout: none;
-	-webkit-user-select: none;
-	-khtml-user-select: none;
-	-moz-user-select: none;
-	-ms-user-select: none;
-	user-select: none;
-}
-
-.inherit_header td {
-        padding: 6px 0px 2px 5px;
-}
-
-.inherit {
-        display: none;
-}
-
-tr.heading h2 {
-        margin-top: 12px;
-        margin-bottom: 4px;
-}
-
-/* tooltip related style info */
-
-.ttc {
-        position: absolute;
-        display: none;
-}
-
-#powerTip {
-	cursor: default;
-	white-space: nowrap;
-	background-color: white;
-	border: 1px solid gray;
-	border-radius: 4px 4px 4px 4px;
-	box-shadow: 1px 1px 7px gray;
-	display: none;
-	font-size: smaller;
-	max-width: 80%;
-	opacity: 0.9;
-	padding: 1ex 1em 1em;
-	position: absolute;
-	z-index: 2147483647;
-}
-
-#powerTip div.ttdoc {
-        color: grey;
-	font-style: italic;
-}
-
-#powerTip div.ttname a {
-        font-weight: bold;
-}
-
-#powerTip div.ttname {
-        font-weight: bold;
-}
-
-#powerTip div.ttdeci {
-        color: #006318;
-}
-
-#powerTip div {
-        margin: 0px;
-        padding: 0px;
-        font: 12px/16px Roboto,sans-serif;
-}
-
-#powerTip:before, #powerTip:after {
-	content: "";
-	position: absolute;
-	margin: 0px;
-}
-
-#powerTip.n:after,  #powerTip.n:before,
-#powerTip.s:after,  #powerTip.s:before,
-#powerTip.w:after,  #powerTip.w:before,
-#powerTip.e:after,  #powerTip.e:before,
-#powerTip.ne:after, #powerTip.ne:before,
-#powerTip.se:after, #powerTip.se:before,
-#powerTip.nw:after, #powerTip.nw:before,
-#powerTip.sw:after, #powerTip.sw:before {
-	border: solid transparent;
-	content: " ";
-	height: 0;
-	width: 0;
-	position: absolute;
-}
-
-#powerTip.n:after,  #powerTip.s:after,
-#powerTip.w:after,  #powerTip.e:after,
-#powerTip.nw:after, #powerTip.ne:after,
-#powerTip.sw:after, #powerTip.se:after {
-	border-color: rgba(255, 255, 255, 0);
-}
-
-#powerTip.n:before,  #powerTip.s:before,
-#powerTip.w:before,  #powerTip.e:before,
-#powerTip.nw:before, #powerTip.ne:before,
-#powerTip.sw:before, #powerTip.se:before {
-	border-color: rgba(128, 128, 128, 0);
-}
-
-#powerTip.n:after,  #powerTip.n:before,
-#powerTip.ne:after, #powerTip.ne:before,
-#powerTip.nw:after, #powerTip.nw:before {
-	top: 100%;
-}
-
-#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after {
-	border-top-color: #FFFFFF;
-	border-width: 10px;
-	margin: 0px -10px;
-}
-#powerTip.n:before {
-	border-top-color: #808080;
-	border-width: 11px;
-	margin: 0px -11px;
-}
-#powerTip.n:after, #powerTip.n:before {
-	left: 50%;
-}
-
-#powerTip.nw:after, #powerTip.nw:before {
-	right: 14px;
-}
-
-#powerTip.ne:after, #powerTip.ne:before {
-	left: 14px;
-}
-
-#powerTip.s:after,  #powerTip.s:before,
-#powerTip.se:after, #powerTip.se:before,
-#powerTip.sw:after, #powerTip.sw:before {
-	bottom: 100%;
-}
-
-#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after {
-	border-bottom-color: #FFFFFF;
-	border-width: 10px;
-	margin: 0px -10px;
-}
-
-#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before {
-	border-bottom-color: #808080;
-	border-width: 11px;
-	margin: 0px -11px;
-}
-
-#powerTip.s:after, #powerTip.s:before {
-	left: 50%;
-}
-
-#powerTip.sw:after, #powerTip.sw:before {
-	right: 14px;
-}
-
-#powerTip.se:after, #powerTip.se:before {
-	left: 14px;
-}
-
-#powerTip.e:after, #powerTip.e:before {
-	left: 100%;
-}
-#powerTip.e:after {
-	border-left-color: #FFFFFF;
-	border-width: 10px;
-	top: 50%;
-	margin-top: -10px;
-}
-#powerTip.e:before {
-	border-left-color: #808080;
-	border-width: 11px;
-	top: 50%;
-	margin-top: -11px;
-}
-
-#powerTip.w:after, #powerTip.w:before {
-	right: 100%;
-}
-#powerTip.w:after {
-	border-right-color: #FFFFFF;
-	border-width: 10px;
-	top: 50%;
-	margin-top: -10px;
-}
-#powerTip.w:before {
-	border-right-color: #808080;
-	border-width: 11px;
-	top: 50%;
-	margin-top: -11px;
-}
-
-@media print
-{
-  #top { display: none; }
-  #side-nav { display: none; }
-  #nav-path { display: none; }
-  body { overflow:visible; }
-  h1, h2, h3, h4, h5, h6 { page-break-after: avoid; }
-  .summary { display: none; }
-  .memitem { page-break-inside: avoid; }
-  #doc-content
-  {
-    margin-left:0 !important;
-    height:auto !important;
-    width:auto !important;
-    overflow:inherit;
-    display:inline;
-  }
-}
-
-/* @group Markdown */
-
-table.markdownTable {
-	border-collapse:collapse;
-        margin-top: 4px;
-        margin-bottom: 4px;
-}
-
-table.markdownTable td, table.markdownTable th {
-	border: 1px solid #2D4068;
-	padding: 3px 7px 2px;
-}
-
-table.markdownTable tr {
-}
-
-th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone {
-	background-color: #374F7F;
-	color: #FFFFFF;
-	font-size: 110%;
-	padding-bottom: 4px;
-	padding-top: 5px;
-}
-
-th.markdownTableHeadLeft, td.markdownTableBodyLeft {
-	text-align: left
-}
-
-th.markdownTableHeadRight, td.markdownTableBodyRight {
-	text-align: right
-}
-
-th.markdownTableHeadCenter, td.markdownTableBodyCenter {
-	text-align: center
-}
-
-.DocNodeRTL {
-  text-align: right;
-  direction: rtl;
-}
-
-.DocNodeLTR {
-  text-align: left;
-  direction: ltr;
-}
-
-table.DocNodeRTL {
-   width: auto;
-   margin-right: 0;
-   margin-left: auto;
-}
-
-table.DocNodeLTR {
-   width: auto;
-   margin-right: auto;
-   margin-left: 0;
-}
-
-tt, code, kbd, samp
-{
-  display: inline-block;
-  direction:ltr; 
-}
-/* @end */
-
-u {
-	text-decoration: underline;
-}
-
diff --git a/static/docs/2.2.1/html/doxygen.png b/static/docs/2.2.1/html/doxygen.png
deleted file mode 100755
index 3ff17d8..0000000
--- a/static/docs/2.2.1/html/doxygen.png
+++ /dev/null
Binary files differ
diff --git a/static/docs/2.2.1/html/dynsections.js b/static/docs/2.2.1/html/dynsections.js
deleted file mode 100755
index 3174bd7..0000000
--- a/static/docs/2.2.1/html/dynsections.js
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- @licstart  The following is the entire license notice for the JavaScript code in this file.
-
- The MIT License (MIT)
-
- Copyright (C) 1997-2020 by Dimitri van Heesch
-
- Permission is hereby granted, free of charge, to any person obtaining a copy of this software
- and associated documentation files (the "Software"), to deal in the Software without restriction,
- including without limitation the rights to use, copy, modify, merge, publish, distribute,
- sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be included in all copies or
- substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
- BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
- @licend  The above is the entire license notice for the JavaScript code in this file
- */
-function toggleVisibility(linkObj)
-{
- var base = $(linkObj).attr('id');
- var summary = $('#'+base+'-summary');
- var content = $('#'+base+'-content');
- var trigger = $('#'+base+'-trigger');
- var src=$(trigger).attr('src');
- if (content.is(':visible')===true) {
-   content.hide();
-   summary.show();
-   $(linkObj).addClass('closed').removeClass('opened');
-   $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png');
- } else {
-   content.show();
-   summary.hide();
-   $(linkObj).removeClass('closed').addClass('opened');
-   $(trigger).attr('src',src.substring(0,src.length-10)+'open.png');
- }
- return false;
-}
-
-function updateStripes()
-{
-  $('table.directory tr').
-       removeClass('even').filter(':visible:even').addClass('even');
-}
-
-function toggleLevel(level)
-{
-  $('table.directory tr').each(function() {
-    var l = this.id.split('_').length-1;
-    var i = $('#img'+this.id.substring(3));
-    var a = $('#arr'+this.id.substring(3));
-    if (l<level+1) {
-      i.removeClass('iconfopen iconfclosed').addClass('iconfopen');
-      a.html('&#9660;');
-      $(this).show();
-    } else if (l==level+1) {
-      i.removeClass('iconfclosed iconfopen').addClass('iconfclosed');
-      a.html('&#9658;');
-      $(this).show();
-    } else {
-      $(this).hide();
-    }
-  });
-  updateStripes();
-}
-
-function toggleFolder(id)
-{
-  // the clicked row
-  var currentRow = $('#row_'+id);
-
-  // all rows after the clicked row
-  var rows = currentRow.nextAll("tr");
-
-  var re = new RegExp('^row_'+id+'\\d+_$', "i"); //only one sub
-
-  // only match elements AFTER this one (can't hide elements before)
-  var childRows = rows.filter(function() { return this.id.match(re); });
-
-  // first row is visible we are HIDING
-  if (childRows.filter(':first').is(':visible')===true) {
-    // replace down arrow by right arrow for current row
-    var currentRowSpans = currentRow.find("span");
-    currentRowSpans.filter(".iconfopen").removeClass("iconfopen").addClass("iconfclosed");
-    currentRowSpans.filter(".arrow").html('&#9658;');
-    rows.filter("[id^=row_"+id+"]").hide(); // hide all children
-  } else { // we are SHOWING
-    // replace right arrow by down arrow for current row
-    var currentRowSpans = currentRow.find("span");
-    currentRowSpans.filter(".iconfclosed").removeClass("iconfclosed").addClass("iconfopen");
-    currentRowSpans.filter(".arrow").html('&#9660;');
-    // replace down arrows by right arrows for child rows
-    var childRowsSpans = childRows.find("span");
-    childRowsSpans.filter(".iconfopen").removeClass("iconfopen").addClass("iconfclosed");
-    childRowsSpans.filter(".arrow").html('&#9658;');
-    childRows.show(); //show all children
-  }
-  updateStripes();
-}
-
-
-function toggleInherit(id)
-{
-  var rows = $('tr.inherit.'+id);
-  var img = $('tr.inherit_header.'+id+' img');
-  var src = $(img).attr('src');
-  if (rows.filter(':first').is(':visible')===true) {
-    rows.css('display','none');
-    $(img).attr('src',src.substring(0,src.length-8)+'closed.png');
-  } else {
-    rows.css('display','table-row'); // using show() causes jump in firefox
-    $(img).attr('src',src.substring(0,src.length-10)+'open.png');
-  }
-}
-/* @license-end */
diff --git a/static/docs/2.2.1/html/files.html b/static/docs/2.2.1/html/files.html
deleted file mode 100755
index d8320f3..0000000
--- a/static/docs/2.2.1/html/files.html
+++ /dev/null
@@ -1,93 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>Celix: File List</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/searchdata.js"></script>
-<script type="text/javascript" src="search/search.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">Celix
-   &#160;<span id="projectnumber">2.2.1</span>
-   </div>
-   <div id="projectbrief">An implementation of the OSGi specification adapted to C and C++</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.18 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
-     onmouseover="return searchBox.OnSearchSelectShow()"
-     onmouseout="return searchBox.OnSearchSelectHide()"
-     onkeydown="return searchBox.OnSearchSelectKey(event)">
-</div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="header">
-  <div class="headertitle">
-<div class="title">File List</div>  </div>
-</div><!--header-->
-<div class="contents">
-<div class="textblock">Here is a list of all files with brief descriptions:</div><div class="directory">
-<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span><span onclick="javascript:toggleLevel(3);">3</span><span onclick="javascript:toggleLevel(4);">4</span>]</div><table class="directory">
-<tr id="row_0_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_0_" class="arrow" onclick="toggleFolder('0_')">&#9660;</span><span id="img_0_" class="iconfopen" onclick="toggleFolder('0_')">&#160;</span><a class="el" href="dir_6719ab1f1f7655efc2fa43f7eb574fd1.html" target="_self">libs</a></td><td class="desc"></td></tr>
-<tr id="row_0_0_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_0_0_" class="arrow" onclick="toggleFolder('0_0_')">&#9660;</span><span id="img_0_0_" class="iconfopen" onclick="toggleFolder('0_0_')">&#160;</span><a class="el" href="dir_edbb2ffdc3e165978e68de3a46f2e8a0.html" target="_self">framework</a></td><td class="desc"></td></tr>
-<tr id="row_0_0_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_0_0_0_" class="arrow" onclick="toggleFolder('0_0_0_')">&#9660;</span><span id="img_0_0_0_" class="iconfopen" onclick="toggleFolder('0_0_0_')">&#160;</span><a class="el" href="dir_bc286dd6b945a73064974dfd7e40f558.html" target="_self">include</a></td><td class="desc"></td></tr>
-<tr id="row_0_0_0_0_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="celix__api_8h_source.html"><span class="icondoc"></span></a><a class="el" href="celix__api_8h.html" target="_self">celix_api.h</a></td><td class="desc"></td></tr>
-<tr id="row_0_0_0_1_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="celix__bundle_8h_source.html"><span class="icondoc"></span></a><a class="el" href="celix__bundle_8h.html" target="_self">celix_bundle.h</a></td><td class="desc"></td></tr>
-<tr id="row_0_0_0_2_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="celix__bundle__activator_8h_source.html"><span class="icondoc"></span></a><a class="el" href="celix__bundle__activator_8h.html" target="_self">celix_bundle_activator.h</a></td><td class="desc"></td></tr>
-<tr id="row_0_0_0_3_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="celix__bundle__context_8h_source.html"><span class="icondoc"></span></a><a class="el" href="celix__bundle__context_8h.html" target="_self">celix_bundle_context.h</a></td><td class="desc"></td></tr>
-<tr id="row_0_0_0_4_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="celix__dm__component_8h_source.html"><span class="icondoc"></span></a><a class="el" href="celix__dm__component_8h.html" target="_self">celix_dm_component.h</a></td><td class="desc"></td></tr>
-<tr id="row_0_0_0_5_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="celix__dm__info_8h_source.html"><span class="icondoc"></span></a><a class="el" href="celix__dm__info_8h.html" target="_self">celix_dm_info.h</a></td><td class="desc"></td></tr>
-<tr id="row_0_0_0_6_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="celix__dm__service__dependency_8h_source.html"><span class="icondoc"></span></a><a class="el" href="celix__dm__service__dependency_8h.html" target="_self">celix_dm_service_dependency.h</a></td><td class="desc"></td></tr>
-<tr id="row_0_0_0_7_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="celix__framework_8h_source.html"><span class="icondoc"></span></a><a class="el" href="celix__framework_8h.html" target="_self">celix_framework.h</a></td><td class="desc"></td></tr>
-</table>
-</div><!-- directory -->
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.18
-</small></address>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/folderclosed.png b/static/docs/2.2.1/html/folderclosed.png
deleted file mode 100755
index bb8ab35..0000000
--- a/static/docs/2.2.1/html/folderclosed.png
+++ /dev/null
Binary files differ
diff --git a/static/docs/2.2.1/html/folderopen.png b/static/docs/2.2.1/html/folderopen.png
deleted file mode 100755
index d6c7f67..0000000
--- a/static/docs/2.2.1/html/folderopen.png
+++ /dev/null
Binary files differ
diff --git a/static/docs/2.2.1/html/functions.html b/static/docs/2.2.1/html/functions.html
deleted file mode 100755
index 59f0770..0000000
--- a/static/docs/2.2.1/html/functions.html
+++ /dev/null
@@ -1,242 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>Celix: Class Members</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/searchdata.js"></script>
-<script type="text/javascript" src="search/search.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">Celix
-   &#160;<span id="projectnumber">2.2.1</span>
-   </div>
-   <div id="projectbrief">An implementation of the OSGi specification adapted to C and C++</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.18 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
-     onmouseover="return searchBox.OnSearchSelectShow()"
-     onmouseout="return searchBox.OnSearchSelectHide()"
-     onkeydown="return searchBox.OnSearchSelectKey(event)">
-</div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="contents">
-<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
-
-<h3><a id="index_a"></a>- a -</h3><ul>
-<li>active
-: <a class="el" href="structcelix__dm__component__info__struct.html#a293333dd64e557ab4b3d80c44d6d2499">celix_dm_component_info_struct</a>
-</li>
-<li>add
-: <a class="el" href="structcelix__dm__service__dependency__callback__options.html#a9663db4ef079c6300f95dadfe2c03813">celix_dm_service_dependency_callback_options</a>
-, <a class="el" href="structcelix__service__tracking__options.html#afe7fa7d7fce1c581dff6e7986e958815">celix_service_tracking_options</a>
-</li>
-<li>addWithOwner
-: <a class="el" href="structcelix__service__tracking__options.html#a787fd0f4f6719fefea2ae70fe6a1a5e6">celix_service_tracking_options</a>
-</li>
-<li>addWithProperties
-: <a class="el" href="structcelix__service__tracking__options.html#a4f80c99b050b1e49663cab329848364c">celix_service_tracking_options</a>
-</li>
-<li>addWithProps
-: <a class="el" href="structcelix__dm__service__dependency__callback__options.html#a5cf7a8e9026d08803798c70cb6a30330">celix_dm_service_dependency_callback_options</a>
-</li>
-<li>available
-: <a class="el" href="structcelix__dm__service__dependency__info__struct.html#a77659b20ca3bcc2b9282f4644bdcbe66">celix_dm_service_dependency_info_struct</a>
-</li>
-</ul>
-
-
-<h3><a id="index_b"></a>- b -</h3><ul>
-<li>bndId
-: <a class="el" href="structcelix__dm__dependency__manager__info__struct.html#ac51721859e70f844e4c23873aec85dfb">celix_dm_dependency_manager_info_struct</a>
-</li>
-<li>bundleId
-: <a class="el" href="structcelix__service__tracker__info.html#a6978e4b5f2fcc2d42a42f0e7ed3bb7c8">celix_service_tracker_info</a>
-</li>
-</ul>
-
-
-<h3><a id="index_c"></a>- c -</h3><ul>
-<li>components
-: <a class="el" href="structcelix__dm__dependency__manager__info__struct.html#a3d4be4557e6b124bd6b2c586fddfb75b">celix_dm_dependency_manager_info_struct</a>
-</li>
-<li>count
-: <a class="el" href="structcelix__dm__service__dependency__info__struct.html#ad9284f87c8033a14e5ba5de8118b7f09">celix_dm_service_dependency_info_struct</a>
-</li>
-</ul>
-
-
-<h3><a id="index_d"></a>- d -</h3><ul>
-<li>dependency_list
-: <a class="el" href="structcelix__dm__component__info__struct.html#abb385ead04139565ed13ed34841d1bda">celix_dm_component_info_struct</a>
-</li>
-</ul>
-
-
-<h3><a id="index_f"></a>- f -</h3><ul>
-<li>filter
-: <a class="el" href="structcelix__dm__service__dependency__info__struct.html#ac06a272ddf7c02e335be784082ba5e9f">celix_dm_service_dependency_info_struct</a>
-, <a class="el" href="structcelix__service__tracker__info.html#a3cd52ce46875995a973fb6b65967d7e4">celix_service_tracker_info</a>
-</li>
-</ul>
-
-
-<h3><a id="index_i"></a>- i -</h3><ul>
-<li>id
-: <a class="el" href="structcelix__dm__component__info__struct.html#a08281c5b4f78ba0d025b37b18c3201b5">celix_dm_component_info_struct</a>
-</li>
-<li>interfaces
-: <a class="el" href="structcelix__dm__component__info__struct.html#abbbe72fb049ad5ebb5941421929ae51a">celix_dm_component_info_struct</a>
-</li>
-</ul>
-
-
-<h3><a id="index_n"></a>- n -</h3><ul>
-<li>name
-: <a class="el" href="structcelix__dm__component__info__struct.html#aad1da907cd6f4a75f85c8321b1f6ce7a">celix_dm_component_info_struct</a>
-, <a class="el" href="structcelix__dm__interface__info__struct.html#ae2306753d7867ac9dc13d0d1b00f60be">celix_dm_interface_info_struct</a>
-</li>
-</ul>
-
-
-<h3><a id="index_o"></a>- o -</h3><ul>
-<li>onBundleEvent
-: <a class="el" href="structcelix__bundle__tracker__options.html#aae47b1896e9b058f9a43d26246241398">celix_bundle_tracker_options</a>
-</li>
-<li>onStarted
-: <a class="el" href="structcelix__bundle__tracker__options.html#a044b58b6aa64edfd3f49921fdf6756bb">celix_bundle_tracker_options</a>
-</li>
-<li>onStopped
-: <a class="el" href="structcelix__bundle__tracker__options.html#aeac272edbc00cb62f7071df0699dd492">celix_bundle_tracker_options</a>
-</li>
-<li>OPTS_INIT
-: <a class="el" href="structcelix__bundle__tracker__options.html#a80ebdcbb840fa97d81e1250fba2d20af">celix_bundle_tracker_options</a>
-, <a class="el" href="structcelix__service__filter__options.html#ac15f30b81e60826290a29fb12da6684a">celix_service_filter_options</a>
-, <a class="el" href="structcelix__service__registration__options.html#af9b1a622c06a3053ed3917649241fc23">celix_service_registration_options</a>
-, <a class="el" href="structcelix__service__tracking__options.html#a2fcaf1b7274379695cc9a4bb1c719d86">celix_service_tracking_options</a>
-, <a class="el" href="structcelix__service__use__options.html#a31a9834b87a5c2c3ed6b8532cd85c653">celix_service_use_options</a>
-</li>
-</ul>
-
-
-<h3><a id="index_p"></a>- p -</h3><ul>
-<li>properties
-: <a class="el" href="structcelix__dm__interface__info__struct.html#a6fb90a86fdaa6aefde5e598f5ca85e2c">celix_dm_interface_info_struct</a>
-</li>
-</ul>
-
-
-<h3><a id="index_r"></a>- r -</h3><ul>
-<li>remove
-: <a class="el" href="structcelix__dm__service__dependency__callback__options.html#a10fe45460fc65e1590a58477f515424b">celix_dm_service_dependency_callback_options</a>
-, <a class="el" href="structcelix__service__tracking__options.html#a8445caaae53d71a47c0289d2e3e5f882">celix_service_tracking_options</a>
-</li>
-<li>removeWithOwner
-: <a class="el" href="structcelix__service__tracking__options.html#acf6dbcde52efbed145933e8a28f3f2e1">celix_service_tracking_options</a>
-</li>
-<li>removeWithProperties
-: <a class="el" href="structcelix__service__tracking__options.html#af75c423757dcd16bf90d57a5726ac98a">celix_service_tracking_options</a>
-</li>
-<li>removeWithProps
-: <a class="el" href="structcelix__dm__service__dependency__callback__options.html#a54ee61c8ab040dc87de22588013316fd">celix_dm_service_dependency_callback_options</a>
-</li>
-<li>required
-: <a class="el" href="structcelix__dm__service__dependency__info__struct.html#a8ad066c5fa5d75e9fb82add72cbfc705">celix_dm_service_dependency_info_struct</a>
-</li>
-</ul>
-
-
-<h3><a id="index_s"></a>- s -</h3><ul>
-<li>serviceLanguage
-: <a class="el" href="structcelix__service__tracker__info.html#a5baca60295d208fe0581a564c3627f65">celix_service_tracker_info</a>
-</li>
-<li>serviceName
-: <a class="el" href="structcelix__service__tracker__info.html#a5f695cf6d8cd69e0c419298ded657546">celix_service_tracker_info</a>
-</li>
-<li>set
-: <a class="el" href="structcelix__dm__service__dependency__callback__options.html#a84e8cecdb9dd19f072d1b9c28fa95c8b">celix_dm_service_dependency_callback_options</a>
-, <a class="el" href="structcelix__service__tracking__options.html#aa9e8b9cae7ea59ddb796a6bc904f57da">celix_service_tracking_options</a>
-</li>
-<li>setWithOwner
-: <a class="el" href="structcelix__service__tracking__options.html#a12a988b8f1f3bd3a2e61c65d82f14d59">celix_service_tracking_options</a>
-</li>
-<li>setWithProperties
-: <a class="el" href="structcelix__service__tracking__options.html#a256f8db1eecb89a8b71e4ef03ab11172">celix_service_tracking_options</a>
-</li>
-<li>setWithProps
-: <a class="el" href="structcelix__dm__service__dependency__callback__options.html#a286bb094f7e4b4a9066e9b235aa8ade9">celix_dm_service_dependency_callback_options</a>
-</li>
-<li>state
-: <a class="el" href="structcelix__dm__component__info__struct.html#a0c64e56c05452d29efc60ac8b75f7163">celix_dm_component_info_struct</a>
-</li>
-<li>swap
-: <a class="el" href="structcelix__dm__service__dependency__callback__options.html#a35b874e6fa5a6c3af03f09e6492e8b48">celix_dm_service_dependency_callback_options</a>
-</li>
-<li>swapWithProps
-: <a class="el" href="structcelix__dm__service__dependency__callback__options.html#a1e0bfcf2034cd6d69d954256d101598d">celix_dm_service_dependency_callback_options</a>
-</li>
-</ul>
-
-
-<h3><a id="index_u"></a>- u -</h3><ul>
-<li>use
-: <a class="el" href="structcelix__service__use__options.html#ac7efa464a614a3faf6970a4917c596a7">celix_service_use_options</a>
-</li>
-<li>useWithOwner
-: <a class="el" href="structcelix__service__use__options.html#a2ba3552bfc25500084bfaf2dbb0f46c5">celix_service_use_options</a>
-</li>
-<li>useWithProperties
-: <a class="el" href="structcelix__service__use__options.html#a8192eb7aa470178f78ea8c09c4574867">celix_service_use_options</a>
-</li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.18
-</small></address>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/functions_vars.html b/static/docs/2.2.1/html/functions_vars.html
deleted file mode 100755
index a5395f8..0000000
--- a/static/docs/2.2.1/html/functions_vars.html
+++ /dev/null
@@ -1,242 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>Celix: Class Members - Variables</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/searchdata.js"></script>
-<script type="text/javascript" src="search/search.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">Celix
-   &#160;<span id="projectnumber">2.2.1</span>
-   </div>
-   <div id="projectbrief">An implementation of the OSGi specification adapted to C and C++</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.18 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
-     onmouseover="return searchBox.OnSearchSelectShow()"
-     onmouseout="return searchBox.OnSearchSelectHide()"
-     onkeydown="return searchBox.OnSearchSelectKey(event)">
-</div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="contents">
-&#160;
-
-<h3><a id="index_a"></a>- a -</h3><ul>
-<li>active
-: <a class="el" href="structcelix__dm__component__info__struct.html#a293333dd64e557ab4b3d80c44d6d2499">celix_dm_component_info_struct</a>
-</li>
-<li>add
-: <a class="el" href="structcelix__dm__service__dependency__callback__options.html#a9663db4ef079c6300f95dadfe2c03813">celix_dm_service_dependency_callback_options</a>
-, <a class="el" href="structcelix__service__tracking__options.html#afe7fa7d7fce1c581dff6e7986e958815">celix_service_tracking_options</a>
-</li>
-<li>addWithOwner
-: <a class="el" href="structcelix__service__tracking__options.html#a787fd0f4f6719fefea2ae70fe6a1a5e6">celix_service_tracking_options</a>
-</li>
-<li>addWithProperties
-: <a class="el" href="structcelix__service__tracking__options.html#a4f80c99b050b1e49663cab329848364c">celix_service_tracking_options</a>
-</li>
-<li>addWithProps
-: <a class="el" href="structcelix__dm__service__dependency__callback__options.html#a5cf7a8e9026d08803798c70cb6a30330">celix_dm_service_dependency_callback_options</a>
-</li>
-<li>available
-: <a class="el" href="structcelix__dm__service__dependency__info__struct.html#a77659b20ca3bcc2b9282f4644bdcbe66">celix_dm_service_dependency_info_struct</a>
-</li>
-</ul>
-
-
-<h3><a id="index_b"></a>- b -</h3><ul>
-<li>bndId
-: <a class="el" href="structcelix__dm__dependency__manager__info__struct.html#ac51721859e70f844e4c23873aec85dfb">celix_dm_dependency_manager_info_struct</a>
-</li>
-<li>bundleId
-: <a class="el" href="structcelix__service__tracker__info.html#a6978e4b5f2fcc2d42a42f0e7ed3bb7c8">celix_service_tracker_info</a>
-</li>
-</ul>
-
-
-<h3><a id="index_c"></a>- c -</h3><ul>
-<li>components
-: <a class="el" href="structcelix__dm__dependency__manager__info__struct.html#a3d4be4557e6b124bd6b2c586fddfb75b">celix_dm_dependency_manager_info_struct</a>
-</li>
-<li>count
-: <a class="el" href="structcelix__dm__service__dependency__info__struct.html#ad9284f87c8033a14e5ba5de8118b7f09">celix_dm_service_dependency_info_struct</a>
-</li>
-</ul>
-
-
-<h3><a id="index_d"></a>- d -</h3><ul>
-<li>dependency_list
-: <a class="el" href="structcelix__dm__component__info__struct.html#abb385ead04139565ed13ed34841d1bda">celix_dm_component_info_struct</a>
-</li>
-</ul>
-
-
-<h3><a id="index_f"></a>- f -</h3><ul>
-<li>filter
-: <a class="el" href="structcelix__dm__service__dependency__info__struct.html#ac06a272ddf7c02e335be784082ba5e9f">celix_dm_service_dependency_info_struct</a>
-, <a class="el" href="structcelix__service__tracker__info.html#a3cd52ce46875995a973fb6b65967d7e4">celix_service_tracker_info</a>
-</li>
-</ul>
-
-
-<h3><a id="index_i"></a>- i -</h3><ul>
-<li>id
-: <a class="el" href="structcelix__dm__component__info__struct.html#a08281c5b4f78ba0d025b37b18c3201b5">celix_dm_component_info_struct</a>
-</li>
-<li>interfaces
-: <a class="el" href="structcelix__dm__component__info__struct.html#abbbe72fb049ad5ebb5941421929ae51a">celix_dm_component_info_struct</a>
-</li>
-</ul>
-
-
-<h3><a id="index_n"></a>- n -</h3><ul>
-<li>name
-: <a class="el" href="structcelix__dm__component__info__struct.html#aad1da907cd6f4a75f85c8321b1f6ce7a">celix_dm_component_info_struct</a>
-, <a class="el" href="structcelix__dm__interface__info__struct.html#ae2306753d7867ac9dc13d0d1b00f60be">celix_dm_interface_info_struct</a>
-</li>
-</ul>
-
-
-<h3><a id="index_o"></a>- o -</h3><ul>
-<li>onBundleEvent
-: <a class="el" href="structcelix__bundle__tracker__options.html#aae47b1896e9b058f9a43d26246241398">celix_bundle_tracker_options</a>
-</li>
-<li>onStarted
-: <a class="el" href="structcelix__bundle__tracker__options.html#a044b58b6aa64edfd3f49921fdf6756bb">celix_bundle_tracker_options</a>
-</li>
-<li>onStopped
-: <a class="el" href="structcelix__bundle__tracker__options.html#aeac272edbc00cb62f7071df0699dd492">celix_bundle_tracker_options</a>
-</li>
-<li>OPTS_INIT
-: <a class="el" href="structcelix__bundle__tracker__options.html#a80ebdcbb840fa97d81e1250fba2d20af">celix_bundle_tracker_options</a>
-, <a class="el" href="structcelix__service__filter__options.html#ac15f30b81e60826290a29fb12da6684a">celix_service_filter_options</a>
-, <a class="el" href="structcelix__service__registration__options.html#af9b1a622c06a3053ed3917649241fc23">celix_service_registration_options</a>
-, <a class="el" href="structcelix__service__tracking__options.html#a2fcaf1b7274379695cc9a4bb1c719d86">celix_service_tracking_options</a>
-, <a class="el" href="structcelix__service__use__options.html#a31a9834b87a5c2c3ed6b8532cd85c653">celix_service_use_options</a>
-</li>
-</ul>
-
-
-<h3><a id="index_p"></a>- p -</h3><ul>
-<li>properties
-: <a class="el" href="structcelix__dm__interface__info__struct.html#a6fb90a86fdaa6aefde5e598f5ca85e2c">celix_dm_interface_info_struct</a>
-</li>
-</ul>
-
-
-<h3><a id="index_r"></a>- r -</h3><ul>
-<li>remove
-: <a class="el" href="structcelix__dm__service__dependency__callback__options.html#a10fe45460fc65e1590a58477f515424b">celix_dm_service_dependency_callback_options</a>
-, <a class="el" href="structcelix__service__tracking__options.html#a8445caaae53d71a47c0289d2e3e5f882">celix_service_tracking_options</a>
-</li>
-<li>removeWithOwner
-: <a class="el" href="structcelix__service__tracking__options.html#acf6dbcde52efbed145933e8a28f3f2e1">celix_service_tracking_options</a>
-</li>
-<li>removeWithProperties
-: <a class="el" href="structcelix__service__tracking__options.html#af75c423757dcd16bf90d57a5726ac98a">celix_service_tracking_options</a>
-</li>
-<li>removeWithProps
-: <a class="el" href="structcelix__dm__service__dependency__callback__options.html#a54ee61c8ab040dc87de22588013316fd">celix_dm_service_dependency_callback_options</a>
-</li>
-<li>required
-: <a class="el" href="structcelix__dm__service__dependency__info__struct.html#a8ad066c5fa5d75e9fb82add72cbfc705">celix_dm_service_dependency_info_struct</a>
-</li>
-</ul>
-
-
-<h3><a id="index_s"></a>- s -</h3><ul>
-<li>serviceLanguage
-: <a class="el" href="structcelix__service__tracker__info.html#a5baca60295d208fe0581a564c3627f65">celix_service_tracker_info</a>
-</li>
-<li>serviceName
-: <a class="el" href="structcelix__service__tracker__info.html#a5f695cf6d8cd69e0c419298ded657546">celix_service_tracker_info</a>
-</li>
-<li>set
-: <a class="el" href="structcelix__dm__service__dependency__callback__options.html#a84e8cecdb9dd19f072d1b9c28fa95c8b">celix_dm_service_dependency_callback_options</a>
-, <a class="el" href="structcelix__service__tracking__options.html#aa9e8b9cae7ea59ddb796a6bc904f57da">celix_service_tracking_options</a>
-</li>
-<li>setWithOwner
-: <a class="el" href="structcelix__service__tracking__options.html#a12a988b8f1f3bd3a2e61c65d82f14d59">celix_service_tracking_options</a>
-</li>
-<li>setWithProperties
-: <a class="el" href="structcelix__service__tracking__options.html#a256f8db1eecb89a8b71e4ef03ab11172">celix_service_tracking_options</a>
-</li>
-<li>setWithProps
-: <a class="el" href="structcelix__dm__service__dependency__callback__options.html#a286bb094f7e4b4a9066e9b235aa8ade9">celix_dm_service_dependency_callback_options</a>
-</li>
-<li>state
-: <a class="el" href="structcelix__dm__component__info__struct.html#a0c64e56c05452d29efc60ac8b75f7163">celix_dm_component_info_struct</a>
-</li>
-<li>swap
-: <a class="el" href="structcelix__dm__service__dependency__callback__options.html#a35b874e6fa5a6c3af03f09e6492e8b48">celix_dm_service_dependency_callback_options</a>
-</li>
-<li>swapWithProps
-: <a class="el" href="structcelix__dm__service__dependency__callback__options.html#a1e0bfcf2034cd6d69d954256d101598d">celix_dm_service_dependency_callback_options</a>
-</li>
-</ul>
-
-
-<h3><a id="index_u"></a>- u -</h3><ul>
-<li>use
-: <a class="el" href="structcelix__service__use__options.html#ac7efa464a614a3faf6970a4917c596a7">celix_service_use_options</a>
-</li>
-<li>useWithOwner
-: <a class="el" href="structcelix__service__use__options.html#a2ba3552bfc25500084bfaf2dbb0f46c5">celix_service_use_options</a>
-</li>
-<li>useWithProperties
-: <a class="el" href="structcelix__service__use__options.html#a8192eb7aa470178f78ea8c09c4574867">celix_service_use_options</a>
-</li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.18
-</small></address>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/globals.html b/static/docs/2.2.1/html/globals.html
deleted file mode 100755
index 6cf6273..0000000
--- a/static/docs/2.2.1/html/globals.html
+++ /dev/null
@@ -1,458 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>Celix: File Members</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/searchdata.js"></script>
-<script type="text/javascript" src="search/search.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">Celix
-   &#160;<span id="projectnumber">2.2.1</span>
-   </div>
-   <div id="projectbrief">An implementation of the OSGi specification adapted to C and C++</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.18 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
-     onmouseover="return searchBox.OnSearchSelectShow()"
-     onmouseout="return searchBox.OnSearchSelectHide()"
-     onkeydown="return searchBox.OnSearchSelectKey(event)">
-</div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="contents">
-<div class="textblock">Here is a list of all file members with links to the files they belong to:</div>
-
-<h3><a id="index_c"></a>- c -</h3><ul>
-<li>celix_bundle_getEntry()
-: <a class="el" href="celix__bundle_8h.html#a5cbe24596271fc91c79c8f42c8b92bc5">celix_bundle.h</a>
-</li>
-<li>celix_bundle_getGroup()
-: <a class="el" href="celix__bundle_8h.html#a5abd44b1259599d08f2312760fb32170">celix_bundle.h</a>
-</li>
-<li>celix_bundle_getId()
-: <a class="el" href="celix__bundle_8h.html#a8a9b02c9438f05099ff2bde9fea8c3cd">celix_bundle.h</a>
-</li>
-<li>celix_bundle_getState()
-: <a class="el" href="celix__bundle_8h.html#a7106fcc7b06c0506dd7e1678ba024a35">celix_bundle.h</a>
-</li>
-<li>celix_bundle_getSymbolicName()
-: <a class="el" href="celix__bundle_8h.html#a391c2aa2fdf3c8d0c65fc07a07bb7545">celix_bundle.h</a>
-</li>
-<li>celix_bundle_tracking_options_t
-: <a class="el" href="celix__bundle__context_8h.html#a1b011b5fe49a718345698eeb359d0c3a">celix_bundle_context.h</a>
-</li>
-<li>celix_bundleActivator_create()
-: <a class="el" href="celix__bundle__activator_8h.html#a57025ac322aecc8acfac832748c780e6">celix_bundle_activator.h</a>
-</li>
-<li>celix_bundleActivator_destroy()
-: <a class="el" href="celix__bundle__activator_8h.html#a8d7cd41a721060d28c6ce8d94f9f0ca9">celix_bundle_activator.h</a>
-</li>
-<li>celix_bundleActivator_start()
-: <a class="el" href="celix__bundle__activator_8h.html#a8ac12a9b8d321ee1c1feee5bf047b666">celix_bundle_activator.h</a>
-</li>
-<li>celix_bundleActivator_stop()
-: <a class="el" href="celix__bundle__activator_8h.html#ae650439680848e3e3f7fc71b9e4dd213">celix_bundle_activator.h</a>
-</li>
-<li>celix_bundleContext_findService()
-: <a class="el" href="celix__bundle__context_8h.html#ac8322b5aa4adf9dcd8c288ce72a05414">celix_bundle_context.h</a>
-</li>
-<li>celix_bundleContext_findServices()
-: <a class="el" href="celix__bundle__context_8h.html#a96a901f0597f9d2accf073153d90344c">celix_bundle_context.h</a>
-</li>
-<li>celix_bundleContext_findServicesWithOptions()
-: <a class="el" href="celix__bundle__context_8h.html#a41c34f8165addcbd0d65b4a0c23345d0">celix_bundle_context.h</a>
-</li>
-<li>celix_bundleContext_findServiceWithOptions()
-: <a class="el" href="celix__bundle__context_8h.html#a8cfbbb7e17cb4a825a525c547f72b4b0">celix_bundle_context.h</a>
-</li>
-<li>celix_bundleContext_getBundle()
-: <a class="el" href="celix__bundle__context_8h.html#a3f7f55d1587f421f27518574a525ff63">celix_bundle_context.h</a>
-</li>
-<li>celix_bundleContext_getDependencyManager()
-: <a class="el" href="celix__bundle__context_8h.html#ac36566dcc477bb2c123e5124527090c1">celix_bundle_context.h</a>
-</li>
-<li>celix_bundleContext_getProperty()
-: <a class="el" href="celix__bundle__context_8h.html#aa121100c5f5d03c0ccdda9c87286f7db">celix_bundle_context.h</a>
-</li>
-<li>celix_bundleContext_getPropertyAsBool()
-: <a class="el" href="celix__bundle__context_8h.html#a41e6642ba1a739b5768911fa41e5d170">celix_bundle_context.h</a>
-</li>
-<li>celix_bundleContext_getPropertyAsDouble()
-: <a class="el" href="celix__bundle__context_8h.html#a92be7dd7985a890c4b92bcb8497e8b9f">celix_bundle_context.h</a>
-</li>
-<li>celix_bundleContext_getPropertyAsLong()
-: <a class="el" href="celix__bundle__context_8h.html#a0ea27b2a81018583a464a10932cfae62">celix_bundle_context.h</a>
-</li>
-<li>celix_bundleContext_installBundle()
-: <a class="el" href="celix__bundle__context_8h.html#a727ee2600c19ce2fd42b3b80b695c7f6">celix_bundle_context.h</a>
-</li>
-<li>celix_bundleContext_isBundleInstalled()
-: <a class="el" href="celix__bundle__context_8h.html#ac7151f08ded1d7571867a44abe9f3531">celix_bundle_context.h</a>
-</li>
-<li>celix_bundleContext_listBundles()
-: <a class="el" href="celix__bundle__context_8h.html#afde9ed40231b5c3bbba19559e68e77f6">celix_bundle_context.h</a>
-</li>
-<li>celix_bundleContext_registerService()
-: <a class="el" href="celix__bundle__context_8h.html#a5bc54fd14871cc88ed887c8cea8f7b78">celix_bundle_context.h</a>
-</li>
-<li>celix_bundleContext_registerServiceFactory()
-: <a class="el" href="celix__bundle__context_8h.html#a3caa917285feaad580b61d4c0c8430a9">celix_bundle_context.h</a>
-</li>
-<li>celix_bundleContext_registerServiceWithOptions()
-: <a class="el" href="celix__bundle__context_8h.html#abcde0edf5b4969bdd67831cff3db0a43">celix_bundle_context.h</a>
-</li>
-<li>celix_bundleContext_startBundle()
-: <a class="el" href="celix__bundle__context_8h.html#a8df4bfbc27c99736c0209ef130cff98f">celix_bundle_context.h</a>
-</li>
-<li>celix_bundleContext_stopBundle()
-: <a class="el" href="celix__bundle__context_8h.html#ad6e1553f9507d04c7a0ad91d067d479b">celix_bundle_context.h</a>
-</li>
-<li>celix_bundleContext_stopTracker()
-: <a class="el" href="celix__bundle__context_8h.html#a3b4906a9e6fb34fe3ca5118539a81fc7">celix_bundle_context.h</a>
-</li>
-<li>celix_bundleContext_trackBundles()
-: <a class="el" href="celix__bundle__context_8h.html#a3daf88ae43bb01e104f506c3a2dc8351">celix_bundle_context.h</a>
-</li>
-<li>celix_bundleContext_trackBundlesWithOptions()
-: <a class="el" href="celix__bundle__context_8h.html#aa603acb136351b4135ce6a8c0b1fda71">celix_bundle_context.h</a>
-</li>
-<li>celix_bundleContext_trackService()
-: <a class="el" href="celix__bundle__context_8h.html#a612409acf5453dbc370d93b784153d51">celix_bundle_context.h</a>
-</li>
-<li>celix_bundleContext_trackServices()
-: <a class="el" href="celix__bundle__context_8h.html#a43e3bfd38ef956ffe861065e698a72e4">celix_bundle_context.h</a>
-</li>
-<li>celix_bundleContext_trackServicesWithOptions()
-: <a class="el" href="celix__bundle__context_8h.html#a27980e1631d4575cc45c6c6ba38c6f71">celix_bundle_context.h</a>
-</li>
-<li>celix_bundleContext_trackServiceTrackers()
-: <a class="el" href="celix__bundle__context_8h.html#a80f61dd38b9da8447cd4f931779eaf16">celix_bundle_context.h</a>
-</li>
-<li>celix_bundleContext_uninstallBundle()
-: <a class="el" href="celix__bundle__context_8h.html#a098adf1e9f65deb166110008bd4314dd">celix_bundle_context.h</a>
-</li>
-<li>celix_bundleContext_unregisterService()
-: <a class="el" href="celix__bundle__context_8h.html#a1ebd82cb3d61aab769956d856293b9b9">celix_bundle_context.h</a>
-</li>
-<li>celix_bundleContext_useBundle()
-: <a class="el" href="celix__bundle__context_8h.html#abb3cedf5ffa7a326cef2af64a1094635">celix_bundle_context.h</a>
-</li>
-<li>celix_bundleContext_useBundles()
-: <a class="el" href="celix__bundle__context_8h.html#a03a6d1c49c91c212ad7be115e1035840">celix_bundle_context.h</a>
-</li>
-<li>celix_bundleContext_useService()
-: <a class="el" href="celix__bundle__context_8h.html#ac36cdb8a06bb34f9371d7bb32953c69e">celix_bundle_context.h</a>
-</li>
-<li>celix_bundleContext_useServices()
-: <a class="el" href="celix__bundle__context_8h.html#a39270507a3766afbfcc9420c7270d262">celix_bundle_context.h</a>
-</li>
-<li>celix_bundleContext_useServicesWithOptions()
-: <a class="el" href="celix__bundle__context_8h.html#ad1512520baedecad54a7bc307e0a6c7b">celix_bundle_context.h</a>
-</li>
-<li>celix_bundleContext_useServiceWithId()
-: <a class="el" href="celix__bundle__context_8h.html#aec6e03faece0f8247de19d8c1527406d">celix_bundle_context.h</a>
-</li>
-<li>celix_bundleContext_useServiceWithOptions()
-: <a class="el" href="celix__bundle__context_8h.html#a1e8a78de5f799d303231385b51085055">celix_bundle_context.h</a>
-</li>
-<li>celix_dependency_manager_info_t
-: <a class="el" href="celix__dm__info_8h.html#af06092e6852ba40f4241b4e539265e64">celix_dm_info.h</a>
-</li>
-<li>celix_dm_cmp_lifecycle_fpt
-: <a class="el" href="celix__dm__component_8h.html#a9c73a72049f39d42d66b6d9c60d185dc">celix_dm_component.h</a>
-</li>
-<li>celix_dm_component_info_t
-: <a class="el" href="celix__dm__info_8h.html#a57ffe4e9f51e746fdf4ae50151150b16">celix_dm_info.h</a>
-</li>
-<li>CELIX_DM_COMPONENT_MAX_ID_LENGTH
-: <a class="el" href="celix__dm__component_8h.html#aa19dcff16825fa2e91656ff136d877cf">celix_dm_component.h</a>
-</li>
-<li>CELIX_DM_COMPONENT_MAX_NAME_LENGTH
-: <a class="el" href="celix__dm__component_8h.html#af8861849eb5e4057def1bb12a5111d00">celix_dm_component.h</a>
-</li>
-<li>celix_dm_component_state_enum
-: <a class="el" href="celix__dm__component_8h.html#ab8b6c8d35fe5b976b8f58a6816e6c4e4">celix_dm_component.h</a>
-</li>
-<li>celix_dm_component_state_t
-: <a class="el" href="celix__dm__component_8h.html#afd49054c559adbeb9627fa3d45d6c02a">celix_dm_component.h</a>
-</li>
-<li>celix_dm_interface_info_t
-: <a class="el" href="celix__dm__info_8h.html#a635d8bc54edda5e7e70f7b27943196b6">celix_dm_info.h</a>
-</li>
-<li>celix_dm_service_dependency_callback_options_t
-: <a class="el" href="celix__dm__service__dependency_8h.html#ace7f03a4e7746a8ca8218afd172752f8">celix_dm_service_dependency.h</a>
-</li>
-<li>celix_dm_service_dependency_info_t
-: <a class="el" href="celix__dm__info_8h.html#a7fd4e90372051b1549c588095fb24fd4">celix_dm_info.h</a>
-</li>
-<li>celix_dm_service_dependency_strategy_enum
-: <a class="el" href="celix__dm__service__dependency_8h.html#a80a698d57b244ab54ffad631a41ae88c">celix_dm_service_dependency.h</a>
-</li>
-<li>celix_dm_service_dependency_strategy_t
-: <a class="el" href="celix__dm__service__dependency_8h.html#a00447f0e837918fcf6e39698ef375f46">celix_dm_service_dependency.h</a>
-</li>
-<li>celix_dm_service_swap_fp
-: <a class="el" href="celix__dm__service__dependency_8h.html#a8a77266cc94a0f019b29d75a8e54995d">celix_dm_service_dependency.h</a>
-</li>
-<li>celix_dm_service_swap_with_props_fp
-: <a class="el" href="celix__dm__service__dependency_8h.html#a6b4b49e1cbd6865c5dc14e94086f629f">celix_dm_service_dependency.h</a>
-</li>
-<li>celix_dm_service_update_fp
-: <a class="el" href="celix__dm__service__dependency_8h.html#a3aab7f5d65c74eb819047e5ec1f4c05f">celix_dm_service_dependency.h</a>
-</li>
-<li>celix_dm_service_update_with_props_fp
-: <a class="el" href="celix__dm__service__dependency_8h.html#afb8ee50fcfc77f274578d85a70bb2b94">celix_dm_service_dependency.h</a>
-</li>
-<li>celix_dmComponent_addInterface()
-: <a class="el" href="celix__dm__component_8h.html#aafd2f2eff931784f70eb2a37e943446a">celix_dm_component.h</a>
-</li>
-<li>celix_dmComponent_addServiceDependency()
-: <a class="el" href="celix__dm__component_8h.html#ad7d4a85042adba432bd8d398d9c106b8">celix_dm_component.h</a>
-</li>
-<li>celix_dmComponent_create()
-: <a class="el" href="celix__dm__component_8h.html#adf75af7d75d2c1f7e53d78f23f97d40c">celix_dm_component.h</a>
-</li>
-<li>celix_dmComponent_currentState()
-: <a class="el" href="celix__dm__component_8h.html#af98630b8f8980c906d5aefc5f8a82c99">celix_dm_component.h</a>
-</li>
-<li>celix_dmComponent_destroy()
-: <a class="el" href="celix__dm__component_8h.html#a56a8c5019a43eb96d62fd9e98cb56ba8">celix_dm_component.h</a>
-</li>
-<li>celix_dmComponent_destroyComponentInfo()
-: <a class="el" href="celix__dm__component_8h.html#af62df6623e978a1cc62b3ca8ab5863c3">celix_dm_component.h</a>
-</li>
-<li>celix_dmComponent_getBundleContext()
-: <a class="el" href="celix__dm__component_8h.html#a99be995e9e94514fc4f6782dd48456ba">celix_dm_component.h</a>
-</li>
-<li>celix_dmComponent_getComponentInfo()
-: <a class="el" href="celix__dm__component_8h.html#a3345d3bfa11070069d745131668d02ae">celix_dm_component.h</a>
-</li>
-<li>celix_dmComponent_getImplementation()
-: <a class="el" href="celix__dm__component_8h.html#a5647f75ea3a3c3755940ee42f51320a8">celix_dm_component.h</a>
-</li>
-<li>celix_dmComponent_getInterfaces()
-: <a class="el" href="celix__dm__component_8h.html#ae0312e00f51f85d8e48b18020964e21f">celix_dm_component.h</a>
-</li>
-<li>celix_dmComponent_getName()
-: <a class="el" href="celix__dm__component_8h.html#a30de51befa422dc65ac89ae3d9b8319f">celix_dm_component.h</a>
-</li>
-<li>celix_dmComponent_isActive()
-: <a class="el" href="celix__dm__component_8h.html#a7bbf1a0da294be7ba9ae8272f1b938d7">celix_dm_component.h</a>
-</li>
-<li>celix_dmComponent_removeInterface()
-: <a class="el" href="celix__dm__component_8h.html#a3e4a6e8e87cc8d3b3655eaaa06ad261e">celix_dm_component.h</a>
-</li>
-<li>celix_dmComponent_removeServiceDependency()
-: <a class="el" href="celix__dm__component_8h.html#a0ce2c610cbe3a329ea6561eb5cda0d8d">celix_dm_component.h</a>
-</li>
-<li>CELIX_DMCOMPONENT_SETCALLBACKS
-: <a class="el" href="celix__dm__component_8h.html#aad1f80b04be28b8e7bf495113c2fe452">celix_dm_component.h</a>
-</li>
-<li>celix_dmComponent_setCallbacks()
-: <a class="el" href="celix__dm__component_8h.html#a017e996f6b1db5e902bf3a9cc043634f">celix_dm_component.h</a>
-</li>
-<li>celix_dmComponent_setCLanguageProperty()
-: <a class="el" href="celix__dm__component_8h.html#ab8bd7a13007bda2619c1764886eabeab">celix_dm_component.h</a>
-</li>
-<li>celix_dmComponent_setImplementation()
-: <a class="el" href="celix__dm__component_8h.html#a45a01df6ed75d8530563d52f58a0b165">celix_dm_component.h</a>
-</li>
-<li>celix_dmServiceDependency_create()
-: <a class="el" href="celix__dm__service__dependency_8h.html#a588b147bec75a501fac3b35076fc98a3">celix_dm_service_dependency.h</a>
-</li>
-<li>celix_dmServiceDependency_createInfo()
-: <a class="el" href="celix__dm__service__dependency_8h.html#a0b84d9164563664da40491151f7d7131">celix_dm_service_dependency.h</a>
-</li>
-<li>celix_dmServiceDependency_destroy()
-: <a class="el" href="celix__dm__service__dependency_8h.html#ac282334d66c3cfc4fda1b67245172979">celix_dm_service_dependency.h</a>
-</li>
-<li>celix_dmServiceDependency_destroyInfo()
-: <a class="el" href="celix__dm__service__dependency_8h.html#acb96da27c0087a05d885b0f55756de8a">celix_dm_service_dependency.h</a>
-</li>
-<li>celix_dmServiceDependency_getFilter()
-: <a class="el" href="celix__dm__service__dependency_8h.html#a487a41d56ea2bf1aa51cd7f7e83ff844">celix_dm_service_dependency.h</a>
-</li>
-<li>celix_dmServiceDependency_getStrategy()
-: <a class="el" href="celix__dm__service__dependency_8h.html#a8365396c6363ad98b66725243f97f8ea">celix_dm_service_dependency.h</a>
-</li>
-<li>celix_dmServiceDependency_setAddCLanguageFilter()
-: <a class="el" href="celix__dm__service__dependency_8h.html#a9aec79471c46aecc7412523fe839e549">celix_dm_service_dependency.h</a>
-</li>
-<li>celix_dmServiceDependency_setCallback()
-: <a class="el" href="celix__dm__service__dependency_8h.html#a1a731a456c8e617acfa4d81a6357959c">celix_dm_service_dependency.h</a>
-</li>
-<li>celix_dmServiceDependency_setCallbackHandle()
-: <a class="el" href="celix__dm__service__dependency_8h.html#aebe0669933d37f9fd1c3fdc873127d78">celix_dm_service_dependency.h</a>
-</li>
-<li>celix_dmServiceDependency_setCallbacksWithOptions()
-: <a class="el" href="celix__dm__service__dependency_8h.html#a31898ef1ad5f9695dc85a24202020ebe">celix_dm_service_dependency.h</a>
-</li>
-<li>celix_dmServiceDependency_setCallbackWithProperties()
-: <a class="el" href="celix__dm__service__dependency_8h.html#a9bdfec7b27301bd71dd4f45fcdd11568">celix_dm_service_dependency.h</a>
-</li>
-<li>celix_dmServiceDependency_setRequired()
-: <a class="el" href="celix__dm__service__dependency_8h.html#a0c33bcf502f8683bce3cf382c4bdc76a">celix_dm_service_dependency.h</a>
-</li>
-<li>celix_dmServiceDependency_setService()
-: <a class="el" href="celix__dm__service__dependency_8h.html#a2602a6526ef6cde42d606c9ed958cec7">celix_dm_service_dependency.h</a>
-</li>
-<li>celix_dmServiceDependency_setStrategy()
-: <a class="el" href="celix__dm__service__dependency_8h.html#a9d833904b765bee7073ec41828ea7d2e">celix_dm_service_dependency.h</a>
-</li>
-<li>CELIX_EMPTY_BUNDLE_TRACKING_OPTIONS
-: <a class="el" href="celix__bundle__context_8h.html#a3c68ea824e7268d26852785ea92c777c">celix_bundle_context.h</a>
-</li>
-<li>CELIX_EMPTY_DM_SERVICE_DEPENDENCY_CALLBACK_OPTIONS
-: <a class="el" href="celix__dm__service__dependency_8h.html#a1b153c6b38f75362450aad5b3ad729f7">celix_dm_service_dependency.h</a>
-</li>
-<li>CELIX_EMPTY_SERVICE_FILTER_OPTIONS
-: <a class="el" href="celix__bundle__context_8h.html#a7199f710ea1c193d361e8c151a92bc6a">celix_bundle_context.h</a>
-</li>
-<li>CELIX_EMPTY_SERVICE_REGISTRATION_OPTIONS
-: <a class="el" href="celix__bundle__context_8h.html#a6020a7ba8712efd0847fdf28e74eb69c">celix_bundle_context.h</a>
-</li>
-<li>CELIX_EMPTY_SERVICE_TRACKING_OPTIONS
-: <a class="el" href="celix__bundle__context_8h.html#ae86a28f8d19f6c1e2951172335e0e909">celix_bundle_context.h</a>
-</li>
-<li>CELIX_EMPTY_SERVICE_USE_OPTIONS
-: <a class="el" href="celix__bundle__context_8h.html#a6024cf4864950551fa9df01806a69865">celix_bundle_context.h</a>
-</li>
-<li>celix_framework_getFrameworkBundle()
-: <a class="el" href="celix__framework_8h.html#ae980ec9c8f83f8a3e65dc7da9d794f18">celix_framework.h</a>
-</li>
-<li>celix_framework_getFrameworkContext()
-: <a class="el" href="celix__framework_8h.html#aa2e913753f841b3b0b22c196b39d03b1">celix_framework.h</a>
-</li>
-<li>celix_framework_getUUID()
-: <a class="el" href="celix__framework_8h.html#a671ba53e13abea3d4eb328a66b62802f">celix_framework.h</a>
-</li>
-<li>celix_framework_useBundle()
-: <a class="el" href="celix__framework_8h.html#ab158bb807ea2171c5d20076cb457c8d1">celix_framework.h</a>
-</li>
-<li>celix_framework_useBundles()
-: <a class="el" href="celix__framework_8h.html#a192ba45dd2a7175fd4d19c70da59f9ab">celix_framework.h</a>
-</li>
-<li>CELIX_GEN_BUNDLE_ACTIVATOR
-: <a class="el" href="celix__bundle__activator_8h.html#a47b446e557ecaff78dafa19ba3e340c2">celix_bundle_activator.h</a>
-</li>
-<li>celix_service_filter_options_t
-: <a class="el" href="celix__bundle__context_8h.html#a7eab80d54386fb32b91dd414846c2d45">celix_bundle_context.h</a>
-</li>
-<li>celix_service_registration_options_t
-: <a class="el" href="celix__bundle__context_8h.html#aacaeb063a21a237ac515607d689eebb8">celix_bundle_context.h</a>
-</li>
-<li>celix_service_tracker_info_t
-: <a class="el" href="celix__bundle__context_8h.html#aea7e7fcd4022db2f9f4123dd3b7a794a">celix_bundle_context.h</a>
-</li>
-<li>celix_service_tracking_options_t
-: <a class="el" href="celix__bundle__context_8h.html#a5c017c82bf57881c04f8c6f545b25a75">celix_bundle_context.h</a>
-</li>
-<li>celix_service_use_options_t
-: <a class="el" href="celix__bundle__context_8h.html#ae2da28d23f5246c20c6b675b80e7d130">celix_bundle_context.h</a>
-</li>
-</ul>
-
-
-<h3><a id="index_d"></a>- d -</h3><ul>
-<li>DM_CMP_STATE_INACTIVE
-: <a class="el" href="celix__dm__component_8h.html#ab8b6c8d35fe5b976b8f58a6816e6c4e4aedd3ab4f7703955241fecb14df3fb59e">celix_dm_component.h</a>
-</li>
-<li>DM_CMP_STATE_INSTANTIATED_AND_WAITING_FOR_REQUIRED
-: <a class="el" href="celix__dm__component_8h.html#ab8b6c8d35fe5b976b8f58a6816e6c4e4ad948b8a0aa722ce528335632176dac3e">celix_dm_component.h</a>
-</li>
-<li>DM_CMP_STATE_TRACKING_OPTIONAL
-: <a class="el" href="celix__dm__component_8h.html#ab8b6c8d35fe5b976b8f58a6816e6c4e4a582ed79692df8863f9ae6b5663cf1a46">celix_dm_component.h</a>
-</li>
-<li>DM_CMP_STATE_WAITING_FOR_REQUIRED
-: <a class="el" href="celix__dm__component_8h.html#ab8b6c8d35fe5b976b8f58a6816e6c4e4a76d77f632cc37534055bb227446f5ffc">celix_dm_component.h</a>
-</li>
-<li>dm_component_info_pt
-: <a class="el" href="celix__dm__info_8h.html#a4325313bb7b98b6eded2212a6edd065a">celix_dm_info.h</a>
-</li>
-<li>dm_component_info_t
-: <a class="el" href="celix__dm__info_8h.html#a81bba27d8f869e77dd921c7cd8ac35d7">celix_dm_info.h</a>
-</li>
-<li>dm_dependency_manager_info_pt
-: <a class="el" href="celix__dm__info_8h.html#a230d51a712bc30bd2b52126e17f63738">celix_dm_info.h</a>
-</li>
-<li>dm_dependency_manager_info_t
-: <a class="el" href="celix__dm__info_8h.html#aeaa11da320e45fdeef41c441bff70f02">celix_dm_info.h</a>
-</li>
-<li>dm_interface_info_pt
-: <a class="el" href="celix__dm__info_8h.html#abb40885e5ab16c4701927d7095194ee2">celix_dm_info.h</a>
-</li>
-<li>dm_interface_info_t
-: <a class="el" href="celix__dm__info_8h.html#a3c8c9b3b3b6d6cb2853ce22f337ed7f0">celix_dm_info.h</a>
-</li>
-<li>dm_service_dependency_info_pt
-: <a class="el" href="celix__dm__info_8h.html#a0a06988849c18fd4848452086f36ed6e">celix_dm_info.h</a>
-</li>
-<li>dm_service_dependency_info_t
-: <a class="el" href="celix__dm__info_8h.html#a553833e914505261622b13563c8a045e">celix_dm_info.h</a>
-</li>
-<li>DM_SERVICE_DEPENDENCY_STRATEGY_LOCKING
-: <a class="el" href="celix__dm__service__dependency_8h.html#a80a698d57b244ab54ffad631a41ae88ca6c94c0c92189ea864b218b45d2526db1">celix_dm_service_dependency.h</a>
-</li>
-<li>DM_SERVICE_DEPENDENCY_STRATEGY_SUSPEND
-: <a class="el" href="celix__dm__service__dependency_8h.html#a80a698d57b244ab54ffad631a41ae88caf4c6748a0a1d0e04997c11847c737428">celix_dm_service_dependency.h</a>
-</li>
-</ul>
-
-
-<h3><a id="index_o"></a>- o -</h3><ul>
-<li>OPTS_INIT
-: <a class="el" href="celix__bundle__context_8h.html#a8ebbfbe80221fe8adc8c3afbdceb570f">celix_bundle_context.h</a>
-</li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.18
-</small></address>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/globals_defs.html b/static/docs/2.2.1/html/globals_defs.html
deleted file mode 100755
index 2fdd513..0000000
--- a/static/docs/2.2.1/html/globals_defs.html
+++ /dev/null
@@ -1,109 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>Celix: File Members</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/searchdata.js"></script>
-<script type="text/javascript" src="search/search.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">Celix
-   &#160;<span id="projectnumber">2.2.1</span>
-   </div>
-   <div id="projectbrief">An implementation of the OSGi specification adapted to C and C++</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.18 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
-     onmouseover="return searchBox.OnSearchSelectShow()"
-     onmouseout="return searchBox.OnSearchSelectHide()"
-     onkeydown="return searchBox.OnSearchSelectKey(event)">
-</div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="contents">
-&#160;<ul>
-<li>CELIX_DM_COMPONENT_MAX_ID_LENGTH
-: <a class="el" href="celix__dm__component_8h.html#aa19dcff16825fa2e91656ff136d877cf">celix_dm_component.h</a>
-</li>
-<li>CELIX_DM_COMPONENT_MAX_NAME_LENGTH
-: <a class="el" href="celix__dm__component_8h.html#af8861849eb5e4057def1bb12a5111d00">celix_dm_component.h</a>
-</li>
-<li>CELIX_DMCOMPONENT_SETCALLBACKS
-: <a class="el" href="celix__dm__component_8h.html#aad1f80b04be28b8e7bf495113c2fe452">celix_dm_component.h</a>
-</li>
-<li>CELIX_EMPTY_BUNDLE_TRACKING_OPTIONS
-: <a class="el" href="celix__bundle__context_8h.html#a3c68ea824e7268d26852785ea92c777c">celix_bundle_context.h</a>
-</li>
-<li>CELIX_EMPTY_DM_SERVICE_DEPENDENCY_CALLBACK_OPTIONS
-: <a class="el" href="celix__dm__service__dependency_8h.html#a1b153c6b38f75362450aad5b3ad729f7">celix_dm_service_dependency.h</a>
-</li>
-<li>CELIX_EMPTY_SERVICE_FILTER_OPTIONS
-: <a class="el" href="celix__bundle__context_8h.html#a7199f710ea1c193d361e8c151a92bc6a">celix_bundle_context.h</a>
-</li>
-<li>CELIX_EMPTY_SERVICE_REGISTRATION_OPTIONS
-: <a class="el" href="celix__bundle__context_8h.html#a6020a7ba8712efd0847fdf28e74eb69c">celix_bundle_context.h</a>
-</li>
-<li>CELIX_EMPTY_SERVICE_TRACKING_OPTIONS
-: <a class="el" href="celix__bundle__context_8h.html#ae86a28f8d19f6c1e2951172335e0e909">celix_bundle_context.h</a>
-</li>
-<li>CELIX_EMPTY_SERVICE_USE_OPTIONS
-: <a class="el" href="celix__bundle__context_8h.html#a6024cf4864950551fa9df01806a69865">celix_bundle_context.h</a>
-</li>
-<li>CELIX_GEN_BUNDLE_ACTIVATOR
-: <a class="el" href="celix__bundle__activator_8h.html#a47b446e557ecaff78dafa19ba3e340c2">celix_bundle_activator.h</a>
-</li>
-<li>OPTS_INIT
-: <a class="el" href="celix__bundle__context_8h.html#a8ebbfbe80221fe8adc8c3afbdceb570f">celix_bundle_context.h</a>
-</li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.18
-</small></address>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/globals_enum.html b/static/docs/2.2.1/html/globals_enum.html
deleted file mode 100755
index ae379ea..0000000
--- a/static/docs/2.2.1/html/globals_enum.html
+++ /dev/null
@@ -1,82 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>Celix: File Members</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/searchdata.js"></script>
-<script type="text/javascript" src="search/search.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">Celix
-   &#160;<span id="projectnumber">2.2.1</span>
-   </div>
-   <div id="projectbrief">An implementation of the OSGi specification adapted to C and C++</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.18 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
-     onmouseover="return searchBox.OnSearchSelectShow()"
-     onmouseout="return searchBox.OnSearchSelectHide()"
-     onkeydown="return searchBox.OnSearchSelectKey(event)">
-</div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="contents">
-&#160;<ul>
-<li>celix_dm_component_state_enum
-: <a class="el" href="celix__dm__component_8h.html#ab8b6c8d35fe5b976b8f58a6816e6c4e4">celix_dm_component.h</a>
-</li>
-<li>celix_dm_service_dependency_strategy_enum
-: <a class="el" href="celix__dm__service__dependency_8h.html#a80a698d57b244ab54ffad631a41ae88c">celix_dm_service_dependency.h</a>
-</li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.18
-</small></address>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/globals_eval.html b/static/docs/2.2.1/html/globals_eval.html
deleted file mode 100755
index 264fc0a..0000000
--- a/static/docs/2.2.1/html/globals_eval.html
+++ /dev/null
@@ -1,94 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>Celix: File Members</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/searchdata.js"></script>
-<script type="text/javascript" src="search/search.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">Celix
-   &#160;<span id="projectnumber">2.2.1</span>
-   </div>
-   <div id="projectbrief">An implementation of the OSGi specification adapted to C and C++</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.18 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
-     onmouseover="return searchBox.OnSearchSelectShow()"
-     onmouseout="return searchBox.OnSearchSelectHide()"
-     onkeydown="return searchBox.OnSearchSelectKey(event)">
-</div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="contents">
-&#160;<ul>
-<li>DM_CMP_STATE_INACTIVE
-: <a class="el" href="celix__dm__component_8h.html#ab8b6c8d35fe5b976b8f58a6816e6c4e4aedd3ab4f7703955241fecb14df3fb59e">celix_dm_component.h</a>
-</li>
-<li>DM_CMP_STATE_INSTANTIATED_AND_WAITING_FOR_REQUIRED
-: <a class="el" href="celix__dm__component_8h.html#ab8b6c8d35fe5b976b8f58a6816e6c4e4ad948b8a0aa722ce528335632176dac3e">celix_dm_component.h</a>
-</li>
-<li>DM_CMP_STATE_TRACKING_OPTIONAL
-: <a class="el" href="celix__dm__component_8h.html#ab8b6c8d35fe5b976b8f58a6816e6c4e4a582ed79692df8863f9ae6b5663cf1a46">celix_dm_component.h</a>
-</li>
-<li>DM_CMP_STATE_WAITING_FOR_REQUIRED
-: <a class="el" href="celix__dm__component_8h.html#ab8b6c8d35fe5b976b8f58a6816e6c4e4a76d77f632cc37534055bb227446f5ffc">celix_dm_component.h</a>
-</li>
-<li>DM_SERVICE_DEPENDENCY_STRATEGY_LOCKING
-: <a class="el" href="celix__dm__service__dependency_8h.html#a80a698d57b244ab54ffad631a41ae88ca6c94c0c92189ea864b218b45d2526db1">celix_dm_service_dependency.h</a>
-</li>
-<li>DM_SERVICE_DEPENDENCY_STRATEGY_SUSPEND
-: <a class="el" href="celix__dm__service__dependency_8h.html#a80a698d57b244ab54ffad631a41ae88caf4c6748a0a1d0e04997c11847c737428">celix_dm_service_dependency.h</a>
-</li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.18
-</small></address>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/globals_func.html b/static/docs/2.2.1/html/globals_func.html
deleted file mode 100755
index 00fb922..0000000
--- a/static/docs/2.2.1/html/globals_func.html
+++ /dev/null
@@ -1,315 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>Celix: File Members</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/searchdata.js"></script>
-<script type="text/javascript" src="search/search.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">Celix
-   &#160;<span id="projectnumber">2.2.1</span>
-   </div>
-   <div id="projectbrief">An implementation of the OSGi specification adapted to C and C++</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.18 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
-     onmouseover="return searchBox.OnSearchSelectShow()"
-     onmouseout="return searchBox.OnSearchSelectHide()"
-     onkeydown="return searchBox.OnSearchSelectKey(event)">
-</div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="contents">
-&#160;
-
-<h3><a id="index_c"></a>- c -</h3><ul>
-<li>celix_bundle_getEntry()
-: <a class="el" href="celix__bundle_8h.html#a5cbe24596271fc91c79c8f42c8b92bc5">celix_bundle.h</a>
-</li>
-<li>celix_bundle_getGroup()
-: <a class="el" href="celix__bundle_8h.html#a5abd44b1259599d08f2312760fb32170">celix_bundle.h</a>
-</li>
-<li>celix_bundle_getId()
-: <a class="el" href="celix__bundle_8h.html#a8a9b02c9438f05099ff2bde9fea8c3cd">celix_bundle.h</a>
-</li>
-<li>celix_bundle_getState()
-: <a class="el" href="celix__bundle_8h.html#a7106fcc7b06c0506dd7e1678ba024a35">celix_bundle.h</a>
-</li>
-<li>celix_bundle_getSymbolicName()
-: <a class="el" href="celix__bundle_8h.html#a391c2aa2fdf3c8d0c65fc07a07bb7545">celix_bundle.h</a>
-</li>
-<li>celix_bundleActivator_create()
-: <a class="el" href="celix__bundle__activator_8h.html#a57025ac322aecc8acfac832748c780e6">celix_bundle_activator.h</a>
-</li>
-<li>celix_bundleActivator_destroy()
-: <a class="el" href="celix__bundle__activator_8h.html#a8d7cd41a721060d28c6ce8d94f9f0ca9">celix_bundle_activator.h</a>
-</li>
-<li>celix_bundleActivator_start()
-: <a class="el" href="celix__bundle__activator_8h.html#a8ac12a9b8d321ee1c1feee5bf047b666">celix_bundle_activator.h</a>
-</li>
-<li>celix_bundleActivator_stop()
-: <a class="el" href="celix__bundle__activator_8h.html#ae650439680848e3e3f7fc71b9e4dd213">celix_bundle_activator.h</a>
-</li>
-<li>celix_bundleContext_findService()
-: <a class="el" href="celix__bundle__context_8h.html#ac8322b5aa4adf9dcd8c288ce72a05414">celix_bundle_context.h</a>
-</li>
-<li>celix_bundleContext_findServices()
-: <a class="el" href="celix__bundle__context_8h.html#a96a901f0597f9d2accf073153d90344c">celix_bundle_context.h</a>
-</li>
-<li>celix_bundleContext_findServicesWithOptions()
-: <a class="el" href="celix__bundle__context_8h.html#a41c34f8165addcbd0d65b4a0c23345d0">celix_bundle_context.h</a>
-</li>
-<li>celix_bundleContext_findServiceWithOptions()
-: <a class="el" href="celix__bundle__context_8h.html#a8cfbbb7e17cb4a825a525c547f72b4b0">celix_bundle_context.h</a>
-</li>
-<li>celix_bundleContext_getBundle()
-: <a class="el" href="celix__bundle__context_8h.html#a3f7f55d1587f421f27518574a525ff63">celix_bundle_context.h</a>
-</li>
-<li>celix_bundleContext_getDependencyManager()
-: <a class="el" href="celix__bundle__context_8h.html#ac36566dcc477bb2c123e5124527090c1">celix_bundle_context.h</a>
-</li>
-<li>celix_bundleContext_getProperty()
-: <a class="el" href="celix__bundle__context_8h.html#aa121100c5f5d03c0ccdda9c87286f7db">celix_bundle_context.h</a>
-</li>
-<li>celix_bundleContext_getPropertyAsBool()
-: <a class="el" href="celix__bundle__context_8h.html#a41e6642ba1a739b5768911fa41e5d170">celix_bundle_context.h</a>
-</li>
-<li>celix_bundleContext_getPropertyAsDouble()
-: <a class="el" href="celix__bundle__context_8h.html#a92be7dd7985a890c4b92bcb8497e8b9f">celix_bundle_context.h</a>
-</li>
-<li>celix_bundleContext_getPropertyAsLong()
-: <a class="el" href="celix__bundle__context_8h.html#a0ea27b2a81018583a464a10932cfae62">celix_bundle_context.h</a>
-</li>
-<li>celix_bundleContext_installBundle()
-: <a class="el" href="celix__bundle__context_8h.html#a727ee2600c19ce2fd42b3b80b695c7f6">celix_bundle_context.h</a>
-</li>
-<li>celix_bundleContext_isBundleInstalled()
-: <a class="el" href="celix__bundle__context_8h.html#ac7151f08ded1d7571867a44abe9f3531">celix_bundle_context.h</a>
-</li>
-<li>celix_bundleContext_listBundles()
-: <a class="el" href="celix__bundle__context_8h.html#afde9ed40231b5c3bbba19559e68e77f6">celix_bundle_context.h</a>
-</li>
-<li>celix_bundleContext_registerService()
-: <a class="el" href="celix__bundle__context_8h.html#a5bc54fd14871cc88ed887c8cea8f7b78">celix_bundle_context.h</a>
-</li>
-<li>celix_bundleContext_registerServiceFactory()
-: <a class="el" href="celix__bundle__context_8h.html#a3caa917285feaad580b61d4c0c8430a9">celix_bundle_context.h</a>
-</li>
-<li>celix_bundleContext_registerServiceWithOptions()
-: <a class="el" href="celix__bundle__context_8h.html#abcde0edf5b4969bdd67831cff3db0a43">celix_bundle_context.h</a>
-</li>
-<li>celix_bundleContext_startBundle()
-: <a class="el" href="celix__bundle__context_8h.html#a8df4bfbc27c99736c0209ef130cff98f">celix_bundle_context.h</a>
-</li>
-<li>celix_bundleContext_stopBundle()
-: <a class="el" href="celix__bundle__context_8h.html#ad6e1553f9507d04c7a0ad91d067d479b">celix_bundle_context.h</a>
-</li>
-<li>celix_bundleContext_stopTracker()
-: <a class="el" href="celix__bundle__context_8h.html#a3b4906a9e6fb34fe3ca5118539a81fc7">celix_bundle_context.h</a>
-</li>
-<li>celix_bundleContext_trackBundles()
-: <a class="el" href="celix__bundle__context_8h.html#a3daf88ae43bb01e104f506c3a2dc8351">celix_bundle_context.h</a>
-</li>
-<li>celix_bundleContext_trackBundlesWithOptions()
-: <a class="el" href="celix__bundle__context_8h.html#aa603acb136351b4135ce6a8c0b1fda71">celix_bundle_context.h</a>
-</li>
-<li>celix_bundleContext_trackService()
-: <a class="el" href="celix__bundle__context_8h.html#a612409acf5453dbc370d93b784153d51">celix_bundle_context.h</a>
-</li>
-<li>celix_bundleContext_trackServices()
-: <a class="el" href="celix__bundle__context_8h.html#a43e3bfd38ef956ffe861065e698a72e4">celix_bundle_context.h</a>
-</li>
-<li>celix_bundleContext_trackServicesWithOptions()
-: <a class="el" href="celix__bundle__context_8h.html#a27980e1631d4575cc45c6c6ba38c6f71">celix_bundle_context.h</a>
-</li>
-<li>celix_bundleContext_trackServiceTrackers()
-: <a class="el" href="celix__bundle__context_8h.html#a80f61dd38b9da8447cd4f931779eaf16">celix_bundle_context.h</a>
-</li>
-<li>celix_bundleContext_uninstallBundle()
-: <a class="el" href="celix__bundle__context_8h.html#a098adf1e9f65deb166110008bd4314dd">celix_bundle_context.h</a>
-</li>
-<li>celix_bundleContext_unregisterService()
-: <a class="el" href="celix__bundle__context_8h.html#a1ebd82cb3d61aab769956d856293b9b9">celix_bundle_context.h</a>
-</li>
-<li>celix_bundleContext_useBundle()
-: <a class="el" href="celix__bundle__context_8h.html#abb3cedf5ffa7a326cef2af64a1094635">celix_bundle_context.h</a>
-</li>
-<li>celix_bundleContext_useBundles()
-: <a class="el" href="celix__bundle__context_8h.html#a03a6d1c49c91c212ad7be115e1035840">celix_bundle_context.h</a>
-</li>
-<li>celix_bundleContext_useService()
-: <a class="el" href="celix__bundle__context_8h.html#ac36cdb8a06bb34f9371d7bb32953c69e">celix_bundle_context.h</a>
-</li>
-<li>celix_bundleContext_useServices()
-: <a class="el" href="celix__bundle__context_8h.html#a39270507a3766afbfcc9420c7270d262">celix_bundle_context.h</a>
-</li>
-<li>celix_bundleContext_useServicesWithOptions()
-: <a class="el" href="celix__bundle__context_8h.html#ad1512520baedecad54a7bc307e0a6c7b">celix_bundle_context.h</a>
-</li>
-<li>celix_bundleContext_useServiceWithId()
-: <a class="el" href="celix__bundle__context_8h.html#aec6e03faece0f8247de19d8c1527406d">celix_bundle_context.h</a>
-</li>
-<li>celix_bundleContext_useServiceWithOptions()
-: <a class="el" href="celix__bundle__context_8h.html#a1e8a78de5f799d303231385b51085055">celix_bundle_context.h</a>
-</li>
-<li>celix_dmComponent_addInterface()
-: <a class="el" href="celix__dm__component_8h.html#aafd2f2eff931784f70eb2a37e943446a">celix_dm_component.h</a>
-</li>
-<li>celix_dmComponent_addServiceDependency()
-: <a class="el" href="celix__dm__component_8h.html#ad7d4a85042adba432bd8d398d9c106b8">celix_dm_component.h</a>
-</li>
-<li>celix_dmComponent_create()
-: <a class="el" href="celix__dm__component_8h.html#adf75af7d75d2c1f7e53d78f23f97d40c">celix_dm_component.h</a>
-</li>
-<li>celix_dmComponent_currentState()
-: <a class="el" href="celix__dm__component_8h.html#af98630b8f8980c906d5aefc5f8a82c99">celix_dm_component.h</a>
-</li>
-<li>celix_dmComponent_destroy()
-: <a class="el" href="celix__dm__component_8h.html#a56a8c5019a43eb96d62fd9e98cb56ba8">celix_dm_component.h</a>
-</li>
-<li>celix_dmComponent_destroyComponentInfo()
-: <a class="el" href="celix__dm__component_8h.html#af62df6623e978a1cc62b3ca8ab5863c3">celix_dm_component.h</a>
-</li>
-<li>celix_dmComponent_getBundleContext()
-: <a class="el" href="celix__dm__component_8h.html#a99be995e9e94514fc4f6782dd48456ba">celix_dm_component.h</a>
-</li>
-<li>celix_dmComponent_getComponentInfo()
-: <a class="el" href="celix__dm__component_8h.html#a3345d3bfa11070069d745131668d02ae">celix_dm_component.h</a>
-</li>
-<li>celix_dmComponent_getImplementation()
-: <a class="el" href="celix__dm__component_8h.html#a5647f75ea3a3c3755940ee42f51320a8">celix_dm_component.h</a>
-</li>
-<li>celix_dmComponent_getInterfaces()
-: <a class="el" href="celix__dm__component_8h.html#ae0312e00f51f85d8e48b18020964e21f">celix_dm_component.h</a>
-</li>
-<li>celix_dmComponent_getName()
-: <a class="el" href="celix__dm__component_8h.html#a30de51befa422dc65ac89ae3d9b8319f">celix_dm_component.h</a>
-</li>
-<li>celix_dmComponent_isActive()
-: <a class="el" href="celix__dm__component_8h.html#a7bbf1a0da294be7ba9ae8272f1b938d7">celix_dm_component.h</a>
-</li>
-<li>celix_dmComponent_removeInterface()
-: <a class="el" href="celix__dm__component_8h.html#a3e4a6e8e87cc8d3b3655eaaa06ad261e">celix_dm_component.h</a>
-</li>
-<li>celix_dmComponent_removeServiceDependency()
-: <a class="el" href="celix__dm__component_8h.html#a0ce2c610cbe3a329ea6561eb5cda0d8d">celix_dm_component.h</a>
-</li>
-<li>celix_dmComponent_setCallbacks()
-: <a class="el" href="celix__dm__component_8h.html#a017e996f6b1db5e902bf3a9cc043634f">celix_dm_component.h</a>
-</li>
-<li>celix_dmComponent_setCLanguageProperty()
-: <a class="el" href="celix__dm__component_8h.html#ab8bd7a13007bda2619c1764886eabeab">celix_dm_component.h</a>
-</li>
-<li>celix_dmComponent_setImplementation()
-: <a class="el" href="celix__dm__component_8h.html#a45a01df6ed75d8530563d52f58a0b165">celix_dm_component.h</a>
-</li>
-<li>celix_dmServiceDependency_create()
-: <a class="el" href="celix__dm__service__dependency_8h.html#a588b147bec75a501fac3b35076fc98a3">celix_dm_service_dependency.h</a>
-</li>
-<li>celix_dmServiceDependency_createInfo()
-: <a class="el" href="celix__dm__service__dependency_8h.html#a0b84d9164563664da40491151f7d7131">celix_dm_service_dependency.h</a>
-</li>
-<li>celix_dmServiceDependency_destroy()
-: <a class="el" href="celix__dm__service__dependency_8h.html#ac282334d66c3cfc4fda1b67245172979">celix_dm_service_dependency.h</a>
-</li>
-<li>celix_dmServiceDependency_destroyInfo()
-: <a class="el" href="celix__dm__service__dependency_8h.html#acb96da27c0087a05d885b0f55756de8a">celix_dm_service_dependency.h</a>
-</li>
-<li>celix_dmServiceDependency_getFilter()
-: <a class="el" href="celix__dm__service__dependency_8h.html#a487a41d56ea2bf1aa51cd7f7e83ff844">celix_dm_service_dependency.h</a>
-</li>
-<li>celix_dmServiceDependency_getStrategy()
-: <a class="el" href="celix__dm__service__dependency_8h.html#a8365396c6363ad98b66725243f97f8ea">celix_dm_service_dependency.h</a>
-</li>
-<li>celix_dmServiceDependency_setAddCLanguageFilter()
-: <a class="el" href="celix__dm__service__dependency_8h.html#a9aec79471c46aecc7412523fe839e549">celix_dm_service_dependency.h</a>
-</li>
-<li>celix_dmServiceDependency_setCallback()
-: <a class="el" href="celix__dm__service__dependency_8h.html#a1a731a456c8e617acfa4d81a6357959c">celix_dm_service_dependency.h</a>
-</li>
-<li>celix_dmServiceDependency_setCallbackHandle()
-: <a class="el" href="celix__dm__service__dependency_8h.html#aebe0669933d37f9fd1c3fdc873127d78">celix_dm_service_dependency.h</a>
-</li>
-<li>celix_dmServiceDependency_setCallbacksWithOptions()
-: <a class="el" href="celix__dm__service__dependency_8h.html#a31898ef1ad5f9695dc85a24202020ebe">celix_dm_service_dependency.h</a>
-</li>
-<li>celix_dmServiceDependency_setCallbackWithProperties()
-: <a class="el" href="celix__dm__service__dependency_8h.html#a9bdfec7b27301bd71dd4f45fcdd11568">celix_dm_service_dependency.h</a>
-</li>
-<li>celix_dmServiceDependency_setRequired()
-: <a class="el" href="celix__dm__service__dependency_8h.html#a0c33bcf502f8683bce3cf382c4bdc76a">celix_dm_service_dependency.h</a>
-</li>
-<li>celix_dmServiceDependency_setService()
-: <a class="el" href="celix__dm__service__dependency_8h.html#a2602a6526ef6cde42d606c9ed958cec7">celix_dm_service_dependency.h</a>
-</li>
-<li>celix_dmServiceDependency_setStrategy()
-: <a class="el" href="celix__dm__service__dependency_8h.html#a9d833904b765bee7073ec41828ea7d2e">celix_dm_service_dependency.h</a>
-</li>
-<li>celix_framework_getFrameworkBundle()
-: <a class="el" href="celix__framework_8h.html#ae980ec9c8f83f8a3e65dc7da9d794f18">celix_framework.h</a>
-</li>
-<li>celix_framework_getFrameworkContext()
-: <a class="el" href="celix__framework_8h.html#aa2e913753f841b3b0b22c196b39d03b1">celix_framework.h</a>
-</li>
-<li>celix_framework_getUUID()
-: <a class="el" href="celix__framework_8h.html#a671ba53e13abea3d4eb328a66b62802f">celix_framework.h</a>
-</li>
-<li>celix_framework_useBundle()
-: <a class="el" href="celix__framework_8h.html#ab158bb807ea2171c5d20076cb457c8d1">celix_framework.h</a>
-</li>
-<li>celix_framework_useBundles()
-: <a class="el" href="celix__framework_8h.html#a192ba45dd2a7175fd4d19c70da59f9ab">celix_framework.h</a>
-</li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.18
-</small></address>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/globals_type.html b/static/docs/2.2.1/html/globals_type.html
deleted file mode 100755
index 16bcce4..0000000
--- a/static/docs/2.2.1/html/globals_type.html
+++ /dev/null
@@ -1,154 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>Celix: File Members</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/searchdata.js"></script>
-<script type="text/javascript" src="search/search.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">Celix
-   &#160;<span id="projectnumber">2.2.1</span>
-   </div>
-   <div id="projectbrief">An implementation of the OSGi specification adapted to C and C++</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.18 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
-     onmouseover="return searchBox.OnSearchSelectShow()"
-     onmouseout="return searchBox.OnSearchSelectHide()"
-     onkeydown="return searchBox.OnSearchSelectKey(event)">
-</div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="contents">
-&#160;<ul>
-<li>celix_bundle_tracking_options_t
-: <a class="el" href="celix__bundle__context_8h.html#a1b011b5fe49a718345698eeb359d0c3a">celix_bundle_context.h</a>
-</li>
-<li>celix_dependency_manager_info_t
-: <a class="el" href="celix__dm__info_8h.html#af06092e6852ba40f4241b4e539265e64">celix_dm_info.h</a>
-</li>
-<li>celix_dm_cmp_lifecycle_fpt
-: <a class="el" href="celix__dm__component_8h.html#a9c73a72049f39d42d66b6d9c60d185dc">celix_dm_component.h</a>
-</li>
-<li>celix_dm_component_info_t
-: <a class="el" href="celix__dm__info_8h.html#a57ffe4e9f51e746fdf4ae50151150b16">celix_dm_info.h</a>
-</li>
-<li>celix_dm_component_state_t
-: <a class="el" href="celix__dm__component_8h.html#afd49054c559adbeb9627fa3d45d6c02a">celix_dm_component.h</a>
-</li>
-<li>celix_dm_interface_info_t
-: <a class="el" href="celix__dm__info_8h.html#a635d8bc54edda5e7e70f7b27943196b6">celix_dm_info.h</a>
-</li>
-<li>celix_dm_service_dependency_callback_options_t
-: <a class="el" href="celix__dm__service__dependency_8h.html#ace7f03a4e7746a8ca8218afd172752f8">celix_dm_service_dependency.h</a>
-</li>
-<li>celix_dm_service_dependency_info_t
-: <a class="el" href="celix__dm__info_8h.html#a7fd4e90372051b1549c588095fb24fd4">celix_dm_info.h</a>
-</li>
-<li>celix_dm_service_dependency_strategy_t
-: <a class="el" href="celix__dm__service__dependency_8h.html#a00447f0e837918fcf6e39698ef375f46">celix_dm_service_dependency.h</a>
-</li>
-<li>celix_dm_service_swap_fp
-: <a class="el" href="celix__dm__service__dependency_8h.html#a8a77266cc94a0f019b29d75a8e54995d">celix_dm_service_dependency.h</a>
-</li>
-<li>celix_dm_service_swap_with_props_fp
-: <a class="el" href="celix__dm__service__dependency_8h.html#a6b4b49e1cbd6865c5dc14e94086f629f">celix_dm_service_dependency.h</a>
-</li>
-<li>celix_dm_service_update_fp
-: <a class="el" href="celix__dm__service__dependency_8h.html#a3aab7f5d65c74eb819047e5ec1f4c05f">celix_dm_service_dependency.h</a>
-</li>
-<li>celix_dm_service_update_with_props_fp
-: <a class="el" href="celix__dm__service__dependency_8h.html#afb8ee50fcfc77f274578d85a70bb2b94">celix_dm_service_dependency.h</a>
-</li>
-<li>celix_service_filter_options_t
-: <a class="el" href="celix__bundle__context_8h.html#a7eab80d54386fb32b91dd414846c2d45">celix_bundle_context.h</a>
-</li>
-<li>celix_service_registration_options_t
-: <a class="el" href="celix__bundle__context_8h.html#aacaeb063a21a237ac515607d689eebb8">celix_bundle_context.h</a>
-</li>
-<li>celix_service_tracker_info_t
-: <a class="el" href="celix__bundle__context_8h.html#aea7e7fcd4022db2f9f4123dd3b7a794a">celix_bundle_context.h</a>
-</li>
-<li>celix_service_tracking_options_t
-: <a class="el" href="celix__bundle__context_8h.html#a5c017c82bf57881c04f8c6f545b25a75">celix_bundle_context.h</a>
-</li>
-<li>celix_service_use_options_t
-: <a class="el" href="celix__bundle__context_8h.html#ae2da28d23f5246c20c6b675b80e7d130">celix_bundle_context.h</a>
-</li>
-<li>dm_component_info_pt
-: <a class="el" href="celix__dm__info_8h.html#a4325313bb7b98b6eded2212a6edd065a">celix_dm_info.h</a>
-</li>
-<li>dm_component_info_t
-: <a class="el" href="celix__dm__info_8h.html#a81bba27d8f869e77dd921c7cd8ac35d7">celix_dm_info.h</a>
-</li>
-<li>dm_dependency_manager_info_pt
-: <a class="el" href="celix__dm__info_8h.html#a230d51a712bc30bd2b52126e17f63738">celix_dm_info.h</a>
-</li>
-<li>dm_dependency_manager_info_t
-: <a class="el" href="celix__dm__info_8h.html#aeaa11da320e45fdeef41c441bff70f02">celix_dm_info.h</a>
-</li>
-<li>dm_interface_info_pt
-: <a class="el" href="celix__dm__info_8h.html#abb40885e5ab16c4701927d7095194ee2">celix_dm_info.h</a>
-</li>
-<li>dm_interface_info_t
-: <a class="el" href="celix__dm__info_8h.html#a3c8c9b3b3b6d6cb2853ce22f337ed7f0">celix_dm_info.h</a>
-</li>
-<li>dm_service_dependency_info_pt
-: <a class="el" href="celix__dm__info_8h.html#a0a06988849c18fd4848452086f36ed6e">celix_dm_info.h</a>
-</li>
-<li>dm_service_dependency_info_t
-: <a class="el" href="celix__dm__info_8h.html#a553833e914505261622b13563c8a045e">celix_dm_info.h</a>
-</li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.18
-</small></address>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/graph_legend.html b/static/docs/2.2.1/html/graph_legend.html
deleted file mode 100755
index 8cb1017..0000000
--- a/static/docs/2.2.1/html/graph_legend.html
+++ /dev/null
@@ -1,138 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>Celix: Graph Legend</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/searchdata.js"></script>
-<script type="text/javascript" src="search/search.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">Celix
-   &#160;<span id="projectnumber">2.2.1</span>
-   </div>
-   <div id="projectbrief">An implementation of the OSGi specification adapted to C and C++</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.18 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
-     onmouseover="return searchBox.OnSearchSelectShow()"
-     onmouseout="return searchBox.OnSearchSelectHide()"
-     onkeydown="return searchBox.OnSearchSelectKey(event)">
-</div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="header">
-  <div class="headertitle">
-<div class="title">Graph Legend</div>  </div>
-</div><!--header-->
-<div class="contents">
-<p>This page explains how to interpret the graphs that are generated by doxygen.</p>
-<p>Consider the following example: </p><div class="fragment"><div class="line"><span class="comment">/*! Invisible class because of truncation */</span></div>
-<div class="line"><span class="keyword">class </span>Invisible { };</div>
-<div class="line"><span class="comment"></span> </div>
-<div class="line"><span class="comment">/*! Truncated class, inheritance relation is hidden */</span></div>
-<div class="line"><span class="keyword">class </span>Truncated : <span class="keyword">public</span> Invisible { };</div>
-<div class="line"> </div>
-<div class="line"><span class="comment">/* Class not documented with doxygen comments */</span></div>
-<div class="line"><span class="keyword">class </span>Undocumented { };</div>
-<div class="line"><span class="comment"></span> </div>
-<div class="line"><span class="comment">/*! Class that is inherited using public inheritance */</span></div>
-<div class="line"><span class="keyword">class </span>PublicBase : <span class="keyword">public</span> Truncated { };</div>
-<div class="line"><span class="comment"></span> </div>
-<div class="line"><span class="comment">/*! A template class */</span></div>
-<div class="line"><span class="keyword">template</span>&lt;<span class="keyword">class</span> T&gt; <span class="keyword">class </span>Templ { };</div>
-<div class="line"><span class="comment"></span> </div>
-<div class="line"><span class="comment">/*! Class that is inherited using protected inheritance */</span></div>
-<div class="line"><span class="keyword">class </span>ProtectedBase { };</div>
-<div class="line"><span class="comment"></span> </div>
-<div class="line"><span class="comment">/*! Class that is inherited using private inheritance */</span></div>
-<div class="line"><span class="keyword">class </span>PrivateBase { };</div>
-<div class="line"><span class="comment"></span> </div>
-<div class="line"><span class="comment">/*! Class that is used by the Inherited class */</span></div>
-<div class="line"><span class="keyword">class </span>Used { };</div>
-<div class="line"><span class="comment"></span> </div>
-<div class="line"><span class="comment">/*! Super class that inherits a number of other classes */</span></div>
-<div class="line"><span class="keyword">class </span>Inherited : <span class="keyword">public</span> PublicBase,</div>
-<div class="line">                  <span class="keyword">protected</span> ProtectedBase,</div>
-<div class="line">                  <span class="keyword">private</span> PrivateBase,</div>
-<div class="line">                  <span class="keyword">public</span> Undocumented,</div>
-<div class="line">                  <span class="keyword">public</span> Templ&lt;int&gt;</div>
-<div class="line">{</div>
-<div class="line">  <span class="keyword">private</span>:</div>
-<div class="line">    Used *m_usedClass;</div>
-<div class="line">};</div>
-</div><!-- fragment --><p> This will result in the following graph:</p>
-<center><img src="graph_legend.png" alt="" class="inline"/></center><p>The boxes in the above graph have the following meaning: </p>
-<ul>
-<li>
-A filled gray box represents the struct or class for which the graph is generated. </li>
-<li>
-A box with a black border denotes a documented struct or class. </li>
-<li>
-A box with a gray border denotes an undocumented struct or class. </li>
-<li>
-A box with a red border denotes a documented struct or class forwhich not all inheritance/containment relations are shown. A graph is truncated if it does not fit within the specified boundaries. </li>
-</ul>
-<p>The arrows have the following meaning: </p>
-<ul>
-<li>
-A dark blue arrow is used to visualize a public inheritance relation between two classes. </li>
-<li>
-A dark green arrow is used for protected inheritance. </li>
-<li>
-A dark red arrow is used for private inheritance. </li>
-<li>
-A purple dashed arrow is used if a class is contained or used by another class. The arrow is labelled with the variable(s) through which the pointed class or struct is accessible. </li>
-<li>
-A yellow dashed arrow denotes a relation between a template instance and the template class it was instantiated from. The arrow is labelled with the template parameters of the instance. </li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.18
-</small></address>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/graph_legend.md5 b/static/docs/2.2.1/html/graph_legend.md5
deleted file mode 100755
index 8fcdccd..0000000
--- a/static/docs/2.2.1/html/graph_legend.md5
+++ /dev/null
@@ -1 +0,0 @@
-f51bf6e9a10430aafef59831b08dcbfe
\ No newline at end of file
diff --git a/static/docs/2.2.1/html/graph_legend.png b/static/docs/2.2.1/html/graph_legend.png
deleted file mode 100755
index 471c35c..0000000
--- a/static/docs/2.2.1/html/graph_legend.png
+++ /dev/null
Binary files differ
diff --git a/static/docs/2.2.1/html/index.html b/static/docs/2.2.1/html/index.html
deleted file mode 100755
index d7a19f6..0000000
--- a/static/docs/2.2.1/html/index.html
+++ /dev/null
@@ -1,92 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>Celix: Main Page</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/searchdata.js"></script>
-<script type="text/javascript" src="search/search.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">Celix
-   &#160;<span id="projectnumber">2.2.1</span>
-   </div>
-   <div id="projectbrief">An implementation of the OSGi specification adapted to C and C++</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.18 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
-     onmouseover="return searchBox.OnSearchSelectShow()"
-     onmouseout="return searchBox.OnSearchSelectHide()"
-     onkeydown="return searchBox.OnSearchSelectKey(event)">
-</div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="PageDoc"><div class="header">
-  <div class="headertitle">
-<div class="title">Celix Documentation</div>  </div>
-</div><!--header-->
-<div class="contents">
-<div class="textblock"><p><a class="anchor" id="md_README"></a></p>
-<h1><a class="anchor" id="autotoc_md0"></a>
-Apache Celix</h1>
-<p>Apache Celix is an implementation of the OSGi specification adapted to C and C++ (C++11). It is a framework to develop (dynamic) modular software applications using component and/or service-oriented programming.</p>
-<h2><a class="anchor" id="autotoc_md1"></a>
-Building</h2>
-<p>For information how to build Apache Celix see Building Apache Celix</p>
-<h2><a class="anchor" id="autotoc_md2"></a>
-Introduction to Apache Celix</h2>
-<p>For an introduction into Apache Celix see Apache Celix Intro</p>
-<h2><a class="anchor" id="autotoc_md3"></a>
-Getting Started with Apache Celix</h2>
-<p>For a guide how to start writing your own bundles and services see Getting Started Guide </p>
-</div></div><!-- PageDoc -->
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.18
-</small></address>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/jquery.js b/static/docs/2.2.1/html/jquery.js
deleted file mode 100755
index 103c32d..0000000
--- a/static/docs/2.2.1/html/jquery.js
+++ /dev/null
@@ -1,35 +0,0 @@
-/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */
-!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}k.fn=k.prototype={jquery:f,constructor:k,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=k.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return k.each(this,e)},map:function(n){return this.pushStack(k.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:t.sort,splice:t.splice},k.extend=k.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||m(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(k.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||k.isPlainObject(n)?n:{},i=!1,a[t]=k.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},k.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==o.call(e))&&(!(t=r(e))||"function"==typeof(n=v.call(t,"constructor")&&t.constructor)&&a.call(n)===l)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t){b(e,{nonce:t&&t.nonce})},each:function(e,t){var n,r=0;if(d(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},trim:function(e){return null==e?"":(e+"").replace(p,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(d(Object(e))?k.merge(n,"string"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(d(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g.apply([],a)},guid:1,support:y}),"function"==typeof Symbol&&(k.fn[Symbol.iterator]=t[Symbol.iterator]),k.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var h=function(n){var e,d,b,o,i,h,f,g,w,u,l,T,C,a,E,v,s,c,y,k="sizzle"+1*new Date,m=n.document,S=0,r=0,p=ue(),x=ue(),N=ue(),A=ue(),D=function(e,t){return e===t&&(l=!0),0},j={}.hasOwnProperty,t=[],q=t.pop,L=t.push,H=t.push,O=t.slice,P=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",I="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",W="\\["+M+"*("+I+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+I+"))|)"+M+"*\\]",$=":("+I+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+W+")*)|.*)\\)|)",F=new RegExp(M+"+","g"),B=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=new RegExp("^"+M+"*,"+M+"*"),z=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="<a id='"+k+"'></a><select id='"+k+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0<se(t,C,null,[e]).length},se.contains=function(e,t){return(e.ownerDocument||e)!==C&&T(e),y(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!==C&&T(e);var n=b.attrHandle[t.toLowerCase()],r=n&&j.call(b.attrHandle,t.toLowerCase())?n(e,t,!E):void 0;return void 0!==r?r:d.attributes||!E?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},se.escape=function(e){return(e+"").replace(re,ie)},se.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},se.uniqueSort=function(e){var t,n=[],r=0,i=0;if(l=!d.detectDuplicates,u=!d.sortStable&&e.slice(0),e.sort(D),l){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)e.splice(n[r],1)}return u=null,e},o=se.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else while(t=e[r++])n+=o(t);return n},(b=se.selectors={cacheLength:50,createPseudo:le,match:G,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1<t.indexOf(i):"$="===r?i&&t.slice(-i.length)===i:"~="===r?-1<(" "+t.replace(F," ")+" ").indexOf(i):"|="===r&&(t===i||t.slice(0,i.length+1)===i+"-"))}},CHILD:function(h,e,t,g,v){var y="nth"!==h.slice(0,3),m="last"!==h.slice(-4),x="of-type"===e;return 1===g&&0===v?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u,l=y!==m?"nextSibling":"previousSibling",c=e.parentNode,f=x&&e.nodeName.toLowerCase(),p=!n&&!x,d=!1;if(c){if(y){while(l){a=e;while(a=a[l])if(x?a.nodeName.toLowerCase()===f:1===a.nodeType)return!1;u=l="only"===h&&!u&&"nextSibling"}return!0}if(u=[m?c.firstChild:c.lastChild],m&&p){d=(s=(r=(i=(o=(a=c)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1])&&r[2],a=s&&c.childNodes[s];while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if(1===a.nodeType&&++d&&a===e){i[h]=[S,s,d];break}}else if(p&&(d=s=(r=(i=(o=(a=e)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1]),!1===d)while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if((x?a.nodeName.toLowerCase()===f:1===a.nodeType)&&++d&&(p&&((i=(o=a[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]=[S,d]),a===e))break;return(d-=v)===g||d%g==0&&0<=d/g}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||se.error("unsupported pseudo: "+e);return a[k]?a(o):1<a.length?(t=[e,e,"",o],b.setFilters.hasOwnProperty(e.toLowerCase())?le(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=P(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:le(function(e){var r=[],i=[],s=f(e.replace(B,"$1"));return s[k]?le(function(e,t,n,r){var i,o=s(e,null,r,[]),a=e.length;while(a--)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:le(function(t){return function(e){return 0<se(t,e).length}}),contains:le(function(t){return t=t.replace(te,ne),function(e){return-1<(e.textContent||o(e)).indexOf(t)}}),lang:le(function(n){return V.test(n||"")||se.error("unsupported lang: "+n),n=n.replace(te,ne).toLowerCase(),function(e){var t;do{if(t=E?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=n.location&&n.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===a},focus:function(e){return e===C.activeElement&&(!C.hasFocus||C.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:ge(!1),disabled:ge(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return J.test(e.nodeName)},input:function(e){return Q.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:ve(function(){return[0]}),last:ve(function(e,t){return[t-1]}),eq:ve(function(e,t,n){return[n<0?n+t:n]}),even:ve(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:ve(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:ve(function(e,t,n){for(var r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:ve(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=de(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=he(e);function me(){}function xe(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function be(s,e,t){var u=e.dir,l=e.next,c=l||u,f=t&&"parentNode"===c,p=r++;return e.first?function(e,t,n){while(e=e[u])if(1===e.nodeType||f)return s(e,t,n);return!1}:function(e,t,n){var r,i,o,a=[S,p];if(n){while(e=e[u])if((1===e.nodeType||f)&&s(e,t,n))return!0}else while(e=e[u])if(1===e.nodeType||f)if(i=(o=e[k]||(e[k]={}))[e.uniqueID]||(o[e.uniqueID]={}),l&&l===e.nodeName.toLowerCase())e=e[u]||e;else{if((r=i[c])&&r[0]===S&&r[1]===p)return a[2]=r[2];if((i[c]=a)[2]=s(e,t,n))return!0}return!1}}function we(i){return 1<i.length?function(e,t,n){var r=i.length;while(r--)if(!i[r](e,t,n))return!1;return!0}:i[0]}function Te(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Ce(d,h,g,v,y,e){return v&&!v[k]&&(v=Ce(v)),y&&!y[k]&&(y=Ce(y,e)),le(function(e,t,n,r){var i,o,a,s=[],u=[],l=t.length,c=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)se(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),f=!d||!e&&h?c:Te(c,s,d,n,r),p=g?y||(e?d:l||v)?[]:t:f;if(g&&g(f,p,n,r),v){i=Te(p,u),v(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(p[u[o]]=!(f[u[o]]=a))}if(e){if(y||d){if(y){i=[],o=p.length;while(o--)(a=p[o])&&i.push(f[o]=a);y(null,p=[],i,r)}o=p.length;while(o--)(a=p[o])&&-1<(i=y?P(e,a):s[o])&&(e[i]=!(t[i]=a))}}else p=Te(p===t?p.splice(l,p.length):p),y?y(null,t,p,r):H.apply(t,p)})}function Ee(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.relative[" "],s=o?1:0,u=be(function(e){return e===i},a,!0),l=be(function(e){return-1<P(i,e)},a,!0),c=[function(e,t,n){var r=!o&&(n||t!==w)||((i=t).nodeType?u(e,t,n):l(e,t,n));return i=null,r}];s<r;s++)if(t=b.relative[e[s].type])c=[be(we(c),t)];else{if((t=b.filter[e[s].type].apply(null,e[s].matches))[k]){for(n=++s;n<r;n++)if(b.relative[e[n].type])break;return Ce(1<s&&we(c),1<s&&xe(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(B,"$1"),t,s<n&&Ee(e.slice(s,n)),n<r&&Ee(e=e.slice(n)),n<r&&xe(e))}c.push(t)}return we(c)}return me.prototype=b.filters=b.pseudos,b.setFilters=new me,h=se.tokenize=function(e,t){var n,r,i,o,a,s,u,l=x[e+" "];if(l)return t?0:l.slice(0);a=e,s=[],u=b.preFilter;while(a){for(o in n&&!(r=_.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=z.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace(B," ")}),a=a.slice(n.length)),b.filter)!(r=G[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?se.error(e):x(e,s).slice(0)},f=se.compile=function(e,t){var n,v,y,m,x,r,i=[],o=[],a=N[e+" "];if(!a){t||(t=h(e)),n=t.length;while(n--)(a=Ee(t[n]))[k]?i.push(a):o.push(a);(a=N(e,(v=o,m=0<(y=i).length,x=0<v.length,r=function(e,t,n,r,i){var o,a,s,u=0,l="0",c=e&&[],f=[],p=w,d=e||x&&b.find.TAG("*",i),h=S+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t===C||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){a=0,t||o.ownerDocument===C||(T(o),n=!E);while(s=v[a++])if(s(o,t||C,n)){r.push(o);break}i&&(S=h)}m&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,m&&l!==u){a=0;while(s=y[a++])s(c,f,t,n);if(e){if(0<u)while(l--)c[l]||f[l]||(f[l]=q.call(r));f=Te(f)}H.apply(r,f),i&&!e&&0<f.length&&1<u+y.length&&se.uniqueSort(r)}return i&&(S=h,w=p),c},m?le(r):r))).selector=e}return a},g=se.select=function(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,c=!r&&h(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&"ID"===(a=o[0]).type&&9===t.nodeType&&E&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(te,ne),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=G.needsContext.test(e)?0:o.length;while(i--){if(a=o[i],b.relative[s=a.type])break;if((u=b.find[s])&&(r=u(a.matches[0].replace(te,ne),ee.test(o[0].type)&&ye(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&xe(o)))return H.apply(n,r),n;break}}}return(l||f(e,c))(r,t,!E,n,!t||ee.test(e)&&ye(t.parentNode)||t),n},d.sortStable=k.split("").sort(D).join("")===k,d.detectDuplicates=!!l,T(),d.sortDetached=ce(function(e){return 1&e.compareDocumentPosition(C.createElement("fieldset"))}),ce(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||fe("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),d.attributes&&ce(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||fe("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute("disabled")})||fe(R,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(C);k.find=h,k.expr=h.selectors,k.expr[":"]=k.expr.pseudos,k.uniqueSort=k.unique=h.uniqueSort,k.text=h.getText,k.isXMLDoc=h.isXML,k.contains=h.contains,k.escapeSelector=h.escape;var T=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&k(e).is(n))break;r.push(e)}return r},S=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},N=k.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var D=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1<i.call(n,e)!==r}):k.filter(n,e,r)}k.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?k.find.matchesSelector(r,e)?[r]:[]:k.find.matches(e,k.grep(t,function(e){return 1===e.nodeType}))},k.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(k(e).filter(function(){for(t=0;t<r;t++)if(k.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)k.find(e,i[t],n);return 1<r?k.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&N.test(e)?k(e):e||[],!1).length}});var q,L=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(k.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&k(e);if(!N.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&k.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?k.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?i.call(k(e),this[0]):i.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(k.uniqueSort(k.merge(this.get(),k(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),k.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return T(e,"parentNode")},parentsUntil:function(e,t,n){return T(e,"parentNode",n)},next:function(e){return P(e,"nextSibling")},prev:function(e){return P(e,"previousSibling")},nextAll:function(e){return T(e,"nextSibling")},prevAll:function(e){return T(e,"previousSibling")},nextUntil:function(e,t,n){return T(e,"nextSibling",n)},prevUntil:function(e,t,n){return T(e,"previousSibling",n)},siblings:function(e){return S((e.parentNode||{}).firstChild,e)},children:function(e){return S(e.firstChild)},contents:function(e){return"undefined"!=typeof e.contentDocument?e.contentDocument:(A(e,"template")&&(e=e.content||e),k.merge([],e.childNodes))}},function(r,i){k.fn[r]=function(e,t){var n=k.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=k.filter(t,n)),1<this.length&&(O[r]||k.uniqueSort(n),H.test(r)&&n.reverse()),this.pushStack(n)}});var R=/[^\x20\t\r\n\f]+/g;function M(e){return e}function I(e){throw e}function W(e,t,n,r){var i;try{e&&m(i=e.promise)?i.call(e).done(t).fail(n):e&&m(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}k.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},k.each(e.match(R)||[],function(e,t){n[t]=!0}),n):k.extend({},r);var i,t,o,a,s=[],u=[],l=-1,c=function(){for(a=a||r.once,o=i=!0;u.length;l=-1){t=u.shift();while(++l<s.length)!1===s[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=s.length,t=!1)}r.memory||(t=!1),i=!1,a&&(s=t?[]:"")},f={add:function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){k.each(e,function(e,t){m(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==w(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return k.each(arguments,function(e,t){var n;while(-1<(n=k.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<k.inArray(e,s):0<s.length},empty:function(){return s&&(s=[]),this},disable:function(){return a=u=[],s=t="",this},disabled:function(){return!s},lock:function(){return a=u=[],t||i||(s=t=""),this},locked:function(){return!!a},fireWith:function(e,t){return a||(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),i||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},k.extend({Deferred:function(e){var o=[["notify","progress",k.Callbacks("memory"),k.Callbacks("memory"),2],["resolve","done",k.Callbacks("once memory"),k.Callbacks("once memory"),0,"resolved"],["reject","fail",k.Callbacks("once memory"),k.Callbacks("once memory"),1,"rejected"]],i="pending",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},"catch":function(e){return a.then(null,e)},pipe:function(){var i=arguments;return k.Deferred(function(r){k.each(o,function(e,t){var n=m(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&m(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+"With"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError("Thenable self-resolution");t=e&&("object"==typeof e||"function"==typeof e)&&e.then,m(t)?s?t.call(e,l(u,o,M,s),l(u,o,I,s)):(u++,t.call(e,l(u,o,M,s),l(u,o,I,s),l(u,o,M,o.notifyWith))):(a!==M&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){k.Deferred.exceptionHook&&k.Deferred.exceptionHook(e,t.stackTrace),u<=i+1&&(a!==I&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(k.Deferred.getStackHook&&(t.stackTrace=k.Deferred.getStackHook()),C.setTimeout(t))}}return k.Deferred(function(e){o[0][3].add(l(0,e,m(r)?r:M,e.notifyWith)),o[1][3].add(l(0,e,m(t)?t:M)),o[2][3].add(l(0,e,m(n)?n:I))}).promise()},promise:function(e){return null!=e?k.extend(e,a):a}},s={};return k.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+"With"](this===s?void 0:this,arguments),this},s[t[0]+"With"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){var n=arguments.length,t=n,r=Array(t),i=s.call(arguments),o=k.Deferred(),a=function(t){return function(e){r[t]=this,i[t]=1<arguments.length?s.call(arguments):e,--n||o.resolveWith(r,i)}};if(n<=1&&(W(e,o.done(a(t)).resolve,o.reject,!n),"pending"===o.state()||m(i[t]&&i[t].then)))return o.then();while(t--)W(i[t],a(t),o.reject);return o.promise()}});var $=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;k.Deferred.exceptionHook=function(e,t){C.console&&C.console.warn&&e&&$.test(e.name)&&C.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},k.readyException=function(e){C.setTimeout(function(){throw e})};var F=k.Deferred();function B(){E.removeEventListener("DOMContentLoaded",B),C.removeEventListener("load",B),k.ready()}k.fn.ready=function(e){return F.then(e)["catch"](function(e){k.readyException(e)}),this},k.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--k.readyWait:k.isReady)||(k.isReady=!0)!==e&&0<--k.readyWait||F.resolveWith(E,[k])}}),k.ready.then=F.then,"complete"===E.readyState||"loading"!==E.readyState&&!E.documentElement.doScroll?C.setTimeout(k.ready):(E.addEventListener("DOMContentLoaded",B),C.addEventListener("load",B));var _=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===w(n))for(s in i=!0,n)_(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,m(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(k(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},z=/^-ms-/,U=/-([a-z])/g;function X(e,t){return t.toUpperCase()}function V(e){return e.replace(z,"ms-").replace(U,X)}var G=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function Y(){this.expando=k.expando+Y.uid++}Y.uid=1,Y.prototype={cache:function(e){var t=e[this.expando];return t||(t={},G(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[V(t)]=n;else for(r in t)i[V(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][V(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(V):(t=V(t))in r?[t]:t.match(R)||[]).length;while(n--)delete r[t[n]]}(void 0===t||k.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!k.isEmptyObject(t)}};var Q=new Y,J=new Y,K=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Z=/[A-Z]/g;function ee(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(Z,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===(i=n)||"false"!==i&&("null"===i?null:i===+i+""?+i:K.test(i)?JSON.parse(i):i)}catch(e){}J.set(e,t,n)}else n=void 0;return n}k.extend({hasData:function(e){return J.hasData(e)||Q.hasData(e)},data:function(e,t,n){return J.access(e,t,n)},removeData:function(e,t){J.remove(e,t)},_data:function(e,t,n){return Q.access(e,t,n)},_removeData:function(e,t){Q.remove(e,t)}}),k.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0===n){if(this.length&&(i=J.get(o),1===o.nodeType&&!Q.get(o,"hasDataAttrs"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf("data-")&&(r=V(r.slice(5)),ee(o,r,i[r]));Q.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof n?this.each(function(){J.set(this,n)}):_(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=J.get(o,n))?t:void 0!==(t=ee(o,n))?t:void 0;this.each(function(){J.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){J.remove(this,e)})}}),k.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Q.get(e,t),n&&(!r||Array.isArray(n)?r=Q.access(e,t,k.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=k.queue(e,t),r=n.length,i=n.shift(),o=k._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){k.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Q.get(e,n)||Q.access(e,n,{empty:k.Callbacks("once memory").add(function(){Q.remove(e,[t+"queue",n])})})}}),k.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?k.queue(this[0],t):void 0===n?this:this.each(function(){var e=k.queue(this,t,n);k._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&k.dequeue(this,t)})},dequeue:function(e){return this.each(function(){k.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=k.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=Q.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var te=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ne=new RegExp("^(?:([+-])=|)("+te+")([a-z%]*)$","i"),re=["Top","Right","Bottom","Left"],ie=E.documentElement,oe=function(e){return k.contains(e.ownerDocument,e)},ae={composed:!0};ie.getRootNode&&(oe=function(e){return k.contains(e.ownerDocument,e)||e.getRootNode(ae)===e.ownerDocument});var se=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&oe(e)&&"none"===k.css(e,"display")},ue=function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];for(o in i=n.apply(e,r||[]),t)e.style[o]=a[o];return i};function le(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return k.css(e,t,"")},u=s(),l=n&&n[3]||(k.cssNumber[t]?"":"px"),c=e.nodeType&&(k.cssNumber[t]||"px"!==l&&+u)&&ne.exec(k.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)k.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,k.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var ce={};function fe(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[c]).style&&(n=r.style.display,t?("none"===n&&(l[c]=Q.get(r,"display")||null,l[c]||(r.style.display="")),""===r.style.display&&se(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ce[s])||(o=a.body.appendChild(a.createElement(s)),u=k.css(o,"display"),o.parentNode.removeChild(o),"none"===u&&(u="block"),ce[s]=u)))):"none"!==n&&(l[c]="none",Q.set(r,"display",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}k.fn.extend({show:function(){return fe(this,!0)},hide:function(){return fe(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){se(this)?k(this).show():k(this).hide()})}});var pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n<r;n++)Q.set(e[n],"globalEval",!t||Q.get(t[n],"globalEval"))}ge.optgroup=ge.option,ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td;var me,xe,be=/<|&#?\w+;/;function we(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===w(o))k.merge(p,o.nodeType?[o]:o);else if(be.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+k.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;k.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&-1<k.inArray(o,r))i&&i.push(o);else if(l=oe(o),a=ve(f.appendChild(o),"script"),l&&ye(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}me=E.createDocumentFragment().appendChild(E.createElement("div")),(xe=E.createElement("input")).setAttribute("type","radio"),xe.setAttribute("checked","checked"),xe.setAttribute("name","t"),me.appendChild(xe),y.checkClone=me.cloneNode(!0).cloneNode(!0).lastChild.checked,me.innerHTML="<textarea>x</textarea>",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t<arguments.length;t++)u[t]=arguments[t];if(s.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,s)){a=k.event.handlers.call(this,s,l),t=0;while((i=a[t++])&&!s.isPropagationStopped()){s.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!s.isImmediatePropagationStopped())s.rnamespace&&!1!==o.namespace&&!s.rnamespace.test(o.namespace)||(s.handleObj=o,s.data=o.data,void 0!==(r=((k.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,u))&&!1===(s.result=r)&&(s.preventDefault(),s.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,s),s.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?-1<k(i,this).index(l):k.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(k.Event.prototype,t,{enumerable:!0,configurable:!0,get:m(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[k.expando]?e:new k.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&De(t,"click",ke),!1},trigger:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&De(t,"click"),!0},_default:function(e){var t=e.target;return pe.test(t.type)&&t.click&&A(t,"input")&&Q.get(t,"click")||A(t,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},k.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},k.Event=function(e,t){if(!(this instanceof k.Event))return new k.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?ke:Se,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&k.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[k.expando]=!0},k.Event.prototype={constructor:k.Event,isDefaultPrevented:Se,isPropagationStopped:Se,isImmediatePropagationStopped:Se,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=ke,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=ke,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=ke,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},k.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(e){var t=e.button;return null==e.which&&Te.test(e.type)?null!=e.charCode?e.charCode:e.keyCode:!e.which&&void 0!==t&&Ce.test(e.type)?1&t?1:2&t?3:4&t?2:0:e.which}},k.event.addProp),k.each({focus:"focusin",blur:"focusout"},function(e,t){k.event.special[e]={setup:function(){return De(this,e,Ne),!1},trigger:function(){return De(this,e),!0},delegateType:t}}),k.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){k.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||k.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),k.fn.extend({on:function(e,t,n,r){return Ae(this,e,t,n,r)},one:function(e,t,n,r){return Ae(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,k(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=Se),this.each(function(){k.event.remove(this,e,n,t)})}});var je=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/<script|<style|<link/i,Le=/checked\s*(?:[^=]|=\s*.checked.)/i,He=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Oe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n<r;n++)k.event.add(t,i,l[i][n]);J.hasData(e)&&(s=J.access(e),u=k.extend({},s),J.set(t,u))}}function Ie(n,r,i,o){r=g.apply([],r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],h=m(d);if(h||1<f&&"string"==typeof d&&!y.checkClone&&Le.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),Ie(t,r,i,o)});if(f&&(t=(e=we(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=k.map(ve(e,"script"),Pe)).length;c<f;c++)u=e,c!==p&&(u=k.clone(u,!0,!0),s&&k.merge(a,ve(u,"script"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,k.map(a,Re),c=0;c<s;c++)u=a[c],he.test(u.type||"")&&!Q.access(u,"globalEval")&&k.contains(l,u)&&(u.src&&"module"!==(u.type||"").toLowerCase()?k._evalUrl&&!u.noModule&&k._evalUrl(u.src,{nonce:u.nonce||u.getAttribute("nonce")}):b(u.textContent.replace(He,""),u,l))}return n}function We(e,t,n){for(var r,i=t?k.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||k.cleanData(ve(r)),r.parentNode&&(n&&oe(r)&&ye(ve(r,"script")),r.parentNode.removeChild(r));return e}k.extend({htmlPrefilter:function(e){return e.replace(je,"<$1></$2>")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r<i;r++)s=o[r],u=a[r],void 0,"input"===(l=u.nodeName.toLowerCase())&&pe.test(s.type)?u.checked=s.checked:"input"!==l&&"textarea"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||ve(e),a=a||ve(c),r=0,i=o.length;r<i;r++)Me(o[r],a[r]);else Me(e,c);return 0<(a=ve(c,"script")).length&&ye(a,!f&&ve(e,"script")),c},cleanData:function(e){for(var t,n,r,i=k.event.special,o=0;void 0!==(n=e[o]);o++)if(G(n)){if(t=n[Q.expando]){if(t.events)for(r in t.events)i[r]?k.event.remove(n,r):k.removeEvent(n,r,t.handle);n[Q.expando]=void 0}n[J.expando]&&(n[J.expando]=void 0)}}}),k.fn.extend({detach:function(e){return We(this,e,!0)},remove:function(e){return We(this,e)},text:function(e){return _(this,function(e){return void 0===e?k.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Ie(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Oe(this,e).appendChild(e)})},prepend:function(){return Ie(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Oe(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Ie(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Ie(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(k.cleanData(ve(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return k.clone(this,e,t)})},html:function(e){return _(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!qe.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=k.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(k.cleanData(ve(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return Ie(this,arguments,function(e){var t=this.parentNode;k.inArray(this,n)<0&&(k.cleanData(ve(this)),t&&t.replaceChild(e,this))},n)}}),k.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,a){k.fn[e]=function(e){for(var t,n=[],r=k(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),k(r[o])[a](t),u.apply(n,t.get());return this.pushStack(n)}});var $e=new RegExp("^("+te+")(?!px)[a-z%]+$","i"),Fe=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=C),t.getComputedStyle(e)},Be=new RegExp(re.join("|"),"i");function _e(e,t,n){var r,i,o,a,s=e.style;return(n=n||Fe(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||oe(e)||(a=k.style(e,t)),!y.pixelBoxStyles()&&$e.test(a)&&Be.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+"":a}function ze(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(u){s.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",u.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",ie.appendChild(s).appendChild(u);var e=C.getComputedStyle(u);n="1%"!==e.top,a=12===t(e.marginLeft),u.style.right="60%",o=36===t(e.right),r=36===t(e.width),u.style.position="absolute",i=12===t(u.offsetWidth/3),ie.removeChild(s),u=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s=E.createElement("div"),u=E.createElement("div");u.style&&(u.style.backgroundClip="content-box",u.cloneNode(!0).style.backgroundClip="",y.clearCloneStyle="content-box"===u.style.backgroundClip,k.extend(y,{boxSizingReliable:function(){return e(),r},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),a},scrollboxSize:function(){return e(),i}}))}();var Ue=["Webkit","Moz","ms"],Xe=E.createElement("div").style,Ve={};function Ge(e){var t=k.cssProps[e]||Ve[e];return t||(e in Xe?e:Ve[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=Ue.length;while(n--)if((e=Ue[n]+t)in Xe)return e}(e)||e)}var Ye=/^(none|table(?!-c[ea]).+)/,Qe=/^--/,Je={position:"absolute",visibility:"hidden",display:"block"},Ke={letterSpacing:"0",fontWeight:"400"};function Ze(e,t,n){var r=ne.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function et(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=k.css(e,n+re[a],!0,i)),r?("content"===n&&(u-=k.css(e,"padding"+re[a],!0,i)),"margin"!==n&&(u-=k.css(e,"border"+re[a]+"Width",!0,i))):(u+=k.css(e,"padding"+re[a],!0,i),"padding"!==n?u+=k.css(e,"border"+re[a]+"Width",!0,i):s+=k.css(e,"border"+re[a]+"Width",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u}function tt(e,t,n){var r=Fe(e),i=(!y.boxSizingReliable()||n)&&"border-box"===k.css(e,"boxSizing",!1,r),o=i,a=_e(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if($e.test(a)){if(!n)return a;a="auto"}return(!y.boxSizingReliable()&&i||"auto"===a||!parseFloat(a)&&"inline"===k.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===k.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+et(e,t,n||(i?"border":"content"),o,r,a)+"px"}function nt(e,t,n,r,i){return new nt.prototype.init(e,t,n,r,i)}k.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=_e(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=V(t),u=Qe.test(t),l=e.style;if(u||(t=Ge(s)),a=k.cssHooks[t]||k.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"===(o=typeof n)&&(i=ne.exec(n))&&i[1]&&(n=le(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(k.cssNumber[s]?"":"px")),y.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=V(t);return Qe.test(t)||(t=Ge(s)),(a=k.cssHooks[t]||k.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=_e(e,t,r)),"normal"===i&&t in Ke&&(i=Ke[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),k.each(["height","width"],function(e,u){k.cssHooks[u]={get:function(e,t,n){if(t)return!Ye.test(k.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?tt(e,u,n):ue(e,Je,function(){return tt(e,u,n)})},set:function(e,t,n){var r,i=Fe(e),o=!y.scrollboxSize()&&"absolute"===i.position,a=(o||n)&&"border-box"===k.css(e,"boxSizing",!1,i),s=n?et(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-et(e,u,"border",!1,i)-.5)),s&&(r=ne.exec(t))&&"px"!==(r[3]||"px")&&(e.style[u]=t,t=k.css(e,u)),Ze(0,t,s)}}}),k.cssHooks.marginLeft=ze(y.reliableMarginLeft,function(e,t){if(t)return(parseFloat(_e(e,"marginLeft"))||e.getBoundingClientRect().left-ue(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),k.each({margin:"",padding:"",border:"Width"},function(i,o){k.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+re[t]+o]=r[t]||r[t-2]||r[0];return n}},"margin"!==i&&(k.cssHooks[i+o].set=Ze)}),k.fn.extend({css:function(e,t){return _(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Fe(e),i=t.length;a<i;a++)o[t[a]]=k.css(e,t[a],!1,r);return o}return void 0!==n?k.style(e,t,n):k.css(e,t)},e,t,1<arguments.length)}}),((k.Tween=nt).prototype={constructor:nt,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||k.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(k.cssNumber[n]?"":"px")},cur:function(){var e=nt.propHooks[this.prop];return e&&e.get?e.get(this):nt.propHooks._default.get(this)},run:function(e){var t,n=nt.propHooks[this.prop];return this.options.duration?this.pos=t=k.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):nt.propHooks._default.set(this),this}}).init.prototype=nt.prototype,(nt.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=k.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){k.fx.step[e.prop]?k.fx.step[e.prop](e):1!==e.elem.nodeType||!k.cssHooks[e.prop]&&null==e.elem.style[Ge(e.prop)]?e.elem[e.prop]=e.now:k.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=nt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},k.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},k.fx=nt.prototype.init,k.fx.step={};var rt,it,ot,at,st=/^(?:toggle|show|hide)$/,ut=/queueHooks$/;function lt(){it&&(!1===E.hidden&&C.requestAnimationFrame?C.requestAnimationFrame(lt):C.setTimeout(lt,k.fx.interval),k.fx.tick())}function ct(){return C.setTimeout(function(){rt=void 0}),rt=Date.now()}function ft(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=re[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function pt(e,t,n){for(var r,i=(dt.tweeners[t]||[]).concat(dt.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function dt(o,e,t){var n,a,r=0,i=dt.prefilters.length,s=k.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=rt||ct(),t=Math.max(0,l.startTime+l.duration-e),n=1-(t/l.duration||0),r=0,i=l.tweens.length;r<i;r++)l.tweens[r].run(n);return s.notifyWith(o,[l,n,t]),n<1&&i?t:(i||s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l]),!1)},l=s.promise({elem:o,props:k.extend({},e),opts:k.extend(!0,{specialEasing:{},easing:k.easing._default},t),originalProperties:e,originalOptions:t,startTime:rt||ct(),duration:t.duration,tweens:[],createTween:function(e,t){var n=k.Tween(o,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(n),n},stop:function(e){var t=0,n=e?l.tweens.length:0;if(a)return this;for(a=!0;t<n;t++)l.tweens[t].run(1);return e?(s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l,e])):s.rejectWith(o,[l,e]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=V(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=k.cssHooks[r])&&"expand"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<i;r++)if(n=dt.prefilters[r].call(l,o,c,l.opts))return m(n.stop)&&(k._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return k.map(c,pt,l),m(l.opts.start)&&l.opts.start.call(o,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),k.fx.timer(k.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}k.Animation=k.extend(dt,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return le(n.elem,e,ne.exec(t),n),n}]},tweener:function(e,t){m(e)?(t=e,e=["*"]):e=e.match(R);for(var n,r=0,i=e.length;r<i;r++)n=e[r],dt.tweeners[n]=dt.tweeners[n]||[],dt.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&se(e),v=Q.get(e,"fxshow");for(r in n.queue||(null==(a=k._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,k.queue(e,"fx").length||a.empty.fire()})})),t)if(i=t[r],st.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!v||void 0===v[r])continue;g=!0}d[r]=v&&v[r]||k.style(e,r)}if((u=!k.isEmptyObject(t))||!k.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=v&&v.display)&&(l=Q.get(e,"display")),"none"===(c=k.css(e,"display"))&&(l?c=l:(fe([e],!0),l=e.style.display||l,c=k.css(e,"display"),fe([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===k.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1,d)u||(v?"hidden"in v&&(g=v.hidden):v=Q.access(e,"fxshow",{display:l}),o&&(v.hidden=!g),g&&fe([e],!0),p.done(function(){for(r in g||fe([e]),Q.remove(e,"fxshow"),d)k.style(e,r,d[r])})),u=pt(g?v[r]:0,r,p),r in v||(v[r]=u.start,g&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?dt.prefilters.unshift(e):dt.prefilters.push(e)}}),k.speed=function(e,t,n){var r=e&&"object"==typeof e?k.extend({},e):{complete:n||!n&&t||m(e)&&e,duration:e,easing:n&&t||t&&!m(t)&&t};return k.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in k.fx.speeds?r.duration=k.fx.speeds[r.duration]:r.duration=k.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){m(r.old)&&r.old.call(this),r.queue&&k.dequeue(this,r.queue)},r},k.fn.extend({fadeTo:function(e,t,n,r){return this.filter(se).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=k.isEmptyObject(t),o=k.speed(e,n,r),a=function(){var e=dt(this,k.extend({},t),o);(i||Q.get(this,"finish"))&&e.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(i,e,o){var a=function(e){var t=e.stop;delete e.stop,t(o)};return"string"!=typeof i&&(o=e,e=i,i=void 0),e&&!1!==i&&this.queue(i||"fx",[]),this.each(function(){var e=!0,t=null!=i&&i+"queueHooks",n=k.timers,r=Q.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&ut.test(t)&&a(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1));!e&&o||k.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||"fx"),this.each(function(){var e,t=Q.get(this),n=t[a+"queue"],r=t[a+"queueHooks"],i=k.timers,o=n?n.length:0;for(t.finish=!0,k.queue(this,a,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===a&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),k.each(["toggle","show","hide"],function(e,r){var i=k.fn[r];k.fn[r]=function(e,t,n){return null==e||"boolean"==typeof e?i.apply(this,arguments):this.animate(ft(r,!0),e,t,n)}}),k.each({slideDown:ft("show"),slideUp:ft("hide"),slideToggle:ft("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,r){k.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),k.timers=[],k.fx.tick=function(){var e,t=0,n=k.timers;for(rt=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||k.fx.stop(),rt=void 0},k.fx.timer=function(e){k.timers.push(e),k.fx.start()},k.fx.interval=13,k.fx.start=function(){it||(it=!0,lt())},k.fx.stop=function(){it=null},k.fx.speeds={slow:600,fast:200,_default:400},k.fn.delay=function(r,e){return r=k.fx&&k.fx.speeds[r]||r,e=e||"fx",this.queue(e,function(e,t){var n=C.setTimeout(e,r);t.stop=function(){C.clearTimeout(n)}})},ot=E.createElement("input"),at=E.createElement("select").appendChild(E.createElement("option")),ot.type="checkbox",y.checkOn=""!==ot.value,y.optSelected=at.selected,(ot=E.createElement("input")).value="t",ot.type="radio",y.radioValue="t"===ot.value;var ht,gt=k.expr.attrHandle;k.fn.extend({attr:function(e,t){return _(this,k.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){k.removeAttr(this,e)})}}),k.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?k.prop(e,t,n):(1===o&&k.isXMLDoc(e)||(i=k.attrHooks[t.toLowerCase()]||(k.expr.match.bool.test(t)?ht:void 0)),void 0!==n?null===n?void k.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=k.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!y.radioValue&&"radio"===t&&A(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(R);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),ht={set:function(e,t,n){return!1===t?k.removeAttr(e,n):e.setAttribute(n,n),n}},k.each(k.expr.match.bool.source.match(/\w+/g),function(e,t){var a=gt[t]||k.find.attr;gt[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=gt[o],gt[o]=r,r=null!=a(e,t,n)?o:null,gt[o]=i),r}});var vt=/^(?:input|select|textarea|button)$/i,yt=/^(?:a|area)$/i;function mt(e){return(e.match(R)||[]).join(" ")}function xt(e){return e.getAttribute&&e.getAttribute("class")||""}function bt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(R)||[]}k.fn.extend({prop:function(e,t){return _(this,k.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[k.propFix[e]||e]})}}),k.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&k.isXMLDoc(e)||(t=k.propFix[t]||t,i=k.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=k.find.attr(e,"tabindex");return t?parseInt(t,10):vt.test(e.nodeName)||yt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),y.optSelected||(k.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),k.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){k.propFix[this.toLowerCase()]=this}),k.fn.extend({addClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){k(this).addClass(t.call(this,e,xt(this)))});if((e=bt(t)).length)while(n=this[u++])if(i=xt(n),r=1===n.nodeType&&" "+mt(i)+" "){a=0;while(o=e[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=mt(r))&&n.setAttribute("class",s)}return this},removeClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){k(this).removeClass(t.call(this,e,xt(this)))});if(!arguments.length)return this.attr("class","");if((e=bt(t)).length)while(n=this[u++])if(i=xt(n),r=1===n.nodeType&&" "+mt(i)+" "){a=0;while(o=e[a++])while(-1<r.indexOf(" "+o+" "))r=r.replace(" "+o+" "," ");i!==(s=mt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(i,t){var o=typeof i,a="string"===o||Array.isArray(i);return"boolean"==typeof t&&a?t?this.addClass(i):this.removeClass(i):m(i)?this.each(function(e){k(this).toggleClass(i.call(this,e,xt(this),t),t)}):this.each(function(){var e,t,n,r;if(a){t=0,n=k(this),r=bt(i);while(e=r[t++])n.hasClass(e)?n.removeClass(e):n.addClass(e)}else void 0!==i&&"boolean"!==o||((e=xt(this))&&Q.set(this,"__className__",e),this.setAttribute&&this.setAttribute("class",e||!1===i?"":Q.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&-1<(" "+mt(xt(n))+" ").indexOf(t))return!0;return!1}});var wt=/\r/g;k.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=m(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,k(this).val()):n)?t="":"number"==typeof t?t+="":Array.isArray(t)&&(t=k.map(t,function(e){return null==e?"":e+""})),(r=k.valHooks[this.type]||k.valHooks[this.nodeName.toLowerCase()])&&"set"in r&&void 0!==r.set(this,t,"value")||(this.value=t))})):t?(r=k.valHooks[t.type]||k.valHooks[t.nodeName.toLowerCase()])&&"get"in r&&void 0!==(e=r.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(wt,""):null==e?"":e:void 0}}),k.extend({valHooks:{option:{get:function(e){var t=k.find.attr(e,"value");return null!=t?t:mt(k.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!A(n.parentNode,"optgroup"))){if(t=k(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=k.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<k.inArray(k.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),k.each(["radio","checkbox"],function(){k.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<k.inArray(k(e).val(),t)}},y.checkOn||(k.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),y.focusin="onfocusin"in C;var Tt=/^(?:focusinfocus|focusoutblur)$/,Ct=function(e){e.stopPropagation()};k.extend(k.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,p=[n||E],d=v.call(e,"type")?e.type:e,h=v.call(e,"namespace")?e.namespace.split("."):[];if(o=f=a=n=n||E,3!==n.nodeType&&8!==n.nodeType&&!Tt.test(d+k.event.triggered)&&(-1<d.indexOf(".")&&(d=(h=d.split(".")).shift(),h.sort()),u=d.indexOf(":")<0&&"on"+d,(e=e[k.expando]?e:new k.Event(d,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=h.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:k.makeArray(t,[e]),c=k.event.special[d]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!x(n)){for(s=c.delegateType||d,Tt.test(s+d)||(o=o.parentNode);o;o=o.parentNode)p.push(o),a=o;a===(n.ownerDocument||E)&&p.push(a.defaultView||a.parentWindow||C)}i=0;while((o=p[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||d,(l=(Q.get(o,"events")||{})[e.type]&&Q.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&G(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=d,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(p.pop(),t)||!G(n)||u&&m(n[d])&&!x(n)&&((a=n[u])&&(n[u]=null),k.event.triggered=d,e.isPropagationStopped()&&f.addEventListener(d,Ct),n[d](),e.isPropagationStopped()&&f.removeEventListener(d,Ct),k.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=k.extend(new k.Event,n,{type:e,isSimulated:!0});k.event.trigger(r,null,t)}}),k.fn.extend({trigger:function(e,t){return this.each(function(){k.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return k.event.trigger(e,t,n,!0)}}),y.focusin||k.each({focus:"focusin",blur:"focusout"},function(n,r){var i=function(e){k.event.simulate(r,e.target,k.event.fix(e))};k.event.special[r]={setup:function(){var e=this.ownerDocument||this,t=Q.access(e,r);t||e.addEventListener(n,i,!0),Q.access(e,r,(t||0)+1)},teardown:function(){var e=this.ownerDocument||this,t=Q.access(e,r)-1;t?Q.access(e,r,t):(e.removeEventListener(n,i,!0),Q.remove(e,r))}}});var Et=C.location,kt=Date.now(),St=/\?/;k.parseXML=function(e){var t;if(!e||"string"!=typeof e)return null;try{t=(new C.DOMParser).parseFromString(e,"text/xml")}catch(e){t=void 0}return t&&!t.getElementsByTagName("parsererror").length||k.error("Invalid XML: "+e),t};var Nt=/\[\]$/,At=/\r?\n/g,Dt=/^(?:submit|button|image|reset|file)$/i,jt=/^(?:input|select|textarea|keygen)/i;function qt(n,e,r,i){var t;if(Array.isArray(e))k.each(e,function(e,t){r||Nt.test(n)?i(n,t):qt(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==w(e))i(n,e);else for(t in e)qt(n+"["+t+"]",e[t],r,i)}k.param=function(e,t){var n,r=[],i=function(e,t){var n=m(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!k.isPlainObject(e))k.each(e,function(){i(this.name,this.value)});else for(n in e)qt(n,e[n],t,i);return r.join("&")},k.fn.extend({serialize:function(){return k.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=k.prop(this,"elements");return e?k.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!k(this).is(":disabled")&&jt.test(this.nodeName)&&!Dt.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=k(this).val();return null==n?null:Array.isArray(n)?k.map(n,function(e){return{name:t.name,value:e.replace(At,"\r\n")}}):{name:t.name,value:n.replace(At,"\r\n")}}).get()}});var Lt=/%20/g,Ht=/#.*$/,Ot=/([?&])_=[^&]*/,Pt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Rt=/^(?:GET|HEAD)$/,Mt=/^\/\//,It={},Wt={},$t="*/".concat("*"),Ft=E.createElement("a");function Bt(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(R)||[];if(m(t))while(n=i[r++])"+"===n[0]?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function _t(t,i,o,a){var s={},u=t===Wt;function l(e){var r;return s[e]=!0,k.each(t[e]||[],function(e,t){var n=t(i,o,a);return"string"!=typeof n||u||s[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!s["*"]&&l("*")}function zt(e,t){var n,r,i=k.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&k.extend(!0,e,r),e}Ft.href=Et.href,k.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Et.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Et.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":$t,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":k.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?zt(zt(e,k.ajaxSettings),t):zt(k.ajaxSettings,e)},ajaxPrefilter:Bt(It),ajaxTransport:Bt(Wt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var c,f,p,n,d,r,h,g,i,o,v=k.ajaxSetup({},t),y=v.context||v,m=v.context&&(y.nodeType||y.jquery)?k(y):k.event,x=k.Deferred(),b=k.Callbacks("once memory"),w=v.statusCode||{},a={},s={},u="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(h){if(!n){n={};while(t=Pt.exec(p))n[t[1].toLowerCase()+" "]=(n[t[1].toLowerCase()+" "]||[]).concat(t[2])}t=n[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return h?p:null},setRequestHeader:function(e,t){return null==h&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==h&&(v.mimeType=e),this},statusCode:function(e){var t;if(e)if(h)T.always(e[T.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(x.promise(T),v.url=((e||v.url||Et.href)+"").replace(Mt,Et.protocol+"//"),v.type=t.method||t.type||v.method||v.type,v.dataTypes=(v.dataType||"*").toLowerCase().match(R)||[""],null==v.crossDomain){r=E.createElement("a");try{r.href=v.url,r.href=r.href,v.crossDomain=Ft.protocol+"//"+Ft.host!=r.protocol+"//"+r.host}catch(e){v.crossDomain=!0}}if(v.data&&v.processData&&"string"!=typeof v.data&&(v.data=k.param(v.data,v.traditional)),_t(It,v,t,T),h)return T;for(i in(g=k.event&&v.global)&&0==k.active++&&k.event.trigger("ajaxStart"),v.type=v.type.toUpperCase(),v.hasContent=!Rt.test(v.type),f=v.url.replace(Ht,""),v.hasContent?v.data&&v.processData&&0===(v.contentType||"").indexOf("application/x-www-form-urlencoded")&&(v.data=v.data.replace(Lt,"+")):(o=v.url.slice(f.length),v.data&&(v.processData||"string"==typeof v.data)&&(f+=(St.test(f)?"&":"?")+v.data,delete v.data),!1===v.cache&&(f=f.replace(Ot,"$1"),o=(St.test(f)?"&":"?")+"_="+kt+++o),v.url=f+o),v.ifModified&&(k.lastModified[f]&&T.setRequestHeader("If-Modified-Since",k.lastModified[f]),k.etag[f]&&T.setRequestHeader("If-None-Match",k.etag[f])),(v.data&&v.hasContent&&!1!==v.contentType||t.contentType)&&T.setRequestHeader("Content-Type",v.contentType),T.setRequestHeader("Accept",v.dataTypes[0]&&v.accepts[v.dataTypes[0]]?v.accepts[v.dataTypes[0]]+("*"!==v.dataTypes[0]?", "+$t+"; q=0.01":""):v.accepts["*"]),v.headers)T.setRequestHeader(i,v.headers[i]);if(v.beforeSend&&(!1===v.beforeSend.call(y,T,v)||h))return T.abort();if(u="abort",b.add(v.complete),T.done(v.success),T.fail(v.error),c=_t(Wt,v,t,T)){if(T.readyState=1,g&&m.trigger("ajaxSend",[T,v]),h)return T;v.async&&0<v.timeout&&(d=C.setTimeout(function(){T.abort("timeout")},v.timeout));try{h=!1,c.send(a,l)}catch(e){if(h)throw e;l(-1,e)}}else l(-1,"No Transport");function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&C.clearTimeout(d),c=void 0,p=r||"",T.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(s=function(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(v,T,n)),s=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(v,s,T,i),i?(v.ifModified&&((u=T.getResponseHeader("Last-Modified"))&&(k.lastModified[f]=u),(u=T.getResponseHeader("etag"))&&(k.etag[f]=u)),204===e||"HEAD"===v.type?l="nocontent":304===e?l="notmodified":(l=s.state,o=s.data,i=!(a=s.error))):(a=l,!e&&l||(l="error",e<0&&(e=0))),T.status=e,T.statusText=(t||l)+"",i?x.resolveWith(y,[o,l,T]):x.rejectWith(y,[T,l,a]),T.statusCode(w),w=void 0,g&&m.trigger(i?"ajaxSuccess":"ajaxError",[T,v,i?o:a]),b.fireWith(y,[T,l]),g&&(m.trigger("ajaxComplete",[T,v]),--k.active||k.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return k.get(e,t,n,"json")},getScript:function(e,t){return k.get(e,void 0,t,"script")}}),k.each(["get","post"],function(e,i){k[i]=function(e,t,n,r){return m(t)&&(r=r||n,n=t,t=void 0),k.ajax(k.extend({url:e,type:i,dataType:r,data:t,success:n},k.isPlainObject(e)&&e))}}),k._evalUrl=function(e,t){return k.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){k.globalEval(e,t)}})},k.fn.extend({wrapAll:function(e){var t;return this[0]&&(m(e)&&(e=e.call(this[0])),t=k(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(n){return m(n)?this.each(function(e){k(this).wrapInner(n.call(this,e))}):this.each(function(){var e=k(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=m(t);return this.each(function(e){k(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not("body").each(function(){k(this).replaceWith(this.childNodes)}),this}}),k.expr.pseudos.hidden=function(e){return!k.expr.pseudos.visible(e)},k.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},k.ajaxSettings.xhr=function(){try{return new C.XMLHttpRequest}catch(e){}};var Ut={0:200,1223:204},Xt=k.ajaxSettings.xhr();y.cors=!!Xt&&"withCredentials"in Xt,y.ajax=Xt=!!Xt,k.ajaxTransport(function(i){var o,a;if(y.cors||Xt&&!i.crossDomain)return{send:function(e,t){var n,r=i.xhr();if(r.open(i.type,i.url,i.async,i.username,i.password),i.xhrFields)for(n in i.xhrFields)r[n]=i.xhrFields[n];for(n in i.mimeType&&r.overrideMimeType&&r.overrideMimeType(i.mimeType),i.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest"),e)r.setRequestHeader(n,e[n]);o=function(e){return function(){o&&(o=a=r.onload=r.onerror=r.onabort=r.ontimeout=r.onreadystatechange=null,"abort"===e?r.abort():"error"===e?"number"!=typeof r.status?t(0,"error"):t(r.status,r.statusText):t(Ut[r.status]||r.status,r.statusText,"text"!==(r.responseType||"text")||"string"!=typeof r.responseText?{binary:r.response}:{text:r.responseText},r.getAllResponseHeaders()))}},r.onload=o(),a=r.onerror=r.ontimeout=o("error"),void 0!==r.onabort?r.onabort=a:r.onreadystatechange=function(){4===r.readyState&&C.setTimeout(function(){o&&a()})},o=o("abort");try{r.send(i.hasContent&&i.data||null)}catch(e){if(o)throw e}},abort:function(){o&&o()}}}),k.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),k.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return k.globalEval(e),e}}}),k.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),k.ajaxTransport("script",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=k("<script>").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1<s&&(r=mt(e.slice(s)),e=e.slice(0,s)),m(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),0<a.length&&k.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?k("<div>").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===k.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){k.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}}),k.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),k.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}}),k.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),m(e))return r=s.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(s.call(arguments)))}).guid=e.guid=e.guid||k.guid++,i},k.holdReady=function(e){e?k.readyWait++:k.ready(!0)},k.isArray=Array.isArray,k.parseJSON=JSON.parse,k.nodeName=A,k.isFunction=m,k.isWindow=x,k.camelCase=V,k.type=w,k.now=Date.now,k.isNumeric=function(e){var t=k.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},"function"==typeof define&&define.amd&&define("jquery",[],function(){return k});var Qt=C.jQuery,Jt=C.$;return k.noConflict=function(e){return C.$===k&&(C.$=Jt),e&&C.jQuery===k&&(C.jQuery=Qt),k},e||(C.jQuery=C.$=k),k});
-/*! jQuery UI - v1.12.1 - 2019-01-27
-* http://jqueryui.com
-* Includes: widget.js, position.js, data.js, disable-selection.js, focusable.js, form-reset-mixin.js, jquery-1-7.js, keycode.js, labels.js, scroll-parent.js, tabbable.js, unique-id.js, widgets/resizable.js, widgets/mouse.js
-* Copyright jQuery Foundation and other contributors; Licensed MIT */
-
-(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)})(function(t){function e(t){for(var e=t.css("visibility");"inherit"===e;)t=t.parent(),e=t.css("visibility");return"hidden"!==e}t.ui=t.ui||{},t.ui.version="1.12.1";var i=0,s=Array.prototype.slice;t.cleanData=function(e){return function(i){var s,n,o;for(o=0;null!=(n=i[o]);o++)try{s=t._data(n,"events"),s&&s.remove&&t(n).triggerHandler("remove")}catch(a){}e(i)}}(t.cleanData),t.widget=function(e,i,s){var n,o,a,r={},h=e.split(".")[0];e=e.split(".")[1];var l=h+"-"+e;return s||(s=i,i=t.Widget),t.isArray(s)&&(s=t.extend.apply(null,[{}].concat(s))),t.expr[":"][l.toLowerCase()]=function(e){return!!t.data(e,l)},t[h]=t[h]||{},n=t[h][e],o=t[h][e]=function(t,e){return this._createWidget?(arguments.length&&this._createWidget(t,e),void 0):new o(t,e)},t.extend(o,n,{version:s.version,_proto:t.extend({},s),_childConstructors:[]}),a=new i,a.options=t.widget.extend({},a.options),t.each(s,function(e,s){return t.isFunction(s)?(r[e]=function(){function t(){return i.prototype[e].apply(this,arguments)}function n(t){return i.prototype[e].apply(this,t)}return function(){var e,i=this._super,o=this._superApply;return this._super=t,this._superApply=n,e=s.apply(this,arguments),this._super=i,this._superApply=o,e}}(),void 0):(r[e]=s,void 0)}),o.prototype=t.widget.extend(a,{widgetEventPrefix:n?a.widgetEventPrefix||e:e},r,{constructor:o,namespace:h,widgetName:e,widgetFullName:l}),n?(t.each(n._childConstructors,function(e,i){var s=i.prototype;t.widget(s.namespace+"."+s.widgetName,o,i._proto)}),delete n._childConstructors):i._childConstructors.push(o),t.widget.bridge(e,o),o},t.widget.extend=function(e){for(var i,n,o=s.call(arguments,1),a=0,r=o.length;r>a;a++)for(i in o[a])n=o[a][i],o[a].hasOwnProperty(i)&&void 0!==n&&(e[i]=t.isPlainObject(n)?t.isPlainObject(e[i])?t.widget.extend({},e[i],n):t.widget.extend({},n):n);return e},t.widget.bridge=function(e,i){var n=i.prototype.widgetFullName||e;t.fn[e]=function(o){var a="string"==typeof o,r=s.call(arguments,1),h=this;return a?this.length||"instance"!==o?this.each(function(){var i,s=t.data(this,n);return"instance"===o?(h=s,!1):s?t.isFunction(s[o])&&"_"!==o.charAt(0)?(i=s[o].apply(s,r),i!==s&&void 0!==i?(h=i&&i.jquery?h.pushStack(i.get()):i,!1):void 0):t.error("no such method '"+o+"' for "+e+" widget instance"):t.error("cannot call methods on "+e+" prior to initialization; "+"attempted to call method '"+o+"'")}):h=void 0:(r.length&&(o=t.widget.extend.apply(null,[o].concat(r))),this.each(function(){var e=t.data(this,n);e?(e.option(o||{}),e._init&&e._init()):t.data(this,n,new i(o,this))})),h}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"<div>",options:{classes:{},disabled:!1,create:null},_createWidget:function(e,s){s=t(s||this.defaultElement||this)[0],this.element=t(s),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},s!==this&&(t.data(s,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===s&&this.destroy()}}),this.document=t(s.style?s.ownerDocument:s.document||s),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),e),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,function(t,i){e._removeClass(i,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var s,n,o,a=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(a={},s=e.split("."),e=s.shift(),s.length){for(n=a[e]=t.widget.extend({},this.options[e]),o=0;s.length-1>o;o++)n[s[o]]=n[s[o]]||{},n=n[s[o]];if(e=s.pop(),1===arguments.length)return void 0===n[e]?null:n[e];n[e]=i}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];a[e]=i}return this._setOptions(a),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return"classes"===t&&this._setOptionClasses(e),this.options[t]=e,"disabled"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(e){var i,s,n;for(i in e)n=this.classesElementLookup[i],e[i]!==this.options.classes[i]&&n&&n.length&&(s=t(n.get()),this._removeClass(n,i),s.addClass(this._classes({element:s,keys:i,classes:e,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!t),t&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(e){function i(i,o){var a,r;for(r=0;i.length>r;r++)a=n.classesElementLookup[i[r]]||t(),a=e.add?t(t.unique(a.get().concat(e.element.get()))):t(a.not(e.element).get()),n.classesElementLookup[i[r]]=a,s.push(i[r]),o&&e.classes[i[r]]&&s.push(e.classes[i[r]])}var s=[],n=this;return e=t.extend({element:this.element,classes:this.options.classes||{}},e),this._on(e.element,{remove:"_untrackClassesElement"}),e.keys&&i(e.keys.match(/\S+/g)||[],!0),e.extra&&i(e.extra.match(/\S+/g)||[]),s.join(" ")},_untrackClassesElement:function(e){var i=this;t.each(i.classesElementLookup,function(s,n){-1!==t.inArray(e.target,n)&&(i.classesElementLookup[s]=t(n.not(e.target).get()))})},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){s="boolean"==typeof s?s:i;var n="string"==typeof t||null===t,o={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s};return o.element.toggleClass(this._classes(o),s),this},_on:function(e,i,s){var n,o=this;"boolean"!=typeof e&&(s=i,i=e,e=!1),s?(i=n=t(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),t.each(s,function(s,a){function r(){return e||o.options.disabled!==!0&&!t(this).hasClass("ui-state-disabled")?("string"==typeof a?o[a]:a).apply(o,arguments):void 0}"string"!=typeof a&&(r.guid=a.guid=a.guid||r.guid||t.guid++);var h=s.match(/^([\w:-]*)\s*(.*)$/),l=h[1]+o.eventNamespace,c=h[2];c?n.on(l,c,r):i.on(l,r)})},_off:function(e,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.off(i).off(i),this.bindings=t(this.bindings.not(e).get()),this.focusable=t(this.focusable.not(e).get()),this.hoverable=t(this.hoverable.not(e).get())},_delay:function(t,e){function i(){return("string"==typeof t?s[t]:t).apply(s,arguments)}var s=this;return setTimeout(i,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){this._addClass(t(e.currentTarget),null,"ui-state-hover")},mouseleave:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){this._addClass(t(e.currentTarget),null,"ui-state-focus")},focusout:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-focus")}})},_trigger:function(e,i,s){var n,o,a=this.options[e];if(s=s||{},i=t.Event(i),i.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(n in o)n in i||(i[n]=o[n]);return this.element.trigger(i,s),!(t.isFunction(a)&&a.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},t.each({show:"fadeIn",hide:"fadeOut"},function(e,i){t.Widget.prototype["_"+e]=function(s,n,o){"string"==typeof n&&(n={effect:n});var a,r=n?n===!0||"number"==typeof n?i:n.effect||i:e;n=n||{},"number"==typeof n&&(n={duration:n}),a=!t.isEmptyObject(n),n.complete=o,n.delay&&s.delay(n.delay),a&&t.effects&&t.effects.effect[r]?s[e](n):r!==e&&s[r]?s[r](n.duration,n.easing,o):s.queue(function(i){t(this)[e](),o&&o.call(s[0]),i()})}}),t.widget,function(){function e(t,e,i){return[parseFloat(t[0])*(u.test(t[0])?e/100:1),parseFloat(t[1])*(u.test(t[1])?i/100:1)]}function i(e,i){return parseInt(t.css(e,i),10)||0}function s(e){var i=e[0];return 9===i.nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:t.isWindow(i)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()}}var n,o=Math.max,a=Math.abs,r=/left|center|right/,h=/top|center|bottom/,l=/[\+\-]\d+(\.[\d]+)?%?/,c=/^\w+/,u=/%$/,d=t.fn.position;t.position={scrollbarWidth:function(){if(void 0!==n)return n;var e,i,s=t("<div style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>"),o=s.children()[0];return t("body").append(s),e=o.offsetWidth,s.css("overflow","scroll"),i=o.offsetWidth,e===i&&(i=s[0].clientWidth),s.remove(),n=e-i},getScrollInfo:function(e){var i=e.isWindow||e.isDocument?"":e.element.css("overflow-x"),s=e.isWindow||e.isDocument?"":e.element.css("overflow-y"),n="scroll"===i||"auto"===i&&e.width<e.element[0].scrollWidth,o="scroll"===s||"auto"===s&&e.height<e.element[0].scrollHeight;return{width:o?t.position.scrollbarWidth():0,height:n?t.position.scrollbarWidth():0}},getWithinInfo:function(e){var i=t(e||window),s=t.isWindow(i[0]),n=!!i[0]&&9===i[0].nodeType,o=!s&&!n;return{element:i,isWindow:s,isDocument:n,offset:o?t(e).offset():{left:0,top:0},scrollLeft:i.scrollLeft(),scrollTop:i.scrollTop(),width:i.outerWidth(),height:i.outerHeight()}}},t.fn.position=function(n){if(!n||!n.of)return d.apply(this,arguments);n=t.extend({},n);var u,p,f,m,g,_,v=t(n.of),b=t.position.getWithinInfo(n.within),y=t.position.getScrollInfo(b),w=(n.collision||"flip").split(" "),x={};return _=s(v),v[0].preventDefault&&(n.at="left top"),p=_.width,f=_.height,m=_.offset,g=t.extend({},m),t.each(["my","at"],function(){var t,e,i=(n[this]||"").split(" ");1===i.length&&(i=r.test(i[0])?i.concat(["center"]):h.test(i[0])?["center"].concat(i):["center","center"]),i[0]=r.test(i[0])?i[0]:"center",i[1]=h.test(i[1])?i[1]:"center",t=l.exec(i[0]),e=l.exec(i[1]),x[this]=[t?t[0]:0,e?e[0]:0],n[this]=[c.exec(i[0])[0],c.exec(i[1])[0]]}),1===w.length&&(w[1]=w[0]),"right"===n.at[0]?g.left+=p:"center"===n.at[0]&&(g.left+=p/2),"bottom"===n.at[1]?g.top+=f:"center"===n.at[1]&&(g.top+=f/2),u=e(x.at,p,f),g.left+=u[0],g.top+=u[1],this.each(function(){var s,r,h=t(this),l=h.outerWidth(),c=h.outerHeight(),d=i(this,"marginLeft"),_=i(this,"marginTop"),k=l+d+i(this,"marginRight")+y.width,C=c+_+i(this,"marginBottom")+y.height,D=t.extend({},g),T=e(x.my,h.outerWidth(),h.outerHeight());"right"===n.my[0]?D.left-=l:"center"===n.my[0]&&(D.left-=l/2),"bottom"===n.my[1]?D.top-=c:"center"===n.my[1]&&(D.top-=c/2),D.left+=T[0],D.top+=T[1],s={marginLeft:d,marginTop:_},t.each(["left","top"],function(e,i){t.ui.position[w[e]]&&t.ui.position[w[e]][i](D,{targetWidth:p,targetHeight:f,elemWidth:l,elemHeight:c,collisionPosition:s,collisionWidth:k,collisionHeight:C,offset:[u[0]+T[0],u[1]+T[1]],my:n.my,at:n.at,within:b,elem:h})}),n.using&&(r=function(t){var e=m.left-D.left,i=e+p-l,s=m.top-D.top,r=s+f-c,u={target:{element:v,left:m.left,top:m.top,width:p,height:f},element:{element:h,left:D.left,top:D.top,width:l,height:c},horizontal:0>i?"left":e>0?"right":"center",vertical:0>r?"top":s>0?"bottom":"middle"};l>p&&p>a(e+i)&&(u.horizontal="center"),c>f&&f>a(s+r)&&(u.vertical="middle"),u.important=o(a(e),a(i))>o(a(s),a(r))?"horizontal":"vertical",n.using.call(this,t,u)}),h.offset(t.extend(D,{using:r}))})},t.ui.position={fit:{left:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=t.left-e.collisionPosition.marginLeft,h=n-r,l=r+e.collisionWidth-a-n;e.collisionWidth>a?h>0&&0>=l?(i=t.left+h+e.collisionWidth-a-n,t.left+=h-i):t.left=l>0&&0>=h?n:h>l?n+a-e.collisionWidth:n:h>0?t.left+=h:l>0?t.left-=l:t.left=o(t.left-r,t.left)},top:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollTop:s.offset.top,a=e.within.height,r=t.top-e.collisionPosition.marginTop,h=n-r,l=r+e.collisionHeight-a-n;e.collisionHeight>a?h>0&&0>=l?(i=t.top+h+e.collisionHeight-a-n,t.top+=h-i):t.top=l>0&&0>=h?n:h>l?n+a-e.collisionHeight:n:h>0?t.top+=h:l>0?t.top-=l:t.top=o(t.top-r,t.top)}},flip:{left:function(t,e){var i,s,n=e.within,o=n.offset.left+n.scrollLeft,r=n.width,h=n.isWindow?n.scrollLeft:n.offset.left,l=t.left-e.collisionPosition.marginLeft,c=l-h,u=l+e.collisionWidth-r-h,d="left"===e.my[0]?-e.elemWidth:"right"===e.my[0]?e.elemWidth:0,p="left"===e.at[0]?e.targetWidth:"right"===e.at[0]?-e.targetWidth:0,f=-2*e.offset[0];0>c?(i=t.left+d+p+f+e.collisionWidth-r-o,(0>i||a(c)>i)&&(t.left+=d+p+f)):u>0&&(s=t.left-e.collisionPosition.marginLeft+d+p+f-h,(s>0||u>a(s))&&(t.left+=d+p+f))},top:function(t,e){var i,s,n=e.within,o=n.offset.top+n.scrollTop,r=n.height,h=n.isWindow?n.scrollTop:n.offset.top,l=t.top-e.collisionPosition.marginTop,c=l-h,u=l+e.collisionHeight-r-h,d="top"===e.my[1],p=d?-e.elemHeight:"bottom"===e.my[1]?e.elemHeight:0,f="top"===e.at[1]?e.targetHeight:"bottom"===e.at[1]?-e.targetHeight:0,m=-2*e.offset[1];0>c?(s=t.top+p+f+m+e.collisionHeight-r-o,(0>s||a(c)>s)&&(t.top+=p+f+m)):u>0&&(i=t.top-e.collisionPosition.marginTop+p+f+m-h,(i>0||u>a(i))&&(t.top+=p+f+m))}},flipfit:{left:function(){t.ui.position.flip.left.apply(this,arguments),t.ui.position.fit.left.apply(this,arguments)},top:function(){t.ui.position.flip.top.apply(this,arguments),t.ui.position.fit.top.apply(this,arguments)}}}}(),t.ui.position,t.extend(t.expr[":"],{data:t.expr.createPseudo?t.expr.createPseudo(function(e){return function(i){return!!t.data(i,e)}}):function(e,i,s){return!!t.data(e,s[3])}}),t.fn.extend({disableSelection:function(){var t="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.on(t+".ui-disableSelection",function(t){t.preventDefault()})}}(),enableSelection:function(){return this.off(".ui-disableSelection")}}),t.ui.focusable=function(i,s){var n,o,a,r,h,l=i.nodeName.toLowerCase();return"area"===l?(n=i.parentNode,o=n.name,i.href&&o&&"map"===n.nodeName.toLowerCase()?(a=t("img[usemap='#"+o+"']"),a.length>0&&a.is(":visible")):!1):(/^(input|select|textarea|button|object)$/.test(l)?(r=!i.disabled,r&&(h=t(i).closest("fieldset")[0],h&&(r=!h.disabled))):r="a"===l?i.href||s:s,r&&t(i).is(":visible")&&e(t(i)))},t.extend(t.expr[":"],{focusable:function(e){return t.ui.focusable(e,null!=t.attr(e,"tabindex"))}}),t.ui.focusable,t.fn.form=function(){return"string"==typeof this[0].form?this.closest("form"):t(this[0].form)},t.ui.formResetMixin={_formResetHandler:function(){var e=t(this);setTimeout(function(){var i=e.data("ui-form-reset-instances");t.each(i,function(){this.refresh()})})},_bindFormResetHandler:function(){if(this.form=this.element.form(),this.form.length){var t=this.form.data("ui-form-reset-instances")||[];t.length||this.form.on("reset.ui-form-reset",this._formResetHandler),t.push(this),this.form.data("ui-form-reset-instances",t)}},_unbindFormResetHandler:function(){if(this.form.length){var e=this.form.data("ui-form-reset-instances");e.splice(t.inArray(this,e),1),e.length?this.form.data("ui-form-reset-instances",e):this.form.removeData("ui-form-reset-instances").off("reset.ui-form-reset")}}},"1.7"===t.fn.jquery.substring(0,3)&&(t.each(["Width","Height"],function(e,i){function s(e,i,s,o){return t.each(n,function(){i-=parseFloat(t.css(e,"padding"+this))||0,s&&(i-=parseFloat(t.css(e,"border"+this+"Width"))||0),o&&(i-=parseFloat(t.css(e,"margin"+this))||0)}),i}var n="Width"===i?["Left","Right"]:["Top","Bottom"],o=i.toLowerCase(),a={innerWidth:t.fn.innerWidth,innerHeight:t.fn.innerHeight,outerWidth:t.fn.outerWidth,outerHeight:t.fn.outerHeight};t.fn["inner"+i]=function(e){return void 0===e?a["inner"+i].call(this):this.each(function(){t(this).css(o,s(this,e)+"px")})},t.fn["outer"+i]=function(e,n){return"number"!=typeof e?a["outer"+i].call(this,e):this.each(function(){t(this).css(o,s(this,e,!0,n)+"px")})}}),t.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),t.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38},t.ui.escapeSelector=function(){var t=/([!"#$%&'()*+,./:;<=>?@[\]^`{|}~])/g;return function(e){return e.replace(t,"\\$1")}}(),t.fn.labels=function(){var e,i,s,n,o;return this[0].labels&&this[0].labels.length?this.pushStack(this[0].labels):(n=this.eq(0).parents("label"),s=this.attr("id"),s&&(e=this.eq(0).parents().last(),o=e.add(e.length?e.siblings():this.siblings()),i="label[for='"+t.ui.escapeSelector(s)+"']",n=n.add(o.find(i).addBack(i))),this.pushStack(n))},t.fn.scrollParent=function(e){var i=this.css("position"),s="absolute"===i,n=e?/(auto|scroll|hidden)/:/(auto|scroll)/,o=this.parents().filter(function(){var e=t(this);return s&&"static"===e.css("position")?!1:n.test(e.css("overflow")+e.css("overflow-y")+e.css("overflow-x"))}).eq(0);return"fixed"!==i&&o.length?o:t(this[0].ownerDocument||document)},t.extend(t.expr[":"],{tabbable:function(e){var i=t.attr(e,"tabindex"),s=null!=i;return(!s||i>=0)&&t.ui.focusable(e,s)}}),t.fn.extend({uniqueId:function(){var t=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++t)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&t(this).removeAttr("id")})}}),t.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase());var n=!1;t(document).on("mouseup",function(){n=!1}),t.widget("ui.mouse",{version:"1.12.1",options:{cancel:"input, textarea, button, select, option",distance:1,delay:0},_mouseInit:function(){var e=this;this.element.on("mousedown."+this.widgetName,function(t){return e._mouseDown(t)}).on("click."+this.widgetName,function(i){return!0===t.data(i.target,e.widgetName+".preventClickEvent")?(t.removeData(i.target,e.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.off("."+this.widgetName),this._mouseMoveDelegate&&this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(e){if(!n){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(e),this._mouseDownEvent=e;var i=this,s=1===e.which,o="string"==typeof this.options.cancel&&e.target.nodeName?t(e.target).closest(this.options.cancel).length:!1;return s&&!o&&this._mouseCapture(e)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){i.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(e)!==!1,!this._mouseStarted)?(e.preventDefault(),!0):(!0===t.data(e.target,this.widgetName+".preventClickEvent")&&t.removeData(e.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(t){return i._mouseMove(t)},this._mouseUpDelegate=function(t){return i._mouseUp(t)},this.document.on("mousemove."+this.widgetName,this._mouseMoveDelegate).on("mouseup."+this.widgetName,this._mouseUpDelegate),e.preventDefault(),n=!0,!0)):!0}},_mouseMove:function(e){if(this._mouseMoved){if(t.ui.ie&&(!document.documentMode||9>document.documentMode)&&!e.button)return this._mouseUp(e);if(!e.which)if(e.originalEvent.altKey||e.originalEvent.ctrlKey||e.originalEvent.metaKey||e.originalEvent.shiftKey)this.ignoreMissingWhich=!0;else if(!this.ignoreMissingWhich)return this._mouseUp(e)}return(e.which||e.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(e),e.preventDefault()):(this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,e)!==!1,this._mouseStarted?this._mouseDrag(e):this._mouseUp(e)),!this._mouseStarted)},_mouseUp:function(e){this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,e.target===this._mouseDownEvent.target&&t.data(e.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(e)),this._mouseDelayTimer&&(clearTimeout(this._mouseDelayTimer),delete this._mouseDelayTimer),this.ignoreMissingWhich=!1,n=!1,e.preventDefault()},_mouseDistanceMet:function(t){return Math.max(Math.abs(this._mouseDownEvent.pageX-t.pageX),Math.abs(this._mouseDownEvent.pageY-t.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),t.ui.plugin={add:function(e,i,s){var n,o=t.ui[e].prototype;for(n in s)o.plugins[n]=o.plugins[n]||[],o.plugins[n].push([i,s[n]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;o.length>n;n++)t.options[o[n][0]]&&o[n][1].apply(t.element,i)}},t.widget("ui.resizable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,classes:{"ui-resizable-se":"ui-icon ui-icon-gripsmall-diagonal-se"},containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(t){return parseFloat(t)||0},_isNumber:function(t){return!isNaN(parseFloat(t))},_hasScroll:function(e,i){if("hidden"===t(e).css("overflow"))return!1;var s=i&&"left"===i?"scrollLeft":"scrollTop",n=!1;return e[s]>0?!0:(e[s]=1,n=e[s]>0,e[s]=0,n)},_create:function(){var e,i=this.options,s=this;this._addClass("ui-resizable"),t.extend(this,{_aspectRatio:!!i.aspectRatio,aspectRatio:i.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:i.helper||i.ghost||i.animate?i.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(t("<div class='ui-wrapper' style='overflow: hidden;'></div>").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,e={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(e),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(e),this._proportionallyResize()),this._setupHandles(),i.autoHide&&t(this.element).on("mouseenter",function(){i.disabled||(s._removeClass("ui-resizable-autohide"),s._handles.show())}).on("mouseleave",function(){i.disabled||s.resizing||(s._addClass("ui-resizable-autohide"),s._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy();var e,i=function(e){t(e).removeData("resizable").removeData("ui-resizable").off(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(i(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),i(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;default:}},_setupHandles:function(){var e,i,s,n,o,a=this.options,r=this;if(this.handles=a.handles||(t(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=t(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),s=this.handles.split(","),this.handles={},i=0;s.length>i;i++)e=t.trim(s[i]),n="ui-resizable-"+e,o=t("<div>"),this._addClass(o,"ui-resizable-handle "+n),o.css({zIndex:a.zIndex}),this.handles[e]=".ui-resizable-"+e,this.element.append(o);this._renderAxis=function(e){var i,s,n,o;e=e||this.element;for(i in this.handles)this.handles[i].constructor===String?this.handles[i]=this.element.children(this.handles[i]).first().show():(this.handles[i].jquery||this.handles[i].nodeType)&&(this.handles[i]=t(this.handles[i]),this._on(this.handles[i],{mousedown:r._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(s=t(this.handles[i],this.element),o=/sw|ne|nw|se|n|s/.test(i)?s.outerHeight():s.outerWidth(),n=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join(""),e.css(n,o),this._proportionallyResize()),this._handles=this._handles.add(this.handles[i])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){r.resizing||(this.className&&(o=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),r.axis=o&&o[1]?o[1]:"se")}),a.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._handles.remove()},_mouseCapture:function(e){var i,s,n=!1;for(i in this.handles)s=t(this.handles[i])[0],(s===e.target||t.contains(s,e.target))&&(n=!0);return!this.options.disabled&&n},_mouseStart:function(e){var i,s,n,o=this.options,a=this.element;return this.resizing=!0,this._renderProxy(),i=this._num(this.helper.css("left")),s=this._num(this.helper.css("top")),o.containment&&(i+=t(o.containment).scrollLeft()||0,s+=t(o.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:i,top:s},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:a.width(),height:a.height()},this.originalSize=this._helper?{width:a.outerWidth(),height:a.outerHeight()}:{width:a.width(),height:a.height()},this.sizeDiff={width:a.outerWidth()-a.width(),height:a.outerHeight()-a.height()},this.originalPosition={left:i,top:s},this.originalMousePosition={left:e.pageX,top:e.pageY},this.aspectRatio="number"==typeof o.aspectRatio?o.aspectRatio:this.originalSize.width/this.originalSize.height||1,n=t(".ui-resizable-"+this.axis).css("cursor"),t("body").css("cursor","auto"===n?this.axis+"-resize":n),this._addClass("ui-resizable-resizing"),this._propagate("start",e),!0},_mouseDrag:function(e){var i,s,n=this.originalMousePosition,o=this.axis,a=e.pageX-n.left||0,r=e.pageY-n.top||0,h=this._change[o];return this._updatePrevProperties(),h?(i=h.apply(this,[e,a,r]),this._updateVirtualBoundaries(e.shiftKey),(this._aspectRatio||e.shiftKey)&&(i=this._updateRatio(i,e)),i=this._respectSize(i,e),this._updateCache(i),this._propagate("resize",e),s=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),t.isEmptyObject(s)||(this._updatePrevProperties(),this._trigger("resize",e,this.ui()),this._applyChanges()),!1):!1},_mouseStop:function(e){this.resizing=!1;var i,s,n,o,a,r,h,l=this.options,c=this;return this._helper&&(i=this._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),n=s&&this._hasScroll(i[0],"left")?0:c.sizeDiff.height,o=s?0:c.sizeDiff.width,a={width:c.helper.width()-o,height:c.helper.height()-n},r=parseFloat(c.element.css("left"))+(c.position.left-c.originalPosition.left)||null,h=parseFloat(c.element.css("top"))+(c.position.top-c.originalPosition.top)||null,l.animate||this.element.css(t.extend(a,{top:h,left:r})),c.helper.height(c.size.height),c.helper.width(c.size.width),this._helper&&!l.animate&&this._proportionallyResize()),t("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",e),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s,n,o,a=this.options;o={minWidth:this._isNumber(a.minWidth)?a.minWidth:0,maxWidth:this._isNumber(a.maxWidth)?a.maxWidth:1/0,minHeight:this._isNumber(a.minHeight)?a.minHeight:0,maxHeight:this._isNumber(a.maxHeight)?a.maxHeight:1/0},(this._aspectRatio||t)&&(e=o.minHeight*this.aspectRatio,s=o.minWidth/this.aspectRatio,i=o.maxHeight*this.aspectRatio,n=o.maxWidth/this.aspectRatio,e>o.minWidth&&(o.minWidth=e),s>o.minHeight&&(o.minHeight=s),o.maxWidth>i&&(o.maxWidth=i),o.maxHeight>n&&(o.maxHeight=n)),this._vBoundaries=o},_updateCache:function(t){this.offset=this.helper.offset(),this._isNumber(t.left)&&(this.position.left=t.left),this._isNumber(t.top)&&(this.position.top=t.top),this._isNumber(t.height)&&(this.size.height=t.height),this._isNumber(t.width)&&(this.size.width=t.width)},_updateRatio:function(t){var e=this.position,i=this.size,s=this.axis;return this._isNumber(t.height)?t.width=t.height*this.aspectRatio:this._isNumber(t.width)&&(t.height=t.width/this.aspectRatio),"sw"===s&&(t.left=e.left+(i.width-t.width),t.top=null),"nw"===s&&(t.top=e.top+(i.height-t.height),t.left=e.left+(i.width-t.width)),t},_respectSize:function(t){var e=this._vBoundaries,i=this.axis,s=this._isNumber(t.width)&&e.maxWidth&&e.maxWidth<t.width,n=this._isNumber(t.height)&&e.maxHeight&&e.maxHeight<t.height,o=this._isNumber(t.width)&&e.minWidth&&e.minWidth>t.width,a=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,r=this.originalPosition.left+this.originalSize.width,h=this.originalPosition.top+this.originalSize.height,l=/sw|nw|w/.test(i),c=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),a&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=r-e.minWidth),s&&l&&(t.left=r-e.maxWidth),a&&c&&(t.top=h-e.minHeight),n&&c&&(t.top=h-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];4>e;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;this._proportionallyResizeElements.length>e;e++)t=this._proportionallyResizeElements[e],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(t)),t.css({height:i.height()-this.outerDimensions.height||0,width:i.width()-this.outerDimensions.width||0})},_renderProxy:function(){var e=this.element,i=this.options;this.elementOffset=e.offset(),this._helper?(this.helper=this.helper||t("<div style='overflow:hidden;'></div>"),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++i.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element
-},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize,s=this.originalPosition;return{left:s.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize,n=this.originalPosition;return{top:n.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},sw:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[e,i,s]))},ne:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},nw:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[e,i,s]))}},_propagate:function(e,i){t.ui.plugin.call(this,e,[i,this.ui()]),"resize"!==e&&this._trigger(e,i,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),t.ui.plugin.add("resizable","animate",{stop:function(e){var i=t(this).resizable("instance"),s=i.options,n=i._proportionallyResizeElements,o=n.length&&/textarea/i.test(n[0].nodeName),a=o&&i._hasScroll(n[0],"left")?0:i.sizeDiff.height,r=o?0:i.sizeDiff.width,h={width:i.size.width-r,height:i.size.height-a},l=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,c=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(t.extend(h,c&&l?{top:c,left:l}:{}),{duration:s.animateDuration,easing:s.animateEasing,step:function(){var s={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};n&&n.length&&t(n[0]).css({width:s.width,height:s.height}),i._updateCache(s),i._propagate("resize",e)}})}}),t.ui.plugin.add("resizable","containment",{start:function(){var e,i,s,n,o,a,r,h=t(this).resizable("instance"),l=h.options,c=h.element,u=l.containment,d=u instanceof t?u.get(0):/parent/.test(u)?c.parent().get(0):u;d&&(h.containerElement=t(d),/document/.test(u)||u===document?(h.containerOffset={left:0,top:0},h.containerPosition={left:0,top:0},h.parentData={element:t(document),left:0,top:0,width:t(document).width(),height:t(document).height()||document.body.parentNode.scrollHeight}):(e=t(d),i=[],t(["Top","Right","Left","Bottom"]).each(function(t,s){i[t]=h._num(e.css("padding"+s))}),h.containerOffset=e.offset(),h.containerPosition=e.position(),h.containerSize={height:e.innerHeight()-i[3],width:e.innerWidth()-i[1]},s=h.containerOffset,n=h.containerSize.height,o=h.containerSize.width,a=h._hasScroll(d,"left")?d.scrollWidth:o,r=h._hasScroll(d)?d.scrollHeight:n,h.parentData={element:d,left:s.left,top:s.top,width:a,height:r}))},resize:function(e){var i,s,n,o,a=t(this).resizable("instance"),r=a.options,h=a.containerOffset,l=a.position,c=a._aspectRatio||e.shiftKey,u={top:0,left:0},d=a.containerElement,p=!0;d[0]!==document&&/static/.test(d.css("position"))&&(u=h),l.left<(a._helper?h.left:0)&&(a.size.width=a.size.width+(a._helper?a.position.left-h.left:a.position.left-u.left),c&&(a.size.height=a.size.width/a.aspectRatio,p=!1),a.position.left=r.helper?h.left:0),l.top<(a._helper?h.top:0)&&(a.size.height=a.size.height+(a._helper?a.position.top-h.top:a.position.top),c&&(a.size.width=a.size.height*a.aspectRatio,p=!1),a.position.top=a._helper?h.top:0),n=a.containerElement.get(0)===a.element.parent().get(0),o=/relative|absolute/.test(a.containerElement.css("position")),n&&o?(a.offset.left=a.parentData.left+a.position.left,a.offset.top=a.parentData.top+a.position.top):(a.offset.left=a.element.offset().left,a.offset.top=a.element.offset().top),i=Math.abs(a.sizeDiff.width+(a._helper?a.offset.left-u.left:a.offset.left-h.left)),s=Math.abs(a.sizeDiff.height+(a._helper?a.offset.top-u.top:a.offset.top-h.top)),i+a.size.width>=a.parentData.width&&(a.size.width=a.parentData.width-i,c&&(a.size.height=a.size.width/a.aspectRatio,p=!1)),s+a.size.height>=a.parentData.height&&(a.size.height=a.parentData.height-s,c&&(a.size.width=a.size.height*a.aspectRatio,p=!1)),p||(a.position.left=a.prevPosition.left,a.position.top=a.prevPosition.top,a.size.width=a.prevSize.width,a.size.height=a.prevSize.height)},stop:function(){var e=t(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.containerPosition,o=e.containerElement,a=t(e.helper),r=a.offset(),h=a.outerWidth()-e.sizeDiff.width,l=a.outerHeight()-e.sizeDiff.height;e._helper&&!i.animate&&/relative/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l}),e._helper&&!i.animate&&/static/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l})}}),t.ui.plugin.add("resizable","alsoResize",{start:function(){var e=t(this).resizable("instance"),i=e.options;t(i.alsoResize).each(function(){var e=t(this);e.data("ui-resizable-alsoresize",{width:parseFloat(e.width()),height:parseFloat(e.height()),left:parseFloat(e.css("left")),top:parseFloat(e.css("top"))})})},resize:function(e,i){var s=t(this).resizable("instance"),n=s.options,o=s.originalSize,a=s.originalPosition,r={height:s.size.height-o.height||0,width:s.size.width-o.width||0,top:s.position.top-a.top||0,left:s.position.left-a.left||0};t(n.alsoResize).each(function(){var e=t(this),s=t(this).data("ui-resizable-alsoresize"),n={},o=e.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];t.each(o,function(t,e){var i=(s[e]||0)+(r[e]||0);i&&i>=0&&(n[e]=i||null)}),e.css(n)})},stop:function(){t(this).removeData("ui-resizable-alsoresize")}}),t.ui.plugin.add("resizable","ghost",{start:function(){var e=t(this).resizable("instance"),i=e.size;e.ghost=e.originalElement.clone(),e.ghost.css({opacity:.25,display:"block",position:"relative",height:i.height,width:i.width,margin:0,left:0,top:0}),e._addClass(e.ghost,"ui-resizable-ghost"),t.uiBackCompat!==!1&&"string"==typeof e.options.ghost&&e.ghost.addClass(this.options.ghost),e.ghost.appendTo(e.helper)},resize:function(){var e=t(this).resizable("instance");e.ghost&&e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})},stop:function(){var e=t(this).resizable("instance");e.ghost&&e.helper&&e.helper.get(0).removeChild(e.ghost.get(0))}}),t.ui.plugin.add("resizable","grid",{resize:function(){var e,i=t(this).resizable("instance"),s=i.options,n=i.size,o=i.originalSize,a=i.originalPosition,r=i.axis,h="number"==typeof s.grid?[s.grid,s.grid]:s.grid,l=h[0]||1,c=h[1]||1,u=Math.round((n.width-o.width)/l)*l,d=Math.round((n.height-o.height)/c)*c,p=o.width+u,f=o.height+d,m=s.maxWidth&&p>s.maxWidth,g=s.maxHeight&&f>s.maxHeight,_=s.minWidth&&s.minWidth>p,v=s.minHeight&&s.minHeight>f;s.grid=h,_&&(p+=l),v&&(f+=c),m&&(p-=l),g&&(f-=c),/^(se|s|e)$/.test(r)?(i.size.width=p,i.size.height=f):/^(ne)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.top=a.top-d):/^(sw)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.left=a.left-u):((0>=f-c||0>=p-l)&&(e=i._getPaddingPlusBorderDimensions(this)),f-c>0?(i.size.height=f,i.position.top=a.top-d):(f=c-e.height,i.size.height=f,i.position.top=a.top+o.height-f),p-l>0?(i.size.width=p,i.position.left=a.left-u):(p=l-e.width,i.size.width=p,i.position.left=a.left+o.width-p))}}),t.ui.resizable});/**
- * Copyright (c) 2007 Ariel Flesler - aflesler â—‹ gmail • com | https://github.com/flesler
- * Licensed under MIT
- * @author Ariel Flesler
- * @version 2.1.2
- */
-;(function(f){"use strict";"function"===typeof define&&define.amd?define(["jquery"],f):"undefined"!==typeof module&&module.exports?module.exports=f(require("jquery")):f(jQuery)})(function($){"use strict";function n(a){return!a.nodeName||-1!==$.inArray(a.nodeName.toLowerCase(),["iframe","#document","html","body"])}function h(a){return $.isFunction(a)||$.isPlainObject(a)?a:{top:a,left:a}}var p=$.scrollTo=function(a,d,b){return $(window).scrollTo(a,d,b)};p.defaults={axis:"xy",duration:0,limit:!0};$.fn.scrollTo=function(a,d,b){"object"=== typeof d&&(b=d,d=0);"function"===typeof b&&(b={onAfter:b});"max"===a&&(a=9E9);b=$.extend({},p.defaults,b);d=d||b.duration;var u=b.queue&&1<b.axis.length;u&&(d/=2);b.offset=h(b.offset);b.over=h(b.over);return this.each(function(){function k(a){var k=$.extend({},b,{queue:!0,duration:d,complete:a&&function(){a.call(q,e,b)}});r.animate(f,k)}if(null!==a){var l=n(this),q=l?this.contentWindow||window:this,r=$(q),e=a,f={},t;switch(typeof e){case "number":case "string":if(/^([+-]=?)?\d+(\.\d+)?(px|%)?$/.test(e)){e= h(e);break}e=l?$(e):$(e,q);case "object":if(e.length===0)return;if(e.is||e.style)t=(e=$(e)).offset()}var v=$.isFunction(b.offset)&&b.offset(q,e)||b.offset;$.each(b.axis.split(""),function(a,c){var d="x"===c?"Left":"Top",m=d.toLowerCase(),g="scroll"+d,h=r[g](),n=p.max(q,c);t?(f[g]=t[m]+(l?0:h-r.offset()[m]),b.margin&&(f[g]-=parseInt(e.css("margin"+d),10)||0,f[g]-=parseInt(e.css("border"+d+"Width"),10)||0),f[g]+=v[m]||0,b.over[m]&&(f[g]+=e["x"===c?"width":"height"]()*b.over[m])):(d=e[m],f[g]=d.slice&& "%"===d.slice(-1)?parseFloat(d)/100*n:d);b.limit&&/^\d+$/.test(f[g])&&(f[g]=0>=f[g]?0:Math.min(f[g],n));!a&&1<b.axis.length&&(h===f[g]?f={}:u&&(k(b.onAfterFirst),f={}))});k(b.onAfter)}})};p.max=function(a,d){var b="x"===d?"Width":"Height",h="scroll"+b;if(!n(a))return a[h]-$(a)[b.toLowerCase()]();var b="client"+b,k=a.ownerDocument||a.document,l=k.documentElement,k=k.body;return Math.max(l[h],k[h])-Math.min(l[b],k[b])};$.Tween.propHooks.scrollLeft=$.Tween.propHooks.scrollTop={get:function(a){return $(a.elem)[a.prop]()}, set:function(a){var d=this.get(a);if(a.options.interrupt&&a._last&&a._last!==d)return $(a.elem).stop();var b=Math.round(a.now);d!==b&&($(a.elem)[a.prop](b),a._last=this.get(a))}};return p});
-/*!
- PowerTip v1.3.1 (2018-04-15)
- https://stevenbenner.github.io/jquery-powertip/
- Copyright (c) 2018 Steven Benner (http://stevenbenner.com/).
- Released under MIT license.
- https://raw.github.com/stevenbenner/jquery-powertip/master/LICENSE.txt
-*/
-(function(root,factory){if(typeof define==="function"&&define.amd){define(["jquery"],factory)}else if(typeof module==="object"&&module.exports){module.exports=factory(require("jquery"))}else{factory(root.jQuery)}})(this,function($){var $document=$(document),$window=$(window),$body=$("body");var DATA_DISPLAYCONTROLLER="displayController",DATA_HASACTIVEHOVER="hasActiveHover",DATA_FORCEDOPEN="forcedOpen",DATA_HASMOUSEMOVE="hasMouseMove",DATA_MOUSEONTOTIP="mouseOnToPopup",DATA_ORIGINALTITLE="originalTitle",DATA_POWERTIP="powertip",DATA_POWERTIPJQ="powertipjq",DATA_POWERTIPTARGET="powertiptarget",EVENT_NAMESPACE=".powertip",RAD2DEG=180/Math.PI,MOUSE_EVENTS=["click","dblclick","mousedown","mouseup","mousemove","mouseover","mouseout","mouseenter","mouseleave","contextmenu"];var session={tooltips:null,isTipOpen:false,isFixedTipOpen:false,isClosing:false,tipOpenImminent:false,activeHover:null,currentX:0,currentY:0,previousX:0,previousY:0,desyncTimeout:null,closeDelayTimeout:null,mouseTrackingActive:false,delayInProgress:false,windowWidth:0,windowHeight:0,scrollTop:0,scrollLeft:0};var Collision={none:0,top:1,bottom:2,left:4,right:8};$.fn.powerTip=function(opts,arg){var targetElements=this,options,tipController;if(!targetElements.length){return targetElements}if($.type(opts)==="string"&&$.powerTip[opts]){return $.powerTip[opts].call(targetElements,targetElements,arg)}options=$.extend({},$.fn.powerTip.defaults,opts);tipController=new TooltipController(options);initTracking();targetElements.each(function elementSetup(){var $this=$(this),dataPowertip=$this.data(DATA_POWERTIP),dataElem=$this.data(DATA_POWERTIPJQ),dataTarget=$this.data(DATA_POWERTIPTARGET),title=$this.attr("title");if(!dataPowertip&&!dataTarget&&!dataElem&&title){$this.data(DATA_POWERTIP,title);$this.data(DATA_ORIGINALTITLE,title);$this.removeAttr("title")}$this.data(DATA_DISPLAYCONTROLLER,new DisplayController($this,options,tipController))});if(!options.manual){$.each(options.openEvents,function(idx,evt){if($.inArray(evt,options.closeEvents)>-1){targetElements.on(evt+EVENT_NAMESPACE,function elementToggle(event){$.powerTip.toggle(this,event)})}else{targetElements.on(evt+EVENT_NAMESPACE,function elementOpen(event){$.powerTip.show(this,event)})}});$.each(options.closeEvents,function(idx,evt){if($.inArray(evt,options.openEvents)<0){targetElements.on(evt+EVENT_NAMESPACE,function elementClose(event){$.powerTip.hide(this,!isMouseEvent(event))})}});targetElements.on("keydown"+EVENT_NAMESPACE,function elementKeyDown(event){if(event.keyCode===27){$.powerTip.hide(this,true)}})}return targetElements};$.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",popupClass:null,intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false,openEvents:["mouseenter","focus"],closeEvents:["mouseleave","blur"]};$.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se","n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};$.powerTip={show:function apiShowTip(element,event){if(isMouseEvent(event)){trackMouse(event);session.previousX=event.pageX;session.previousY=event.pageY;$(element).data(DATA_DISPLAYCONTROLLER).show()}else{$(element).first().data(DATA_DISPLAYCONTROLLER).show(true,true)}return element},reposition:function apiResetPosition(element){$(element).first().data(DATA_DISPLAYCONTROLLER).resetPosition();return element},hide:function apiCloseTip(element,immediate){var displayController;immediate=element?immediate:true;if(element){displayController=$(element).first().data(DATA_DISPLAYCONTROLLER)}else if(session.activeHover){displayController=session.activeHover.data(DATA_DISPLAYCONTROLLER)}if(displayController){displayController.hide(immediate)}return element},toggle:function apiToggle(element,event){if(session.activeHover&&session.activeHover.is(element)){$.powerTip.hide(element,!isMouseEvent(event))}else{$.powerTip.show(element,event)}return element}};$.powerTip.showTip=$.powerTip.show;$.powerTip.closeTip=$.powerTip.hide;function CSSCoordinates(){var me=this;me.top="auto";me.left="auto";me.right="auto";me.bottom="auto";me.set=function(property,value){if($.isNumeric(value)){me[property]=Math.round(value)}}}function DisplayController(element,options,tipController){var hoverTimer=null,myCloseDelay=null;function openTooltip(immediate,forceOpen){cancelTimer();if(!element.data(DATA_HASACTIVEHOVER)){if(!immediate){session.tipOpenImminent=true;hoverTimer=setTimeout(function intentDelay(){hoverTimer=null;checkForIntent()},options.intentPollInterval)}else{if(forceOpen){element.data(DATA_FORCEDOPEN,true)}closeAnyDelayed();tipController.showTip(element)}}else{cancelClose()}}function closeTooltip(disableDelay){if(myCloseDelay){myCloseDelay=session.closeDelayTimeout=clearTimeout(myCloseDelay);session.delayInProgress=false}cancelTimer();session.tipOpenImminent=false;if(element.data(DATA_HASACTIVEHOVER)){element.data(DATA_FORCEDOPEN,false);if(!disableDelay){session.delayInProgress=true;session.closeDelayTimeout=setTimeout(function closeDelay(){session.closeDelayTimeout=null;tipController.hideTip(element);session.delayInProgress=false;myCloseDelay=null},options.closeDelay);myCloseDelay=session.closeDelayTimeout}else{tipController.hideTip(element)}}}function checkForIntent(){var xDifference=Math.abs(session.previousX-session.currentX),yDifference=Math.abs(session.previousY-session.currentY),totalDifference=xDifference+yDifference;if(totalDifference<options.intentSensitivity){cancelClose();closeAnyDelayed();tipController.showTip(element)}else{session.previousX=session.currentX;session.previousY=session.currentY;openTooltip()}}function cancelTimer(stopClose){hoverTimer=clearTimeout(hoverTimer);if(session.closeDelayTimeout&&myCloseDelay===session.closeDelayTimeout||stopClose){cancelClose()}}function cancelClose(){session.closeDelayTimeout=clearTimeout(session.closeDelayTimeout);session.delayInProgress=false}function closeAnyDelayed(){if(session.delayInProgress&&session.activeHover&&!session.activeHover.is(element)){session.activeHover.data(DATA_DISPLAYCONTROLLER).hide(true)}}function repositionTooltip(){tipController.resetPosition(element)}this.show=openTooltip;this.hide=closeTooltip;this.cancel=cancelTimer;this.resetPosition=repositionTooltip}function PlacementCalculator(){function computePlacementCoords(element,placement,tipWidth,tipHeight,offset){var placementBase=placement.split("-")[0],coords=new CSSCoordinates,position;if(isSvgElement(element)){position=getSvgPlacement(element,placementBase)}else{position=getHtmlPlacement(element,placementBase)}switch(placement){case"n":coords.set("left",position.left-tipWidth/2);coords.set("bottom",session.windowHeight-position.top+offset);break;case"e":coords.set("left",position.left+offset);coords.set("top",position.top-tipHeight/2);break;case"s":coords.set("left",position.left-tipWidth/2);coords.set("top",position.top+offset);break;case"w":coords.set("top",position.top-tipHeight/2);coords.set("right",session.windowWidth-position.left+offset);break;case"nw":coords.set("bottom",session.windowHeight-position.top+offset);coords.set("right",session.windowWidth-position.left-20);break;case"nw-alt":coords.set("left",position.left);coords.set("bottom",session.windowHeight-position.top+offset);break;case"ne":coords.set("left",position.left-20);coords.set("bottom",session.windowHeight-position.top+offset);break;case"ne-alt":coords.set("bottom",session.windowHeight-position.top+offset);coords.set("right",session.windowWidth-position.left);break;case"sw":coords.set("top",position.top+offset);coords.set("right",session.windowWidth-position.left-20);break;case"sw-alt":coords.set("left",position.left);coords.set("top",position.top+offset);break;case"se":coords.set("left",position.left-20);coords.set("top",position.top+offset);break;case"se-alt":coords.set("top",position.top+offset);coords.set("right",session.windowWidth-position.left);break}return coords}function getHtmlPlacement(element,placement){var objectOffset=element.offset(),objectWidth=element.outerWidth(),objectHeight=element.outerHeight(),left,top;switch(placement){case"n":left=objectOffset.left+objectWidth/2;top=objectOffset.top;break;case"e":left=objectOffset.left+objectWidth;top=objectOffset.top+objectHeight/2;break;case"s":left=objectOffset.left+objectWidth/2;top=objectOffset.top+objectHeight;break;case"w":left=objectOffset.left;top=objectOffset.top+objectHeight/2;break;case"nw":left=objectOffset.left;top=objectOffset.top;break;case"ne":left=objectOffset.left+objectWidth;top=objectOffset.top;break;case"sw":left=objectOffset.left;top=objectOffset.top+objectHeight;break;case"se":left=objectOffset.left+objectWidth;top=objectOffset.top+objectHeight;break}return{top:top,left:left}}function getSvgPlacement(element,placement){var svgElement=element.closest("svg")[0],domElement=element[0],point=svgElement.createSVGPoint(),boundingBox=domElement.getBBox(),matrix=domElement.getScreenCTM(),halfWidth=boundingBox.width/2,halfHeight=boundingBox.height/2,placements=[],placementKeys=["nw","n","ne","e","se","s","sw","w"],coords,rotation,steps,x;function pushPlacement(){placements.push(point.matrixTransform(matrix))}point.x=boundingBox.x;point.y=boundingBox.y;pushPlacement();point.x+=halfWidth;pushPlacement();point.x+=halfWidth;pushPlacement();point.y+=halfHeight;pushPlacement();point.y+=halfHeight;pushPlacement();point.x-=halfWidth;pushPlacement();point.x-=halfWidth;pushPlacement();point.y-=halfHeight;pushPlacement();if(placements[0].y!==placements[1].y||placements[0].x!==placements[7].x){rotation=Math.atan2(matrix.b,matrix.a)*RAD2DEG;steps=Math.ceil((rotation%360-22.5)/45);if(steps<1){steps+=8}while(steps--){placementKeys.push(placementKeys.shift())}}for(x=0;x<placements.length;x++){if(placementKeys[x]===placement){coords=placements[x];break}}return{top:coords.y+session.scrollTop,left:coords.x+session.scrollLeft}}this.compute=computePlacementCoords}function TooltipController(options){var placementCalculator=new PlacementCalculator,tipElement=$("#"+options.popupId);if(tipElement.length===0){tipElement=$("<div/>",{id:options.popupId});if($body.length===0){$body=$("body")}$body.append(tipElement);session.tooltips=session.tooltips?session.tooltips.add(tipElement):tipElement}if(options.followMouse){if(!tipElement.data(DATA_HASMOUSEMOVE)){$document.on("mousemove"+EVENT_NAMESPACE,positionTipOnCursor);$window.on("scroll"+EVENT_NAMESPACE,positionTipOnCursor);tipElement.data(DATA_HASMOUSEMOVE,true)}}function beginShowTip(element){element.data(DATA_HASACTIVEHOVER,true);tipElement.queue(function queueTipInit(next){showTip(element);next()})}function showTip(element){var tipContent;if(!element.data(DATA_HASACTIVEHOVER)){return}if(session.isTipOpen){if(!session.isClosing){hideTip(session.activeHover)}tipElement.delay(100).queue(function queueTipAgain(next){showTip(element);next()});return}element.trigger("powerTipPreRender");tipContent=getTooltipContent(element);if(tipContent){tipElement.empty().append(tipContent)}else{return}element.trigger("powerTipRender");session.activeHover=element;session.isTipOpen=true;tipElement.data(DATA_MOUSEONTOTIP,options.mouseOnToPopup);tipElement.addClass(options.popupClass);if(!options.followMouse||element.data(DATA_FORCEDOPEN)){positionTipOnElement(element);session.isFixedTipOpen=true}else{positionTipOnCursor()}if(!element.data(DATA_FORCEDOPEN)&&!options.followMouse){$document.on("click"+EVENT_NAMESPACE,function documentClick(event){var target=event.target;if(target!==element[0]){if(options.mouseOnToPopup){if(target!==tipElement[0]&&!$.contains(tipElement[0],target)){$.powerTip.hide()}}else{$.powerTip.hide()}}})}if(options.mouseOnToPopup&&!options.manual){tipElement.on("mouseenter"+EVENT_NAMESPACE,function tipMouseEnter(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).cancel()}});tipElement.on("mouseleave"+EVENT_NAMESPACE,function tipMouseLeave(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).hide()}})}tipElement.fadeIn(options.fadeInTime,function fadeInCallback(){if(!session.desyncTimeout){session.desyncTimeout=setInterval(closeDesyncedTip,500)}element.trigger("powerTipOpen")})}function hideTip(element){session.isClosing=true;session.isTipOpen=false;session.desyncTimeout=clearInterval(session.desyncTimeout);element.data(DATA_HASACTIVEHOVER,false);element.data(DATA_FORCEDOPEN,false);$document.off("click"+EVENT_NAMESPACE);tipElement.off(EVENT_NAMESPACE);tipElement.fadeOut(options.fadeOutTime,function fadeOutCallback(){var coords=new CSSCoordinates;session.activeHover=null;session.isClosing=false;session.isFixedTipOpen=false;tipElement.removeClass();coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);tipElement.css(coords);element.trigger("powerTipClose")})}function positionTipOnCursor(){var tipWidth,tipHeight,coords,collisions,collisionCount;if(!session.isFixedTipOpen&&(session.isTipOpen||session.tipOpenImminent&&tipElement.data(DATA_HASMOUSEMOVE))){tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=new CSSCoordinates;coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);collisions=getViewportCollisions(coords,tipWidth,tipHeight);if(collisions!==Collision.none){collisionCount=countFlags(collisions);if(collisionCount===1){if(collisions===Collision.right){coords.set("left",session.scrollLeft+session.windowWidth-tipWidth)}else if(collisions===Collision.bottom){coords.set("top",session.scrollTop+session.windowHeight-tipHeight)}}else{coords.set("left",session.currentX-tipWidth-options.offset);coords.set("top",session.currentY-tipHeight-options.offset)}}tipElement.css(coords)}}function positionTipOnElement(element){var priorityList,finalPlacement;if(options.smartPlacement||options.followMouse&&element.data(DATA_FORCEDOPEN)){priorityList=$.fn.powerTip.smartPlacementLists[options.placement];$.each(priorityList,function(idx,pos){var collisions=getViewportCollisions(placeTooltip(element,pos),tipElement.outerWidth(),tipElement.outerHeight());finalPlacement=pos;return collisions!==Collision.none})}else{placeTooltip(element,options.placement);finalPlacement=options.placement}tipElement.removeClass("w nw sw e ne se n s w se-alt sw-alt ne-alt nw-alt");tipElement.addClass(finalPlacement)}function placeTooltip(element,placement){var iterationCount=0,tipWidth,tipHeight,coords=new CSSCoordinates;coords.set("top",0);coords.set("left",0);tipElement.css(coords);do{tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=placementCalculator.compute(element,placement,tipWidth,tipHeight,options.offset);tipElement.css(coords)}while(++iterationCount<=5&&(tipWidth!==tipElement.outerWidth()||tipHeight!==tipElement.outerHeight()));return coords}function closeDesyncedTip(){var isDesynced=false,hasDesyncableCloseEvent=$.grep(["mouseleave","mouseout","blur","focusout"],function(eventType){return $.inArray(eventType,options.closeEvents)!==-1}).length>0;if(session.isTipOpen&&!session.isClosing&&!session.delayInProgress&&hasDesyncableCloseEvent){if(session.activeHover.data(DATA_HASACTIVEHOVER)===false||session.activeHover.is(":disabled")){isDesynced=true}else if(!isMouseOver(session.activeHover)&&!session.activeHover.is(":focus")&&!session.activeHover.data(DATA_FORCEDOPEN)){if(tipElement.data(DATA_MOUSEONTOTIP)){if(!isMouseOver(tipElement)){isDesynced=true}}else{isDesynced=true}}if(isDesynced){hideTip(session.activeHover)}}}this.showTip=beginShowTip;this.hideTip=hideTip;this.resetPosition=positionTipOnElement}function isSvgElement(element){return Boolean(window.SVGElement&&element[0]instanceof SVGElement)}function isMouseEvent(event){return Boolean(event&&$.inArray(event.type,MOUSE_EVENTS)>-1&&typeof event.pageX==="number")}function initTracking(){if(!session.mouseTrackingActive){session.mouseTrackingActive=true;getViewportDimensions();$(getViewportDimensions);$document.on("mousemove"+EVENT_NAMESPACE,trackMouse);$window.on("resize"+EVENT_NAMESPACE,trackResize);$window.on("scroll"+EVENT_NAMESPACE,trackScroll)}}function getViewportDimensions(){session.scrollLeft=$window.scrollLeft();session.scrollTop=$window.scrollTop();session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackResize(){session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackScroll(){var x=$window.scrollLeft(),y=$window.scrollTop();if(x!==session.scrollLeft){session.currentX+=x-session.scrollLeft;session.scrollLeft=x}if(y!==session.scrollTop){session.currentY+=y-session.scrollTop;session.scrollTop=y}}function trackMouse(event){session.currentX=event.pageX;session.currentY=event.pageY}function isMouseOver(element){var elementPosition=element.offset(),elementBox=element[0].getBoundingClientRect(),elementWidth=elementBox.right-elementBox.left,elementHeight=elementBox.bottom-elementBox.top;return session.currentX>=elementPosition.left&&session.currentX<=elementPosition.left+elementWidth&&session.currentY>=elementPosition.top&&session.currentY<=elementPosition.top+elementHeight}function getTooltipContent(element){var tipText=element.data(DATA_POWERTIP),tipObject=element.data(DATA_POWERTIPJQ),tipTarget=element.data(DATA_POWERTIPTARGET),targetElement,content;if(tipText){if($.isFunction(tipText)){tipText=tipText.call(element[0])}content=tipText}else if(tipObject){if($.isFunction(tipObject)){tipObject=tipObject.call(element[0])}if(tipObject.length>0){content=tipObject.clone(true,true)}}else if(tipTarget){targetElement=$("#"+tipTarget);if(targetElement.length>0){content=targetElement.html()}}return content}function getViewportCollisions(coords,elementWidth,elementHeight){var viewportTop=session.scrollTop,viewportLeft=session.scrollLeft,viewportBottom=viewportTop+session.windowHeight,viewportRight=viewportLeft+session.windowWidth,collisions=Collision.none;if(coords.top<viewportTop||Math.abs(coords.bottom-session.windowHeight)-elementHeight<viewportTop){collisions|=Collision.top}if(coords.top+elementHeight>viewportBottom||Math.abs(coords.bottom-session.windowHeight)>viewportBottom){collisions|=Collision.bottom}if(coords.left<viewportLeft||coords.right+elementWidth>viewportRight){collisions|=Collision.left}if(coords.left+elementWidth>viewportRight||coords.right<viewportLeft){collisions|=Collision.right}return collisions}function countFlags(value){var count=0;while(value){value&=value-1;count++}return count}return $.powerTip});/*!
- * jQuery UI Touch Punch 0.2.3
- *
- * Copyright 2011–2014, Dave Furfero
- * Dual licensed under the MIT or GPL Version 2 licenses.
- *
- * Depends:
- *  jquery.ui.widget.js
- *  jquery.ui.mouse.js
- */
-!function(a){function f(a,b){if(!(a.originalEvent.touches.length>1)){a.preventDefault();var c=a.originalEvent.changedTouches[0],d=document.createEvent("MouseEvents");d.initMouseEvent(b,!0,!0,window,1,c.screenX,c.screenY,c.clientX,c.clientY,!1,!1,!1,!1,0,null),a.target.dispatchEvent(d)}}if(a.support.touch="ontouchend"in document,a.support.touch){var e,b=a.ui.mouse.prototype,c=b._mouseInit,d=b._mouseDestroy;b._touchStart=function(a){var b=this;!e&&b._mouseCapture(a.originalEvent.changedTouches[0])&&(e=!0,b._touchMoved=!1,f(a,"mouseover"),f(a,"mousemove"),f(a,"mousedown"))},b._touchMove=function(a){e&&(this._touchMoved=!0,f(a,"mousemove"))},b._touchEnd=function(a){e&&(f(a,"mouseup"),f(a,"mouseout"),this._touchMoved||f(a,"click"),e=!1)},b._mouseInit=function(){var b=this;b.element.bind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),c.call(b)},b._mouseDestroy=function(){var b=this;b.element.unbind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),d.call(b)}}}(jQuery);/*! SmartMenus jQuery Plugin - v1.1.0 - September 17, 2017
- * http://www.smartmenus.org/
- * Copyright Vasil Dinkov, Vadikom Web Ltd. http://vadikom.com; Licensed MIT */(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&"object"==typeof module.exports?module.exports=t(require("jquery")):t(jQuery)})(function($){function initMouseDetection(t){var e=".smartmenus_mouse";if(mouseDetectionEnabled||t)mouseDetectionEnabled&&t&&($(document).off(e),mouseDetectionEnabled=!1);else{var i=!0,s=null,o={mousemove:function(t){var e={x:t.pageX,y:t.pageY,timeStamp:(new Date).getTime()};if(s){var o=Math.abs(s.x-e.x),a=Math.abs(s.y-e.y);if((o>0||a>0)&&2>=o&&2>=a&&300>=e.timeStamp-s.timeStamp&&(mouse=!0,i)){var n=$(t.target).closest("a");n.is("a")&&$.each(menuTrees,function(){return $.contains(this.$root[0],n[0])?(this.itemEnter({currentTarget:n[0]}),!1):void 0}),i=!1}}s=e}};o[touchEvents?"touchstart":"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut"]=function(t){isTouchEvent(t.originalEvent)&&(mouse=!1)},$(document).on(getEventsNS(o,e)),mouseDetectionEnabled=!0}}function isTouchEvent(t){return!/^(4|mouse)$/.test(t.pointerType)}function getEventsNS(t,e){e||(e="");var i={};for(var s in t)i[s.split(" ").join(e+" ")+e]=t[s];return i}var menuTrees=[],mouse=!1,touchEvents="ontouchstart"in window,mouseDetectionEnabled=!1,requestAnimationFrame=window.requestAnimationFrame||function(t){return setTimeout(t,1e3/60)},cancelAnimationFrame=window.cancelAnimationFrame||function(t){clearTimeout(t)},canAnimate=!!$.fn.animate;return $.SmartMenus=function(t,e){this.$root=$(t),this.opts=e,this.rootId="",this.accessIdPrefix="",this.$subArrow=null,this.activatedItems=[],this.visibleSubMenus=[],this.showTimeout=0,this.hideTimeout=0,this.scrollTimeout=0,this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.idInc=0,this.$firstLink=null,this.$firstSub=null,this.disabled=!1,this.$disableOverlay=null,this.$touchScrollingSub=null,this.cssTransforms3d="perspective"in t.style||"webkitPerspective"in t.style,this.wasCollapsible=!1,this.init()},$.extend($.SmartMenus,{hideAll:function(){$.each(menuTrees,function(){this.menuHideAll()})},destroy:function(){for(;menuTrees.length;)menuTrees[0].destroy();initMouseDetection(!0)},prototype:{init:function(t){var e=this;if(!t){menuTrees.push(this),this.rootId=((new Date).getTime()+Math.random()+"").replace(/\D/g,""),this.accessIdPrefix="sm-"+this.rootId+"-",this.$root.hasClass("sm-rtl")&&(this.opts.rightToLeftSubMenus=!0);var i=".smartmenus";this.$root.data("smartmenus",this).attr("data-smartmenus-id",this.rootId).dataSM("level",1).on(getEventsNS({"mouseover focusin":$.proxy(this.rootOver,this),"mouseout focusout":$.proxy(this.rootOut,this),keydown:$.proxy(this.rootKeyDown,this)},i)).on(getEventsNS({mouseenter:$.proxy(this.itemEnter,this),mouseleave:$.proxy(this.itemLeave,this),mousedown:$.proxy(this.itemDown,this),focus:$.proxy(this.itemFocus,this),blur:$.proxy(this.itemBlur,this),click:$.proxy(this.itemClick,this)},i),"a"),i+=this.rootId,this.opts.hideOnClick&&$(document).on(getEventsNS({touchstart:$.proxy(this.docTouchStart,this),touchmove:$.proxy(this.docTouchMove,this),touchend:$.proxy(this.docTouchEnd,this),click:$.proxy(this.docClick,this)},i)),$(window).on(getEventsNS({"resize orientationchange":$.proxy(this.winResize,this)},i)),this.opts.subIndicators&&(this.$subArrow=$("<span/>").addClass("sub-arrow"),this.opts.subIndicatorsText&&this.$subArrow.html(this.opts.subIndicatorsText)),initMouseDetection()}if(this.$firstSub=this.$root.find("ul").each(function(){e.menuInit($(this))}).eq(0),this.$firstLink=this.$root.find("a").eq(0),this.opts.markCurrentItem){var s=/(index|default)\.[^#\?\/]*/i,o=/#.*/,a=window.location.href.replace(s,""),n=a.replace(o,"");this.$root.find("a").each(function(){var t=this.href.replace(s,""),i=$(this);(t==a||t==n)&&(i.addClass("current"),e.opts.markCurrentTree&&i.parentsUntil("[data-smartmenus-id]","ul").each(function(){$(this).dataSM("parent-a").addClass("current")}))})}this.wasCollapsible=this.isCollapsible()},destroy:function(t){if(!t){var e=".smartmenus";this.$root.removeData("smartmenus").removeAttr("data-smartmenus-id").removeDataSM("level").off(e),e+=this.rootId,$(document).off(e),$(window).off(e),this.opts.subIndicators&&(this.$subArrow=null)}this.menuHideAll();var i=this;this.$root.find("ul").each(function(){var t=$(this);t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.dataSM("shown-before")&&((i.opts.subMenusMinWidth||i.opts.subMenusMaxWidth)&&t.css({width:"",minWidth:"",maxWidth:""}).removeClass("sm-nowrap"),t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.css({zIndex:"",top:"",left:"",marginLeft:"",marginTop:"",display:""})),0==(t.attr("id")||"").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeDataSM("in-mega").removeDataSM("shown-before").removeDataSM("scroll-arrows").removeDataSM("parent-a").removeDataSM("level").removeDataSM("beforefirstshowfired").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeAttr("aria-expanded"),this.$root.find("a.has-submenu").each(function(){var t=$(this);0==t.attr("id").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeClass("has-submenu").removeDataSM("sub").removeAttr("aria-haspopup").removeAttr("aria-controls").removeAttr("aria-expanded").closest("li").removeDataSM("sub"),this.opts.subIndicators&&this.$root.find("span.sub-arrow").remove(),this.opts.markCurrentItem&&this.$root.find("a.current").removeClass("current"),t||(this.$root=null,this.$firstLink=null,this.$firstSub=null,this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),menuTrees.splice($.inArray(this,menuTrees),1))},disable:function(t){if(!this.disabled){if(this.menuHideAll(),!t&&!this.opts.isPopup&&this.$root.is(":visible")){var e=this.$root.offset();this.$disableOverlay=$('<div class="sm-jquery-disable-overlay"/>').css({position:"absolute",top:e.top,left:e.left,width:this.$root.outerWidth(),height:this.$root.outerHeight(),zIndex:this.getStartZIndex(!0),opacity:0}).appendTo(document.body)}this.disabled=!0}},docClick:function(t){return this.$touchScrollingSub?(this.$touchScrollingSub=null,void 0):((this.visibleSubMenus.length&&!$.contains(this.$root[0],t.target)||$(t.target).closest("a").length)&&this.menuHideAll(),void 0)},docTouchEnd:function(){if(this.lastTouch){if(!(!this.visibleSubMenus.length||void 0!==this.lastTouch.x2&&this.lastTouch.x1!=this.lastTouch.x2||void 0!==this.lastTouch.y2&&this.lastTouch.y1!=this.lastTouch.y2||this.lastTouch.target&&$.contains(this.$root[0],this.lastTouch.target))){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var t=this;this.hideTimeout=setTimeout(function(){t.menuHideAll()},350)}this.lastTouch=null}},docTouchMove:function(t){if(this.lastTouch){var e=t.originalEvent.touches[0];this.lastTouch.x2=e.pageX,this.lastTouch.y2=e.pageY}},docTouchStart:function(t){var e=t.originalEvent.touches[0];this.lastTouch={x1:e.pageX,y1:e.pageY,target:e.target}},enable:function(){this.disabled&&(this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),this.disabled=!1)},getClosestMenu:function(t){for(var e=$(t).closest("ul");e.dataSM("in-mega");)e=e.parent().closest("ul");return e[0]||null},getHeight:function(t){return this.getOffset(t,!0)},getOffset:function(t,e){var i;"none"==t.css("display")&&(i={position:t[0].style.position,visibility:t[0].style.visibility},t.css({position:"absolute",visibility:"hidden"}).show());var s=t[0].getBoundingClientRect&&t[0].getBoundingClientRect(),o=s&&(e?s.height||s.bottom-s.top:s.width||s.right-s.left);return o||0===o||(o=e?t[0].offsetHeight:t[0].offsetWidth),i&&t.hide().css(i),o},getStartZIndex:function(t){var e=parseInt(this[t?"$root":"$firstSub"].css("z-index"));return!t&&isNaN(e)&&(e=parseInt(this.$root.css("z-index"))),isNaN(e)?1:e},getTouchPoint:function(t){return t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0]||t},getViewport:function(t){var e=t?"Height":"Width",i=document.documentElement["client"+e],s=window["inner"+e];return s&&(i=Math.min(i,s)),i},getViewportHeight:function(){return this.getViewport(!0)},getViewportWidth:function(){return this.getViewport()},getWidth:function(t){return this.getOffset(t)},handleEvents:function(){return!this.disabled&&this.isCSSOn()},handleItemEvents:function(t){return this.handleEvents()&&!this.isLinkInMegaMenu(t)},isCollapsible:function(){return"static"==this.$firstSub.css("position")},isCSSOn:function(){return"inline"!=this.$firstLink.css("display")},isFixed:function(){var t="fixed"==this.$root.css("position");return t||this.$root.parentsUntil("body").each(function(){return"fixed"==$(this).css("position")?(t=!0,!1):void 0}),t},isLinkInMegaMenu:function(t){return $(this.getClosestMenu(t[0])).hasClass("mega-menu")},isTouchMode:function(){return!mouse||this.opts.noMouseOver||this.isCollapsible()},itemActivate:function(t,e){var i=t.closest("ul"),s=i.dataSM("level");if(s>1&&(!this.activatedItems[s-2]||this.activatedItems[s-2][0]!=i.dataSM("parent-a")[0])){var o=this;$(i.parentsUntil("[data-smartmenus-id]","ul").get().reverse()).add(i).each(function(){o.itemActivate($(this).dataSM("parent-a"))})}if((!this.isCollapsible()||e)&&this.menuHideSubMenus(this.activatedItems[s-1]&&this.activatedItems[s-1][0]==t[0]?s:s-1),this.activatedItems[s-1]=t,this.$root.triggerHandler("activate.smapi",t[0])!==!1){var a=t.dataSM("sub");a&&(this.isTouchMode()||!this.opts.showOnClick||this.clickActivated)&&this.menuShow(a)}},itemBlur:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&this.$root.triggerHandler("blur.smapi",e[0])},itemClick:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(this.$touchScrollingSub&&this.$touchScrollingSub[0]==e.closest("ul")[0])return this.$touchScrollingSub=null,t.stopPropagation(),!1;if(this.$root.triggerHandler("click.smapi",e[0])===!1)return!1;var i=$(t.target).is(".sub-arrow"),s=e.dataSM("sub"),o=s?2==s.dataSM("level"):!1,a=this.isCollapsible(),n=/toggle$/.test(this.opts.collapsibleBehavior),r=/link$/.test(this.opts.collapsibleBehavior),h=/^accordion/.test(this.opts.collapsibleBehavior);if(s&&!s.is(":visible")){if((!r||!a||i)&&(this.opts.showOnClick&&o&&(this.clickActivated=!0),this.itemActivate(e,h),s.is(":visible")))return this.focusActivated=!0,!1}else if(a&&(n||i))return this.itemActivate(e,h),this.menuHide(s),n&&(this.focusActivated=!1),!1;return this.opts.showOnClick&&o||e.hasClass("disabled")||this.$root.triggerHandler("select.smapi",e[0])===!1?!1:void 0}},itemDown:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&e.dataSM("mousedown",!0)},itemEnter:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(!this.isTouchMode()){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);var i=this;this.showTimeout=setTimeout(function(){i.itemActivate(e)},this.opts.showOnClick&&1==e.closest("ul").dataSM("level")?1:this.opts.showTimeout)}this.$root.triggerHandler("mouseenter.smapi",e[0])}},itemFocus:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(!this.focusActivated||this.isTouchMode()&&e.dataSM("mousedown")||this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0]==e[0]||this.itemActivate(e,!0),this.$root.triggerHandler("focus.smapi",e[0]))},itemLeave:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(this.isTouchMode()||(e[0].blur(),this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0)),e.removeDataSM("mousedown"),this.$root.triggerHandler("mouseleave.smapi",e[0]))},menuHide:function(t){if(this.$root.triggerHandler("beforehide.smapi",t[0])!==!1&&(canAnimate&&t.stop(!0,!0),"none"!=t.css("display"))){var e=function(){t.css("z-index","")};this.isCollapsible()?canAnimate&&this.opts.collapsibleHideFunction?this.opts.collapsibleHideFunction.call(this,t,e):t.hide(this.opts.collapsibleHideDuration,e):canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,t,e):t.hide(this.opts.hideDuration,e),t.dataSM("scroll")&&(this.menuScrollStop(t),t.css({"touch-action":"","-ms-touch-action":"","-webkit-transform":"",transform:""}).off(".smartmenus_scroll").removeDataSM("scroll").dataSM("scroll-arrows").hide()),t.dataSM("parent-a").removeClass("highlighted").attr("aria-expanded","false"),t.attr({"aria-expanded":"false","aria-hidden":"true"});var i=t.dataSM("level");this.activatedItems.splice(i-1,1),this.visibleSubMenus.splice($.inArray(t,this.visibleSubMenus),1),this.$root.triggerHandler("hide.smapi",t[0])}},menuHideAll:function(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);for(var t=this.opts.isPopup?1:0,e=this.visibleSubMenus.length-1;e>=t;e--)this.menuHide(this.visibleSubMenus[e]);this.opts.isPopup&&(canAnimate&&this.$root.stop(!0,!0),this.$root.is(":visible")&&(canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,this.$root):this.$root.hide(this.opts.hideDuration))),this.activatedItems=[],this.visibleSubMenus=[],this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.$root.triggerHandler("hideAll.smapi")},menuHideSubMenus:function(t){for(var e=this.activatedItems.length-1;e>=t;e--){var i=this.activatedItems[e].dataSM("sub");i&&this.menuHide(i)}},menuInit:function(t){if(!t.dataSM("in-mega")){t.hasClass("mega-menu")&&t.find("ul").dataSM("in-mega",!0);for(var e=2,i=t[0];(i=i.parentNode.parentNode)!=this.$root[0];)e++;var s=t.prevAll("a").eq(-1);s.length||(s=t.prevAll().find("a").eq(-1)),s.addClass("has-submenu").dataSM("sub",t),t.dataSM("parent-a",s).dataSM("level",e).parent().dataSM("sub",t);var o=s.attr("id")||this.accessIdPrefix+ ++this.idInc,a=t.attr("id")||this.accessIdPrefix+ ++this.idInc;s.attr({id:o,"aria-haspopup":"true","aria-controls":a,"aria-expanded":"false"}),t.attr({id:a,role:"group","aria-hidden":"true","aria-labelledby":o,"aria-expanded":"false"}),this.opts.subIndicators&&s[this.opts.subIndicatorsPos](this.$subArrow.clone())}},menuPosition:function(t){var e,i,s=t.dataSM("parent-a"),o=s.closest("li"),a=o.parent(),n=t.dataSM("level"),r=this.getWidth(t),h=this.getHeight(t),u=s.offset(),l=u.left,c=u.top,d=this.getWidth(s),m=this.getHeight(s),p=$(window),f=p.scrollLeft(),v=p.scrollTop(),b=this.getViewportWidth(),S=this.getViewportHeight(),g=a.parent().is("[data-sm-horizontal-sub]")||2==n&&!a.hasClass("sm-vertical"),M=this.opts.rightToLeftSubMenus&&!o.is("[data-sm-reverse]")||!this.opts.rightToLeftSubMenus&&o.is("[data-sm-reverse]"),w=2==n?this.opts.mainMenuSubOffsetX:this.opts.subMenusSubOffsetX,T=2==n?this.opts.mainMenuSubOffsetY:this.opts.subMenusSubOffsetY;if(g?(e=M?d-r-w:w,i=this.opts.bottomToTopSubMenus?-h-T:m+T):(e=M?w-r:d-w,i=this.opts.bottomToTopSubMenus?m-T-h:T),this.opts.keepInViewport){var y=l+e,I=c+i;if(M&&f>y?e=g?f-y+e:d-w:!M&&y+r>f+b&&(e=g?f+b-r-y+e:w-r),g||(S>h&&I+h>v+S?i+=v+S-h-I:(h>=S||v>I)&&(i+=v-I)),g&&(I+h>v+S+.49||v>I)||!g&&h>S+.49){var x=this;t.dataSM("scroll-arrows")||t.dataSM("scroll-arrows",$([$('<span class="scroll-up"><span class="scroll-up-arrow"></span></span>')[0],$('<span class="scroll-down"><span class="scroll-down-arrow"></span></span>')[0]]).on({mouseenter:function(){t.dataSM("scroll").up=$(this).hasClass("scroll-up"),x.menuScroll(t)},mouseleave:function(e){x.menuScrollStop(t),x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(t){t.preventDefault()}}).insertAfter(t));var A=".smartmenus_scroll";if(t.dataSM("scroll",{y:this.cssTransforms3d?0:i-m,step:1,itemH:m,subH:h,arrowDownH:this.getHeight(t.dataSM("scroll-arrows").eq(1))}).on(getEventsNS({mouseover:function(e){x.menuScrollOver(t,e)},mouseout:function(e){x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(e){x.menuScrollMousewheel(t,e)}},A)).dataSM("scroll-arrows").css({top:"auto",left:"0",marginLeft:e+(parseInt(t.css("border-left-width"))||0),width:r-(parseInt(t.css("border-left-width"))||0)-(parseInt(t.css("border-right-width"))||0),zIndex:t.css("z-index")}).eq(g&&this.opts.bottomToTopSubMenus?0:1).show(),this.isFixed()){var C={};C[touchEvents?"touchstart touchmove touchend":"pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp"]=function(e){x.menuScrollTouch(t,e)},t.css({"touch-action":"none","-ms-touch-action":"none"}).on(getEventsNS(C,A))}}}t.css({top:"auto",left:"0",marginLeft:e,marginTop:i-m})},menuScroll:function(t,e,i){var s,o=t.dataSM("scroll"),a=t.dataSM("scroll-arrows"),n=o.up?o.upEnd:o.downEnd;if(!e&&o.momentum){if(o.momentum*=.92,s=o.momentum,.5>s)return this.menuScrollStop(t),void 0}else s=i||(e||!this.opts.scrollAccelerate?this.opts.scrollStep:Math.floor(o.step));var r=t.dataSM("level");if(this.activatedItems[r-1]&&this.activatedItems[r-1].dataSM("sub")&&this.activatedItems[r-1].dataSM("sub").is(":visible")&&this.menuHideSubMenus(r-1),o.y=o.up&&o.y>=n||!o.up&&n>=o.y?o.y:Math.abs(n-o.y)>s?o.y+(o.up?s:-s):n,t.css(this.cssTransforms3d?{"-webkit-transform":"translate3d(0, "+o.y+"px, 0)",transform:"translate3d(0, "+o.y+"px, 0)"}:{marginTop:o.y}),mouse&&(o.up&&o.y>o.downEnd||!o.up&&o.y<o.upEnd)&&a.eq(o.up?1:0).show(),o.y==n)mouse&&a.eq(o.up?0:1).hide(),this.menuScrollStop(t);else if(!e){this.opts.scrollAccelerate&&o.step<this.opts.scrollStep&&(o.step+=.2);var h=this;this.scrollTimeout=requestAnimationFrame(function(){h.menuScroll(t)})}},menuScrollMousewheel:function(t,e){if(this.getClosestMenu(e.target)==t[0]){e=e.originalEvent;var i=(e.wheelDelta||-e.detail)>0;t.dataSM("scroll-arrows").eq(i?0:1).is(":visible")&&(t.dataSM("scroll").up=i,this.menuScroll(t,!0))}e.preventDefault()},menuScrollOut:function(t,e){mouse&&(/^scroll-(up|down)/.test((e.relatedTarget||"").className)||(t[0]==e.relatedTarget||$.contains(t[0],e.relatedTarget))&&this.getClosestMenu(e.relatedTarget)==t[0]||t.dataSM("scroll-arrows").css("visibility","hidden"))},menuScrollOver:function(t,e){if(mouse&&!/^scroll-(up|down)/.test(e.target.className)&&this.getClosestMenu(e.target)==t[0]){this.menuScrollRefreshData(t);var i=t.dataSM("scroll"),s=$(window).scrollTop()-t.dataSM("parent-a").offset().top-i.itemH;t.dataSM("scroll-arrows").eq(0).css("margin-top",s).end().eq(1).css("margin-top",s+this.getViewportHeight()-i.arrowDownH).end().css("visibility","visible")}},menuScrollRefreshData:function(t){var e=t.dataSM("scroll"),i=$(window).scrollTop()-t.dataSM("parent-a").offset().top-e.itemH;this.cssTransforms3d&&(i=-(parseFloat(t.css("margin-top"))-i)),$.extend(e,{upEnd:i,downEnd:i+this.getViewportHeight()-e.subH})},menuScrollStop:function(t){return this.scrollTimeout?(cancelAnimationFrame(this.scrollTimeout),this.scrollTimeout=0,t.dataSM("scroll").step=1,!0):void 0},menuScrollTouch:function(t,e){if(e=e.originalEvent,isTouchEvent(e)){var i=this.getTouchPoint(e);if(this.getClosestMenu(i.target)==t[0]){var s=t.dataSM("scroll");if(/(start|down)$/i.test(e.type))this.menuScrollStop(t)?(e.preventDefault(),this.$touchScrollingSub=t):this.$touchScrollingSub=null,this.menuScrollRefreshData(t),$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp});else if(/move$/i.test(e.type)){var o=void 0!==s.touchY?s.touchY:s.touchStartY;if(void 0!==o&&o!=i.pageY){this.$touchScrollingSub=t;var a=i.pageY>o;void 0!==s.up&&s.up!=a&&$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp}),$.extend(s,{up:a,touchY:i.pageY}),this.menuScroll(t,!0,Math.abs(i.pageY-o))}e.preventDefault()}else void 0!==s.touchY&&((s.momentum=15*Math.pow(Math.abs(i.pageY-s.touchStartY)/(e.timeStamp-s.touchStartTime),2))&&(this.menuScrollStop(t),this.menuScroll(t),e.preventDefault()),delete s.touchY)}}},menuShow:function(t){if((t.dataSM("beforefirstshowfired")||(t.dataSM("beforefirstshowfired",!0),this.$root.triggerHandler("beforefirstshow.smapi",t[0])!==!1))&&this.$root.triggerHandler("beforeshow.smapi",t[0])!==!1&&(t.dataSM("shown-before",!0),canAnimate&&t.stop(!0,!0),!t.is(":visible"))){var e=t.dataSM("parent-a"),i=this.isCollapsible();if((this.opts.keepHighlighted||i)&&e.addClass("highlighted"),i)t.removeClass("sm-nowrap").css({zIndex:"",width:"auto",minWidth:"",maxWidth:"",top:"",left:"",marginLeft:"",marginTop:""});else{if(t.css("z-index",this.zIndexInc=(this.zIndexInc||this.getStartZIndex())+1),(this.opts.subMenusMinWidth||this.opts.subMenusMaxWidth)&&(t.css({width:"auto",minWidth:"",maxWidth:""}).addClass("sm-nowrap"),this.opts.subMenusMinWidth&&t.css("min-width",this.opts.subMenusMinWidth),this.opts.subMenusMaxWidth)){var s=this.getWidth(t);t.css("max-width",this.opts.subMenusMaxWidth),s>this.getWidth(t)&&t.removeClass("sm-nowrap").css("width",this.opts.subMenusMaxWidth)}this.menuPosition(t)}var o=function(){t.css("overflow","")};i?canAnimate&&this.opts.collapsibleShowFunction?this.opts.collapsibleShowFunction.call(this,t,o):t.show(this.opts.collapsibleShowDuration,o):canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,t,o):t.show(this.opts.showDuration,o),e.attr("aria-expanded","true"),t.attr({"aria-expanded":"true","aria-hidden":"false"}),this.visibleSubMenus.push(t),this.$root.triggerHandler("show.smapi",t[0])}},popupHide:function(t){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},t?1:this.opts.hideTimeout)},popupShow:function(t,e){if(!this.opts.isPopup)return alert('SmartMenus jQuery Error:\n\nIf you want to show this menu via the "popupShow" method, set the isPopup:true option.'),void 0;if(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),this.$root.dataSM("shown-before",!0),canAnimate&&this.$root.stop(!0,!0),!this.$root.is(":visible")){this.$root.css({left:t,top:e});var i=this,s=function(){i.$root.css("overflow","")};canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,this.$root,s):this.$root.show(this.opts.showDuration,s),this.visibleSubMenus[0]=this.$root}},refresh:function(){this.destroy(!0),this.init(!0)},rootKeyDown:function(t){if(this.handleEvents())switch(t.keyCode){case 27:var e=this.activatedItems[0];if(e){this.menuHideAll(),e[0].focus();var i=e.dataSM("sub");i&&this.menuHide(i)}break;case 32:var s=$(t.target);if(s.is("a")&&this.handleItemEvents(s)){var i=s.dataSM("sub");i&&!i.is(":visible")&&(this.itemClick({currentTarget:t.target}),t.preventDefault())}}},rootOut:function(t){if(this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),!this.opts.showOnClick||!this.opts.hideOnClick)){var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},this.opts.hideTimeout)}},rootOver:function(t){this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0)},winResize:function(t){if(this.handleEvents()){if(!("onorientationchange"in window)||"orientationchange"==t.type){var e=this.isCollapsible();this.wasCollapsible&&e||(this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0].blur(),this.menuHideAll()),this.wasCollapsible=e}}else if(this.$disableOverlay){var i=this.$root.offset();this.$disableOverlay.css({top:i.top,left:i.left,width:this.$root.outerWidth(),height:this.$root.outerHeight()})}}}}),$.fn.dataSM=function(t,e){return e?this.data(t+"_smartmenus",e):this.data(t+"_smartmenus")},$.fn.removeDataSM=function(t){return this.removeData(t+"_smartmenus")},$.fn.smartmenus=function(options){if("string"==typeof options){var args=arguments,method=options;return Array.prototype.shift.call(args),this.each(function(){var t=$(this).data("smartmenus");t&&t[method]&&t[method].apply(t,args)})}return this.each(function(){var dataOpts=$(this).data("sm-options")||null;if(dataOpts)try{dataOpts=eval("("+dataOpts+")")}catch(e){dataOpts=null,alert('ERROR\n\nSmartMenus jQuery init:\nInvalid "data-sm-options" attribute value syntax.')}new $.SmartMenus(this,$.extend({},$.fn.smartmenus.defaults,options,dataOpts))})},$.fn.smartmenus.defaults={isPopup:!1,mainMenuSubOffsetX:0,mainMenuSubOffsetY:0,subMenusSubOffsetX:0,subMenusSubOffsetY:0,subMenusMinWidth:"10em",subMenusMaxWidth:"20em",subIndicators:!0,subIndicatorsPos:"append",subIndicatorsText:"",scrollStep:30,scrollAccelerate:!0,showTimeout:250,hideTimeout:500,showDuration:0,showFunction:null,hideDuration:0,hideFunction:function(t,e){t.fadeOut(200,e)},collapsibleShowDuration:0,collapsibleShowFunction:function(t,e){t.slideDown(200,e)},collapsibleHideDuration:0,collapsibleHideFunction:function(t,e){t.slideUp(200,e)},showOnClick:!1,hideOnClick:!0,noMouseOver:!1,keepInViewport:!0,keepHighlighted:!0,markCurrentItem:!1,markCurrentTree:!0,rightToLeftSubMenus:!1,bottomToTopSubMenus:!1,collapsibleBehavior:"default"},$});
\ No newline at end of file
diff --git a/static/docs/2.2.1/html/menu.js b/static/docs/2.2.1/html/menu.js
deleted file mode 100755
index d18a2fe..0000000
--- a/static/docs/2.2.1/html/menu.js
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- @licstart  The following is the entire license notice for the JavaScript code in this file.
-
- The MIT License (MIT)
-
- Copyright (C) 1997-2020 by Dimitri van Heesch
-
- Permission is hereby granted, free of charge, to any person obtaining a copy of this software
- and associated documentation files (the "Software"), to deal in the Software without restriction,
- including without limitation the rights to use, copy, modify, merge, publish, distribute,
- sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be included in all copies or
- substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
- BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
- @licend  The above is the entire license notice for the JavaScript code in this file
- */
-function initMenu(relPath,searchEnabled,serverSide,searchPage,search) {
-  function makeTree(data,relPath) {
-    var result='';
-    if ('children' in data) {
-      result+='<ul>';
-      for (var i in data.children) {
-        result+='<li><a href="'+relPath+data.children[i].url+'">'+
-                                data.children[i].text+'</a>'+
-                                makeTree(data.children[i],relPath)+'</li>';
-      }
-      result+='</ul>';
-    }
-    return result;
-  }
-
-  $('#main-nav').append(makeTree(menudata,relPath));
-  $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu');
-  if (searchEnabled) {
-    if (serverSide) {
-      $('#main-menu').append('<li style="float:right"><div id="MSearchBox" class="MSearchBoxInactive"><div class="left"><form id="FSearchBox" action="'+relPath+searchPage+'" method="get"><img id="MSearchSelect" src="'+relPath+'search/mag.png" alt=""/><input type="text" id="MSearchField" name="query" value="'+search+'" size="20" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)" onblur="searchBox.OnSearchFieldFocus(false)"></form></div><div class="right"></div></div></li>');
-    } else {
-      $('#main-menu').append('<li style="float:right"><div id="MSearchBox" class="MSearchBoxInactive"><span class="left"><img id="MSearchSelect" src="'+relPath+'search/mag_sel.png" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()" alt=""/><input type="text" id="MSearchField" value="'+search+'" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)" onblur="searchBox.OnSearchFieldFocus(false)" onkeyup="searchBox.OnSearchFieldChange(event)"/></span><span class="right"><a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="'+relPath+'search/close.png" alt=""/></a></span></div></li>');
-    }
-  }
-  $('#main-menu').smartmenus();
-}
-/* @license-end */
diff --git a/static/docs/2.2.1/html/menudata.js b/static/docs/2.2.1/html/menudata.js
deleted file mode 100755
index beda098..0000000
--- a/static/docs/2.2.1/html/menudata.js
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- @licstart  The following is the entire license notice for the JavaScript code in this file.
-
- The MIT License (MIT)
-
- Copyright (C) 1997-2020 by Dimitri van Heesch
-
- Permission is hereby granted, free of charge, to any person obtaining a copy of this software
- and associated documentation files (the "Software"), to deal in the Software without restriction,
- including without limitation the rights to use, copy, modify, merge, publish, distribute,
- sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be included in all copies or
- substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
- BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
- @licend  The above is the entire license notice for the JavaScript code in this file
-*/
-var menudata={children:[
-{text:"Main Page",url:"index.html"},
-{text:"Classes",url:"annotated.html",children:[
-{text:"Class List",url:"annotated.html"},
-{text:"Class Index",url:"classes.html"},
-{text:"Class Members",url:"functions.html",children:[
-{text:"All",url:"functions.html",children:[
-{text:"a",url:"functions.html#index_a"},
-{text:"b",url:"functions.html#index_b"},
-{text:"c",url:"functions.html#index_c"},
-{text:"d",url:"functions.html#index_d"},
-{text:"f",url:"functions.html#index_f"},
-{text:"i",url:"functions.html#index_i"},
-{text:"n",url:"functions.html#index_n"},
-{text:"o",url:"functions.html#index_o"},
-{text:"p",url:"functions.html#index_p"},
-{text:"r",url:"functions.html#index_r"},
-{text:"s",url:"functions.html#index_s"},
-{text:"u",url:"functions.html#index_u"}]},
-{text:"Variables",url:"functions_vars.html",children:[
-{text:"a",url:"functions_vars.html#index_a"},
-{text:"b",url:"functions_vars.html#index_b"},
-{text:"c",url:"functions_vars.html#index_c"},
-{text:"d",url:"functions_vars.html#index_d"},
-{text:"f",url:"functions_vars.html#index_f"},
-{text:"i",url:"functions_vars.html#index_i"},
-{text:"n",url:"functions_vars.html#index_n"},
-{text:"o",url:"functions_vars.html#index_o"},
-{text:"p",url:"functions_vars.html#index_p"},
-{text:"r",url:"functions_vars.html#index_r"},
-{text:"s",url:"functions_vars.html#index_s"},
-{text:"u",url:"functions_vars.html#index_u"}]}]}]},
-{text:"Files",url:"files.html",children:[
-{text:"File List",url:"files.html"},
-{text:"File Members",url:"globals.html",children:[
-{text:"All",url:"globals.html",children:[
-{text:"c",url:"globals.html#index_c"},
-{text:"d",url:"globals.html#index_d"},
-{text:"o",url:"globals.html#index_o"}]},
-{text:"Functions",url:"globals_func.html",children:[
-{text:"c",url:"globals_func.html#index_c"}]},
-{text:"Typedefs",url:"globals_type.html"},
-{text:"Enumerations",url:"globals_enum.html"},
-{text:"Enumerator",url:"globals_eval.html"},
-{text:"Macros",url:"globals_defs.html"}]}]}]}
diff --git a/static/docs/2.2.1/html/nav_f.png b/static/docs/2.2.1/html/nav_f.png
deleted file mode 100755
index 72a58a5..0000000
--- a/static/docs/2.2.1/html/nav_f.png
+++ /dev/null
Binary files differ
diff --git a/static/docs/2.2.1/html/nav_g.png b/static/docs/2.2.1/html/nav_g.png
deleted file mode 100755
index 2093a23..0000000
--- a/static/docs/2.2.1/html/nav_g.png
+++ /dev/null
Binary files differ
diff --git a/static/docs/2.2.1/html/nav_h.png b/static/docs/2.2.1/html/nav_h.png
deleted file mode 100755
index 33389b1..0000000
--- a/static/docs/2.2.1/html/nav_h.png
+++ /dev/null
Binary files differ
diff --git a/static/docs/2.2.1/html/open.png b/static/docs/2.2.1/html/open.png
deleted file mode 100755
index 30f75c7..0000000
--- a/static/docs/2.2.1/html/open.png
+++ /dev/null
Binary files differ
diff --git a/static/docs/2.2.1/html/search/all_0.html b/static/docs/2.2.1/html/search/all_0.html
deleted file mode 100755
index ea50fff..0000000
--- a/static/docs/2.2.1/html/search/all_0.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="all_0.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-createResults();
-/* @license-end */
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
-window.addEventListener("message", function(event) {
-  if (event.data == "take_focus") {
-    var elem = searchResults.NavNext(0);
-    if (elem) elem.focus();
-  }
-});
-/* @license-end */
---></script>
-</div>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/search/all_0.js b/static/docs/2.2.1/html/search/all_0.js
deleted file mode 100755
index a20ce75..0000000
--- a/static/docs/2.2.1/html/search/all_0.js
+++ /dev/null
@@ -1,9 +0,0 @@
-var searchData=
-[
-  ['active_0',['active',['../structcelix__dm__component__info__struct.html#a293333dd64e557ab4b3d80c44d6d2499',1,'celix_dm_component_info_struct']]],
-  ['add_1',['add',['../structcelix__service__tracking__options.html#afe7fa7d7fce1c581dff6e7986e958815',1,'celix_service_tracking_options::add()'],['../structcelix__dm__service__dependency__callback__options.html#a9663db4ef079c6300f95dadfe2c03813',1,'celix_dm_service_dependency_callback_options::add()']]],
-  ['addwithowner_2',['addWithOwner',['../structcelix__service__tracking__options.html#a787fd0f4f6719fefea2ae70fe6a1a5e6',1,'celix_service_tracking_options']]],
-  ['addwithproperties_3',['addWithProperties',['../structcelix__service__tracking__options.html#a4f80c99b050b1e49663cab329848364c',1,'celix_service_tracking_options']]],
-  ['addwithprops_4',['addWithProps',['../structcelix__dm__service__dependency__callback__options.html#a5cf7a8e9026d08803798c70cb6a30330',1,'celix_dm_service_dependency_callback_options']]],
-  ['available_5',['available',['../structcelix__dm__service__dependency__info__struct.html#a77659b20ca3bcc2b9282f4644bdcbe66',1,'celix_dm_service_dependency_info_struct']]]
-];
diff --git a/static/docs/2.2.1/html/search/all_1.html b/static/docs/2.2.1/html/search/all_1.html
deleted file mode 100755
index 86b0682..0000000
--- a/static/docs/2.2.1/html/search/all_1.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="all_1.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-createResults();
-/* @license-end */
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
-window.addEventListener("message", function(event) {
-  if (event.data == "take_focus") {
-    var elem = searchResults.NavNext(0);
-    if (elem) elem.focus();
-  }
-});
-/* @license-end */
---></script>
-</div>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/search/all_1.js b/static/docs/2.2.1/html/search/all_1.js
deleted file mode 100755
index c515363..0000000
--- a/static/docs/2.2.1/html/search/all_1.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var searchData=
-[
-  ['bndid_6',['bndId',['../structcelix__dm__dependency__manager__info__struct.html#ac51721859e70f844e4c23873aec85dfb',1,'celix_dm_dependency_manager_info_struct']]],
-  ['bundleid_7',['bundleId',['../structcelix__service__tracker__info.html#a6978e4b5f2fcc2d42a42f0e7ed3bb7c8',1,'celix_service_tracker_info']]]
-];
diff --git a/static/docs/2.2.1/html/search/all_2.html b/static/docs/2.2.1/html/search/all_2.html
deleted file mode 100755
index ffa7873..0000000
--- a/static/docs/2.2.1/html/search/all_2.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="all_2.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-createResults();
-/* @license-end */
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
-window.addEventListener("message", function(event) {
-  if (event.data == "take_focus") {
-    var elem = searchResults.NavNext(0);
-    if (elem) elem.focus();
-  }
-});
-/* @license-end */
---></script>
-</div>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/search/all_2.js b/static/docs/2.2.1/html/search/all_2.js
deleted file mode 100755
index dcadac9..0000000
--- a/static/docs/2.2.1/html/search/all_2.js
+++ /dev/null
@@ -1,132 +0,0 @@
-var searchData=
-[
-  ['celix_5fapi_2eh_8',['celix_api.h',['../celix__api_8h.html',1,'']]],
-  ['celix_5fbundle_2eh_9',['celix_bundle.h',['../celix__bundle_8h.html',1,'']]],
-  ['celix_5fbundle_5factivator_2eh_10',['celix_bundle_activator.h',['../celix__bundle__activator_8h.html',1,'']]],
-  ['celix_5fbundle_5fcontext_2eh_11',['celix_bundle_context.h',['../celix__bundle__context_8h.html',1,'']]],
-  ['celix_5fbundle_5fgetentry_12',['celix_bundle_getEntry',['../celix__bundle_8h.html#a5cbe24596271fc91c79c8f42c8b92bc5',1,'celix_bundle.h']]],
-  ['celix_5fbundle_5fgetgroup_13',['celix_bundle_getGroup',['../celix__bundle_8h.html#a5abd44b1259599d08f2312760fb32170',1,'celix_bundle.h']]],
-  ['celix_5fbundle_5fgetid_14',['celix_bundle_getId',['../celix__bundle_8h.html#a8a9b02c9438f05099ff2bde9fea8c3cd',1,'celix_bundle.h']]],
-  ['celix_5fbundle_5fgetstate_15',['celix_bundle_getState',['../celix__bundle_8h.html#a7106fcc7b06c0506dd7e1678ba024a35',1,'celix_bundle.h']]],
-  ['celix_5fbundle_5fgetsymbolicname_16',['celix_bundle_getSymbolicName',['../celix__bundle_8h.html#a391c2aa2fdf3c8d0c65fc07a07bb7545',1,'celix_bundle.h']]],
-  ['celix_5fbundle_5ftracker_5foptions_17',['celix_bundle_tracker_options',['../structcelix__bundle__tracker__options.html',1,'']]],
-  ['celix_5fbundle_5ftracking_5foptions_5ft_18',['celix_bundle_tracking_options_t',['../celix__bundle__context_8h.html#a1b011b5fe49a718345698eeb359d0c3a',1,'celix_bundle_context.h']]],
-  ['celix_5fbundleactivator_5fcreate_19',['celix_bundleActivator_create',['../celix__bundle__activator_8h.html#a57025ac322aecc8acfac832748c780e6',1,'celix_bundle_activator.h']]],
-  ['celix_5fbundleactivator_5fdestroy_20',['celix_bundleActivator_destroy',['../celix__bundle__activator_8h.html#a8d7cd41a721060d28c6ce8d94f9f0ca9',1,'celix_bundle_activator.h']]],
-  ['celix_5fbundleactivator_5fstart_21',['celix_bundleActivator_start',['../celix__bundle__activator_8h.html#a8ac12a9b8d321ee1c1feee5bf047b666',1,'celix_bundle_activator.h']]],
-  ['celix_5fbundleactivator_5fstop_22',['celix_bundleActivator_stop',['../celix__bundle__activator_8h.html#ae650439680848e3e3f7fc71b9e4dd213',1,'celix_bundle_activator.h']]],
-  ['celix_5fbundlecontext_5ffindservice_23',['celix_bundleContext_findService',['../celix__bundle__context_8h.html#ac8322b5aa4adf9dcd8c288ce72a05414',1,'celix_bundle_context.h']]],
-  ['celix_5fbundlecontext_5ffindservices_24',['celix_bundleContext_findServices',['../celix__bundle__context_8h.html#a96a901f0597f9d2accf073153d90344c',1,'celix_bundle_context.h']]],
-  ['celix_5fbundlecontext_5ffindserviceswithoptions_25',['celix_bundleContext_findServicesWithOptions',['../celix__bundle__context_8h.html#a41c34f8165addcbd0d65b4a0c23345d0',1,'celix_bundle_context.h']]],
-  ['celix_5fbundlecontext_5ffindservicewithoptions_26',['celix_bundleContext_findServiceWithOptions',['../celix__bundle__context_8h.html#a8cfbbb7e17cb4a825a525c547f72b4b0',1,'celix_bundle_context.h']]],
-  ['celix_5fbundlecontext_5fgetbundle_27',['celix_bundleContext_getBundle',['../celix__bundle__context_8h.html#a3f7f55d1587f421f27518574a525ff63',1,'celix_bundle_context.h']]],
-  ['celix_5fbundlecontext_5fgetdependencymanager_28',['celix_bundleContext_getDependencyManager',['../celix__bundle__context_8h.html#ac36566dcc477bb2c123e5124527090c1',1,'celix_bundle_context.h']]],
-  ['celix_5fbundlecontext_5fgetproperty_29',['celix_bundleContext_getProperty',['../celix__bundle__context_8h.html#aa121100c5f5d03c0ccdda9c87286f7db',1,'celix_bundle_context.h']]],
-  ['celix_5fbundlecontext_5fgetpropertyasbool_30',['celix_bundleContext_getPropertyAsBool',['../celix__bundle__context_8h.html#a41e6642ba1a739b5768911fa41e5d170',1,'celix_bundle_context.h']]],
-  ['celix_5fbundlecontext_5fgetpropertyasdouble_31',['celix_bundleContext_getPropertyAsDouble',['../celix__bundle__context_8h.html#a92be7dd7985a890c4b92bcb8497e8b9f',1,'celix_bundle_context.h']]],
-  ['celix_5fbundlecontext_5fgetpropertyaslong_32',['celix_bundleContext_getPropertyAsLong',['../celix__bundle__context_8h.html#a0ea27b2a81018583a464a10932cfae62',1,'celix_bundle_context.h']]],
-  ['celix_5fbundlecontext_5finstallbundle_33',['celix_bundleContext_installBundle',['../celix__bundle__context_8h.html#a727ee2600c19ce2fd42b3b80b695c7f6',1,'celix_bundle_context.h']]],
-  ['celix_5fbundlecontext_5fisbundleinstalled_34',['celix_bundleContext_isBundleInstalled',['../celix__bundle__context_8h.html#ac7151f08ded1d7571867a44abe9f3531',1,'celix_bundle_context.h']]],
-  ['celix_5fbundlecontext_5flistbundles_35',['celix_bundleContext_listBundles',['../celix__bundle__context_8h.html#afde9ed40231b5c3bbba19559e68e77f6',1,'celix_bundle_context.h']]],
-  ['celix_5fbundlecontext_5fregisterservice_36',['celix_bundleContext_registerService',['../celix__bundle__context_8h.html#a5bc54fd14871cc88ed887c8cea8f7b78',1,'celix_bundle_context.h']]],
-  ['celix_5fbundlecontext_5fregisterservicefactory_37',['celix_bundleContext_registerServiceFactory',['../celix__bundle__context_8h.html#a3caa917285feaad580b61d4c0c8430a9',1,'celix_bundle_context.h']]],
-  ['celix_5fbundlecontext_5fregisterservicewithoptions_38',['celix_bundleContext_registerServiceWithOptions',['../celix__bundle__context_8h.html#abcde0edf5b4969bdd67831cff3db0a43',1,'celix_bundle_context.h']]],
-  ['celix_5fbundlecontext_5fstartbundle_39',['celix_bundleContext_startBundle',['../celix__bundle__context_8h.html#a8df4bfbc27c99736c0209ef130cff98f',1,'celix_bundle_context.h']]],
-  ['celix_5fbundlecontext_5fstopbundle_40',['celix_bundleContext_stopBundle',['../celix__bundle__context_8h.html#ad6e1553f9507d04c7a0ad91d067d479b',1,'celix_bundle_context.h']]],
-  ['celix_5fbundlecontext_5fstoptracker_41',['celix_bundleContext_stopTracker',['../celix__bundle__context_8h.html#a3b4906a9e6fb34fe3ca5118539a81fc7',1,'celix_bundle_context.h']]],
-  ['celix_5fbundlecontext_5ftrackbundles_42',['celix_bundleContext_trackBundles',['../celix__bundle__context_8h.html#a3daf88ae43bb01e104f506c3a2dc8351',1,'celix_bundle_context.h']]],
-  ['celix_5fbundlecontext_5ftrackbundleswithoptions_43',['celix_bundleContext_trackBundlesWithOptions',['../celix__bundle__context_8h.html#aa603acb136351b4135ce6a8c0b1fda71',1,'celix_bundle_context.h']]],
-  ['celix_5fbundlecontext_5ftrackservice_44',['celix_bundleContext_trackService',['../celix__bundle__context_8h.html#a612409acf5453dbc370d93b784153d51',1,'celix_bundle_context.h']]],
-  ['celix_5fbundlecontext_5ftrackservices_45',['celix_bundleContext_trackServices',['../celix__bundle__context_8h.html#a43e3bfd38ef956ffe861065e698a72e4',1,'celix_bundle_context.h']]],
-  ['celix_5fbundlecontext_5ftrackserviceswithoptions_46',['celix_bundleContext_trackServicesWithOptions',['../celix__bundle__context_8h.html#a27980e1631d4575cc45c6c6ba38c6f71',1,'celix_bundle_context.h']]],
-  ['celix_5fbundlecontext_5ftrackservicetrackers_47',['celix_bundleContext_trackServiceTrackers',['../celix__bundle__context_8h.html#a80f61dd38b9da8447cd4f931779eaf16',1,'celix_bundle_context.h']]],
-  ['celix_5fbundlecontext_5funinstallbundle_48',['celix_bundleContext_uninstallBundle',['../celix__bundle__context_8h.html#a098adf1e9f65deb166110008bd4314dd',1,'celix_bundle_context.h']]],
-  ['celix_5fbundlecontext_5funregisterservice_49',['celix_bundleContext_unregisterService',['../celix__bundle__context_8h.html#a1ebd82cb3d61aab769956d856293b9b9',1,'celix_bundle_context.h']]],
-  ['celix_5fbundlecontext_5fusebundle_50',['celix_bundleContext_useBundle',['../celix__bundle__context_8h.html#abb3cedf5ffa7a326cef2af64a1094635',1,'celix_bundle_context.h']]],
-  ['celix_5fbundlecontext_5fusebundles_51',['celix_bundleContext_useBundles',['../celix__bundle__context_8h.html#a03a6d1c49c91c212ad7be115e1035840',1,'celix_bundle_context.h']]],
-  ['celix_5fbundlecontext_5fuseservice_52',['celix_bundleContext_useService',['../celix__bundle__context_8h.html#ac36cdb8a06bb34f9371d7bb32953c69e',1,'celix_bundle_context.h']]],
-  ['celix_5fbundlecontext_5fuseservices_53',['celix_bundleContext_useServices',['../celix__bundle__context_8h.html#a39270507a3766afbfcc9420c7270d262',1,'celix_bundle_context.h']]],
-  ['celix_5fbundlecontext_5fuseserviceswithoptions_54',['celix_bundleContext_useServicesWithOptions',['../celix__bundle__context_8h.html#ad1512520baedecad54a7bc307e0a6c7b',1,'celix_bundle_context.h']]],
-  ['celix_5fbundlecontext_5fuseservicewithid_55',['celix_bundleContext_useServiceWithId',['../celix__bundle__context_8h.html#aec6e03faece0f8247de19d8c1527406d',1,'celix_bundle_context.h']]],
-  ['celix_5fbundlecontext_5fuseservicewithoptions_56',['celix_bundleContext_useServiceWithOptions',['../celix__bundle__context_8h.html#a1e8a78de5f799d303231385b51085055',1,'celix_bundle_context.h']]],
-  ['celix_5fdependency_5fmanager_5finfo_5ft_57',['celix_dependency_manager_info_t',['../celix__dm__info_8h.html#af06092e6852ba40f4241b4e539265e64',1,'celix_dm_info.h']]],
-  ['celix_5fdm_5fcmp_5flifecycle_5ffpt_58',['celix_dm_cmp_lifecycle_fpt',['../celix__dm__component_8h.html#a9c73a72049f39d42d66b6d9c60d185dc',1,'celix_dm_component.h']]],
-  ['celix_5fdm_5fcomponent_2eh_59',['celix_dm_component.h',['../celix__dm__component_8h.html',1,'']]],
-  ['celix_5fdm_5fcomponent_5finfo_5fstruct_60',['celix_dm_component_info_struct',['../structcelix__dm__component__info__struct.html',1,'']]],
-  ['celix_5fdm_5fcomponent_5finfo_5ft_61',['celix_dm_component_info_t',['../celix__dm__info_8h.html#a57ffe4e9f51e746fdf4ae50151150b16',1,'celix_dm_info.h']]],
-  ['celix_5fdm_5fcomponent_5fmax_5fid_5flength_62',['CELIX_DM_COMPONENT_MAX_ID_LENGTH',['../celix__dm__component_8h.html#aa19dcff16825fa2e91656ff136d877cf',1,'celix_dm_component.h']]],
-  ['celix_5fdm_5fcomponent_5fmax_5fname_5flength_63',['CELIX_DM_COMPONENT_MAX_NAME_LENGTH',['../celix__dm__component_8h.html#af8861849eb5e4057def1bb12a5111d00',1,'celix_dm_component.h']]],
-  ['celix_5fdm_5fcomponent_5fstate_5fenum_64',['celix_dm_component_state_enum',['../celix__dm__component_8h.html#ab8b6c8d35fe5b976b8f58a6816e6c4e4',1,'celix_dm_component.h']]],
-  ['celix_5fdm_5fcomponent_5fstate_5ft_65',['celix_dm_component_state_t',['../celix__dm__component_8h.html#afd49054c559adbeb9627fa3d45d6c02a',1,'celix_dm_component.h']]],
-  ['celix_5fdm_5fdependency_5fmanager_5finfo_5fstruct_66',['celix_dm_dependency_manager_info_struct',['../structcelix__dm__dependency__manager__info__struct.html',1,'']]],
-  ['celix_5fdm_5finfo_2eh_67',['celix_dm_info.h',['../celix__dm__info_8h.html',1,'']]],
-  ['celix_5fdm_5finterface_5finfo_5fstruct_68',['celix_dm_interface_info_struct',['../structcelix__dm__interface__info__struct.html',1,'']]],
-  ['celix_5fdm_5finterface_5finfo_5ft_69',['celix_dm_interface_info_t',['../celix__dm__info_8h.html#a635d8bc54edda5e7e70f7b27943196b6',1,'celix_dm_info.h']]],
-  ['celix_5fdm_5fservice_5fdependency_2eh_70',['celix_dm_service_dependency.h',['../celix__dm__service__dependency_8h.html',1,'']]],
-  ['celix_5fdm_5fservice_5fdependency_5fcallback_5foptions_71',['celix_dm_service_dependency_callback_options',['../structcelix__dm__service__dependency__callback__options.html',1,'']]],
-  ['celix_5fdm_5fservice_5fdependency_5fcallback_5foptions_5ft_72',['celix_dm_service_dependency_callback_options_t',['../celix__dm__service__dependency_8h.html#ace7f03a4e7746a8ca8218afd172752f8',1,'celix_dm_service_dependency.h']]],
-  ['celix_5fdm_5fservice_5fdependency_5finfo_5fstruct_73',['celix_dm_service_dependency_info_struct',['../structcelix__dm__service__dependency__info__struct.html',1,'']]],
-  ['celix_5fdm_5fservice_5fdependency_5finfo_5ft_74',['celix_dm_service_dependency_info_t',['../celix__dm__info_8h.html#a7fd4e90372051b1549c588095fb24fd4',1,'celix_dm_info.h']]],
-  ['celix_5fdm_5fservice_5fdependency_5fstrategy_5fenum_75',['celix_dm_service_dependency_strategy_enum',['../celix__dm__service__dependency_8h.html#a80a698d57b244ab54ffad631a41ae88c',1,'celix_dm_service_dependency.h']]],
-  ['celix_5fdm_5fservice_5fdependency_5fstrategy_5ft_76',['celix_dm_service_dependency_strategy_t',['../celix__dm__service__dependency_8h.html#a00447f0e837918fcf6e39698ef375f46',1,'celix_dm_service_dependency.h']]],
-  ['celix_5fdm_5fservice_5fswap_5ffp_77',['celix_dm_service_swap_fp',['../celix__dm__service__dependency_8h.html#a8a77266cc94a0f019b29d75a8e54995d',1,'celix_dm_service_dependency.h']]],
-  ['celix_5fdm_5fservice_5fswap_5fwith_5fprops_5ffp_78',['celix_dm_service_swap_with_props_fp',['../celix__dm__service__dependency_8h.html#a6b4b49e1cbd6865c5dc14e94086f629f',1,'celix_dm_service_dependency.h']]],
-  ['celix_5fdm_5fservice_5fupdate_5ffp_79',['celix_dm_service_update_fp',['../celix__dm__service__dependency_8h.html#a3aab7f5d65c74eb819047e5ec1f4c05f',1,'celix_dm_service_dependency.h']]],
-  ['celix_5fdm_5fservice_5fupdate_5fwith_5fprops_5ffp_80',['celix_dm_service_update_with_props_fp',['../celix__dm__service__dependency_8h.html#afb8ee50fcfc77f274578d85a70bb2b94',1,'celix_dm_service_dependency.h']]],
-  ['celix_5fdmcomponent_5faddinterface_81',['celix_dmComponent_addInterface',['../celix__dm__component_8h.html#aafd2f2eff931784f70eb2a37e943446a',1,'celix_dm_component.h']]],
-  ['celix_5fdmcomponent_5faddservicedependency_82',['celix_dmComponent_addServiceDependency',['../celix__dm__component_8h.html#ad7d4a85042adba432bd8d398d9c106b8',1,'celix_dm_component.h']]],
-  ['celix_5fdmcomponent_5fcreate_83',['celix_dmComponent_create',['../celix__dm__component_8h.html#adf75af7d75d2c1f7e53d78f23f97d40c',1,'celix_dm_component.h']]],
-  ['celix_5fdmcomponent_5fcurrentstate_84',['celix_dmComponent_currentState',['../celix__dm__component_8h.html#af98630b8f8980c906d5aefc5f8a82c99',1,'celix_dm_component.h']]],
-  ['celix_5fdmcomponent_5fdestroy_85',['celix_dmComponent_destroy',['../celix__dm__component_8h.html#a56a8c5019a43eb96d62fd9e98cb56ba8',1,'celix_dm_component.h']]],
-  ['celix_5fdmcomponent_5fdestroycomponentinfo_86',['celix_dmComponent_destroyComponentInfo',['../celix__dm__component_8h.html#af62df6623e978a1cc62b3ca8ab5863c3',1,'celix_dm_component.h']]],
-  ['celix_5fdmcomponent_5fgetbundlecontext_87',['celix_dmComponent_getBundleContext',['../celix__dm__component_8h.html#a99be995e9e94514fc4f6782dd48456ba',1,'celix_dm_component.h']]],
-  ['celix_5fdmcomponent_5fgetcomponentinfo_88',['celix_dmComponent_getComponentInfo',['../celix__dm__component_8h.html#a3345d3bfa11070069d745131668d02ae',1,'celix_dm_component.h']]],
-  ['celix_5fdmcomponent_5fgetimplementation_89',['celix_dmComponent_getImplementation',['../celix__dm__component_8h.html#a5647f75ea3a3c3755940ee42f51320a8',1,'celix_dm_component.h']]],
-  ['celix_5fdmcomponent_5fgetinterfaces_90',['celix_dmComponent_getInterfaces',['../celix__dm__component_8h.html#ae0312e00f51f85d8e48b18020964e21f',1,'celix_dm_component.h']]],
-  ['celix_5fdmcomponent_5fgetname_91',['celix_dmComponent_getName',['../celix__dm__component_8h.html#a30de51befa422dc65ac89ae3d9b8319f',1,'celix_dm_component.h']]],
-  ['celix_5fdmcomponent_5fisactive_92',['celix_dmComponent_isActive',['../celix__dm__component_8h.html#a7bbf1a0da294be7ba9ae8272f1b938d7',1,'celix_dm_component.h']]],
-  ['celix_5fdmcomponent_5fremoveinterface_93',['celix_dmComponent_removeInterface',['../celix__dm__component_8h.html#a3e4a6e8e87cc8d3b3655eaaa06ad261e',1,'celix_dm_component.h']]],
-  ['celix_5fdmcomponent_5fremoveservicedependency_94',['celix_dmComponent_removeServiceDependency',['../celix__dm__component_8h.html#a0ce2c610cbe3a329ea6561eb5cda0d8d',1,'celix_dm_component.h']]],
-  ['celix_5fdmcomponent_5fsetcallbacks_95',['CELIX_DMCOMPONENT_SETCALLBACKS',['../celix__dm__component_8h.html#aad1f80b04be28b8e7bf495113c2fe452',1,'CELIX_DMCOMPONENT_SETCALLBACKS():&#160;celix_dm_component.h'],['../celix__dm__component_8h.html#a017e996f6b1db5e902bf3a9cc043634f',1,'celix_dmComponent_setCallbacks(celix_dm_component_t *component, celix_dm_cmp_lifecycle_fpt init, celix_dm_cmp_lifecycle_fpt start, celix_dm_cmp_lifecycle_fpt stop, celix_dm_cmp_lifecycle_fpt deinit):&#160;celix_dm_component.h']]],
-  ['celix_5fdmcomponent_5fsetclanguageproperty_96',['celix_dmComponent_setCLanguageProperty',['../celix__dm__component_8h.html#ab8bd7a13007bda2619c1764886eabeab',1,'celix_dm_component.h']]],
-  ['celix_5fdmcomponent_5fsetimplementation_97',['celix_dmComponent_setImplementation',['../celix__dm__component_8h.html#a45a01df6ed75d8530563d52f58a0b165',1,'celix_dm_component.h']]],
-  ['celix_5fdmservicedependency_5fcreate_98',['celix_dmServiceDependency_create',['../celix__dm__service__dependency_8h.html#a588b147bec75a501fac3b35076fc98a3',1,'celix_dm_service_dependency.h']]],
-  ['celix_5fdmservicedependency_5fcreateinfo_99',['celix_dmServiceDependency_createInfo',['../celix__dm__service__dependency_8h.html#a0b84d9164563664da40491151f7d7131',1,'celix_dm_service_dependency.h']]],
-  ['celix_5fdmservicedependency_5fdestroy_100',['celix_dmServiceDependency_destroy',['../celix__dm__service__dependency_8h.html#ac282334d66c3cfc4fda1b67245172979',1,'celix_dm_service_dependency.h']]],
-  ['celix_5fdmservicedependency_5fdestroyinfo_101',['celix_dmServiceDependency_destroyInfo',['../celix__dm__service__dependency_8h.html#acb96da27c0087a05d885b0f55756de8a',1,'celix_dm_service_dependency.h']]],
-  ['celix_5fdmservicedependency_5fgetfilter_102',['celix_dmServiceDependency_getFilter',['../celix__dm__service__dependency_8h.html#a487a41d56ea2bf1aa51cd7f7e83ff844',1,'celix_dm_service_dependency.h']]],
-  ['celix_5fdmservicedependency_5fgetstrategy_103',['celix_dmServiceDependency_getStrategy',['../celix__dm__service__dependency_8h.html#a8365396c6363ad98b66725243f97f8ea',1,'celix_dm_service_dependency.h']]],
-  ['celix_5fdmservicedependency_5fsetaddclanguagefilter_104',['celix_dmServiceDependency_setAddCLanguageFilter',['../celix__dm__service__dependency_8h.html#a9aec79471c46aecc7412523fe839e549',1,'celix_dm_service_dependency.h']]],
-  ['celix_5fdmservicedependency_5fsetcallback_105',['celix_dmServiceDependency_setCallback',['../celix__dm__service__dependency_8h.html#a1a731a456c8e617acfa4d81a6357959c',1,'celix_dm_service_dependency.h']]],
-  ['celix_5fdmservicedependency_5fsetcallbackhandle_106',['celix_dmServiceDependency_setCallbackHandle',['../celix__dm__service__dependency_8h.html#aebe0669933d37f9fd1c3fdc873127d78',1,'celix_dm_service_dependency.h']]],
-  ['celix_5fdmservicedependency_5fsetcallbackswithoptions_107',['celix_dmServiceDependency_setCallbacksWithOptions',['../celix__dm__service__dependency_8h.html#a31898ef1ad5f9695dc85a24202020ebe',1,'celix_dm_service_dependency.h']]],
-  ['celix_5fdmservicedependency_5fsetcallbackwithproperties_108',['celix_dmServiceDependency_setCallbackWithProperties',['../celix__dm__service__dependency_8h.html#a9bdfec7b27301bd71dd4f45fcdd11568',1,'celix_dm_service_dependency.h']]],
-  ['celix_5fdmservicedependency_5fsetrequired_109',['celix_dmServiceDependency_setRequired',['../celix__dm__service__dependency_8h.html#a0c33bcf502f8683bce3cf382c4bdc76a',1,'celix_dm_service_dependency.h']]],
-  ['celix_5fdmservicedependency_5fsetservice_110',['celix_dmServiceDependency_setService',['../celix__dm__service__dependency_8h.html#a2602a6526ef6cde42d606c9ed958cec7',1,'celix_dm_service_dependency.h']]],
-  ['celix_5fdmservicedependency_5fsetstrategy_111',['celix_dmServiceDependency_setStrategy',['../celix__dm__service__dependency_8h.html#a9d833904b765bee7073ec41828ea7d2e',1,'celix_dm_service_dependency.h']]],
-  ['celix_5fempty_5fbundle_5ftracking_5foptions_112',['CELIX_EMPTY_BUNDLE_TRACKING_OPTIONS',['../celix__bundle__context_8h.html#a3c68ea824e7268d26852785ea92c777c',1,'celix_bundle_context.h']]],
-  ['celix_5fempty_5fdm_5fservice_5fdependency_5fcallback_5foptions_113',['CELIX_EMPTY_DM_SERVICE_DEPENDENCY_CALLBACK_OPTIONS',['../celix__dm__service__dependency_8h.html#a1b153c6b38f75362450aad5b3ad729f7',1,'celix_dm_service_dependency.h']]],
-  ['celix_5fempty_5fservice_5ffilter_5foptions_114',['CELIX_EMPTY_SERVICE_FILTER_OPTIONS',['../celix__bundle__context_8h.html#a7199f710ea1c193d361e8c151a92bc6a',1,'celix_bundle_context.h']]],
-  ['celix_5fempty_5fservice_5fregistration_5foptions_115',['CELIX_EMPTY_SERVICE_REGISTRATION_OPTIONS',['../celix__bundle__context_8h.html#a6020a7ba8712efd0847fdf28e74eb69c',1,'celix_bundle_context.h']]],
-  ['celix_5fempty_5fservice_5ftracking_5foptions_116',['CELIX_EMPTY_SERVICE_TRACKING_OPTIONS',['../celix__bundle__context_8h.html#ae86a28f8d19f6c1e2951172335e0e909',1,'celix_bundle_context.h']]],
-  ['celix_5fempty_5fservice_5fuse_5foptions_117',['CELIX_EMPTY_SERVICE_USE_OPTIONS',['../celix__bundle__context_8h.html#a6024cf4864950551fa9df01806a69865',1,'celix_bundle_context.h']]],
-  ['celix_5fframework_2eh_118',['celix_framework.h',['../celix__framework_8h.html',1,'']]],
-  ['celix_5fframework_5fgetframeworkbundle_119',['celix_framework_getFrameworkBundle',['../celix__framework_8h.html#ae980ec9c8f83f8a3e65dc7da9d794f18',1,'celix_framework.h']]],
-  ['celix_5fframework_5fgetframeworkcontext_120',['celix_framework_getFrameworkContext',['../celix__framework_8h.html#aa2e913753f841b3b0b22c196b39d03b1',1,'celix_framework.h']]],
-  ['celix_5fframework_5fgetuuid_121',['celix_framework_getUUID',['../celix__framework_8h.html#a671ba53e13abea3d4eb328a66b62802f',1,'celix_framework.h']]],
-  ['celix_5fframework_5fusebundle_122',['celix_framework_useBundle',['../celix__framework_8h.html#ab158bb807ea2171c5d20076cb457c8d1',1,'celix_framework.h']]],
-  ['celix_5fframework_5fusebundles_123',['celix_framework_useBundles',['../celix__framework_8h.html#a192ba45dd2a7175fd4d19c70da59f9ab',1,'celix_framework.h']]],
-  ['celix_5fgen_5fbundle_5factivator_124',['CELIX_GEN_BUNDLE_ACTIVATOR',['../celix__bundle__activator_8h.html#a47b446e557ecaff78dafa19ba3e340c2',1,'celix_bundle_activator.h']]],
-  ['celix_5fservice_5ffilter_5foptions_125',['celix_service_filter_options',['../structcelix__service__filter__options.html',1,'']]],
-  ['celix_5fservice_5ffilter_5foptions_5ft_126',['celix_service_filter_options_t',['../celix__bundle__context_8h.html#a7eab80d54386fb32b91dd414846c2d45',1,'celix_bundle_context.h']]],
-  ['celix_5fservice_5fregistration_5foptions_127',['celix_service_registration_options',['../structcelix__service__registration__options.html',1,'']]],
-  ['celix_5fservice_5fregistration_5foptions_5ft_128',['celix_service_registration_options_t',['../celix__bundle__context_8h.html#aacaeb063a21a237ac515607d689eebb8',1,'celix_bundle_context.h']]],
-  ['celix_5fservice_5ftracker_5finfo_129',['celix_service_tracker_info',['../structcelix__service__tracker__info.html',1,'']]],
-  ['celix_5fservice_5ftracker_5finfo_5ft_130',['celix_service_tracker_info_t',['../celix__bundle__context_8h.html#aea7e7fcd4022db2f9f4123dd3b7a794a',1,'celix_bundle_context.h']]],
-  ['celix_5fservice_5ftracking_5foptions_131',['celix_service_tracking_options',['../structcelix__service__tracking__options.html',1,'']]],
-  ['celix_5fservice_5ftracking_5foptions_5ft_132',['celix_service_tracking_options_t',['../celix__bundle__context_8h.html#a5c017c82bf57881c04f8c6f545b25a75',1,'celix_bundle_context.h']]],
-  ['celix_5fservice_5fuse_5foptions_133',['celix_service_use_options',['../structcelix__service__use__options.html',1,'']]],
-  ['celix_5fservice_5fuse_5foptions_5ft_134',['celix_service_use_options_t',['../celix__bundle__context_8h.html#ae2da28d23f5246c20c6b675b80e7d130',1,'celix_bundle_context.h']]],
-  ['components_135',['components',['../structcelix__dm__dependency__manager__info__struct.html#a3d4be4557e6b124bd6b2c586fddfb75b',1,'celix_dm_dependency_manager_info_struct']]],
-  ['count_136',['count',['../structcelix__dm__service__dependency__info__struct.html#ad9284f87c8033a14e5ba5de8118b7f09',1,'celix_dm_service_dependency_info_struct']]]
-];
diff --git a/static/docs/2.2.1/html/search/all_3.html b/static/docs/2.2.1/html/search/all_3.html
deleted file mode 100755
index f9df19b..0000000
--- a/static/docs/2.2.1/html/search/all_3.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="all_3.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-createResults();
-/* @license-end */
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
-window.addEventListener("message", function(event) {
-  if (event.data == "take_focus") {
-    var elem = searchResults.NavNext(0);
-    if (elem) elem.focus();
-  }
-});
-/* @license-end */
---></script>
-</div>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/search/all_3.js b/static/docs/2.2.1/html/search/all_3.js
deleted file mode 100755
index 7d921a9..0000000
--- a/static/docs/2.2.1/html/search/all_3.js
+++ /dev/null
@@ -1,18 +0,0 @@
-var searchData=
-[
-  ['dependency_5flist_137',['dependency_list',['../structcelix__dm__component__info__struct.html#abb385ead04139565ed13ed34841d1bda',1,'celix_dm_component_info_struct']]],
-  ['dm_5fcmp_5fstate_5finactive_138',['DM_CMP_STATE_INACTIVE',['../celix__dm__component_8h.html#ab8b6c8d35fe5b976b8f58a6816e6c4e4aedd3ab4f7703955241fecb14df3fb59e',1,'celix_dm_component.h']]],
-  ['dm_5fcmp_5fstate_5finstantiated_5fand_5fwaiting_5ffor_5frequired_139',['DM_CMP_STATE_INSTANTIATED_AND_WAITING_FOR_REQUIRED',['../celix__dm__component_8h.html#ab8b6c8d35fe5b976b8f58a6816e6c4e4ad948b8a0aa722ce528335632176dac3e',1,'celix_dm_component.h']]],
-  ['dm_5fcmp_5fstate_5ftracking_5foptional_140',['DM_CMP_STATE_TRACKING_OPTIONAL',['../celix__dm__component_8h.html#ab8b6c8d35fe5b976b8f58a6816e6c4e4a582ed79692df8863f9ae6b5663cf1a46',1,'celix_dm_component.h']]],
-  ['dm_5fcmp_5fstate_5fwaiting_5ffor_5frequired_141',['DM_CMP_STATE_WAITING_FOR_REQUIRED',['../celix__dm__component_8h.html#ab8b6c8d35fe5b976b8f58a6816e6c4e4a76d77f632cc37534055bb227446f5ffc',1,'celix_dm_component.h']]],
-  ['dm_5fcomponent_5finfo_5fpt_142',['dm_component_info_pt',['../celix__dm__info_8h.html#a4325313bb7b98b6eded2212a6edd065a',1,'celix_dm_info.h']]],
-  ['dm_5fcomponent_5finfo_5ft_143',['dm_component_info_t',['../celix__dm__info_8h.html#a81bba27d8f869e77dd921c7cd8ac35d7',1,'celix_dm_info.h']]],
-  ['dm_5fdependency_5fmanager_5finfo_5fpt_144',['dm_dependency_manager_info_pt',['../celix__dm__info_8h.html#a230d51a712bc30bd2b52126e17f63738',1,'celix_dm_info.h']]],
-  ['dm_5fdependency_5fmanager_5finfo_5ft_145',['dm_dependency_manager_info_t',['../celix__dm__info_8h.html#aeaa11da320e45fdeef41c441bff70f02',1,'celix_dm_info.h']]],
-  ['dm_5finterface_5finfo_5fpt_146',['dm_interface_info_pt',['../celix__dm__info_8h.html#abb40885e5ab16c4701927d7095194ee2',1,'celix_dm_info.h']]],
-  ['dm_5finterface_5finfo_5ft_147',['dm_interface_info_t',['../celix__dm__info_8h.html#a3c8c9b3b3b6d6cb2853ce22f337ed7f0',1,'celix_dm_info.h']]],
-  ['dm_5fservice_5fdependency_5finfo_5fpt_148',['dm_service_dependency_info_pt',['../celix__dm__info_8h.html#a0a06988849c18fd4848452086f36ed6e',1,'celix_dm_info.h']]],
-  ['dm_5fservice_5fdependency_5finfo_5ft_149',['dm_service_dependency_info_t',['../celix__dm__info_8h.html#a553833e914505261622b13563c8a045e',1,'celix_dm_info.h']]],
-  ['dm_5fservice_5fdependency_5fstrategy_5flocking_150',['DM_SERVICE_DEPENDENCY_STRATEGY_LOCKING',['../celix__dm__service__dependency_8h.html#a80a698d57b244ab54ffad631a41ae88ca6c94c0c92189ea864b218b45d2526db1',1,'celix_dm_service_dependency.h']]],
-  ['dm_5fservice_5fdependency_5fstrategy_5fsuspend_151',['DM_SERVICE_DEPENDENCY_STRATEGY_SUSPEND',['../celix__dm__service__dependency_8h.html#a80a698d57b244ab54ffad631a41ae88caf4c6748a0a1d0e04997c11847c737428',1,'celix_dm_service_dependency.h']]]
-];
diff --git a/static/docs/2.2.1/html/search/all_4.html b/static/docs/2.2.1/html/search/all_4.html
deleted file mode 100755
index aa2c933..0000000
--- a/static/docs/2.2.1/html/search/all_4.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="all_4.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-createResults();
-/* @license-end */
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
-window.addEventListener("message", function(event) {
-  if (event.data == "take_focus") {
-    var elem = searchResults.NavNext(0);
-    if (elem) elem.focus();
-  }
-});
-/* @license-end */
---></script>
-</div>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/search/all_4.js b/static/docs/2.2.1/html/search/all_4.js
deleted file mode 100755
index b4c605d..0000000
--- a/static/docs/2.2.1/html/search/all_4.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var searchData=
-[
-  ['filter_152',['filter',['../structcelix__service__tracker__info.html#a3cd52ce46875995a973fb6b65967d7e4',1,'celix_service_tracker_info::filter()'],['../structcelix__dm__service__dependency__info__struct.html#ac06a272ddf7c02e335be784082ba5e9f',1,'celix_dm_service_dependency_info_struct::filter()']]]
-];
diff --git a/static/docs/2.2.1/html/search/all_5.html b/static/docs/2.2.1/html/search/all_5.html
deleted file mode 100755
index 71848af..0000000
--- a/static/docs/2.2.1/html/search/all_5.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="all_5.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-createResults();
-/* @license-end */
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
-window.addEventListener("message", function(event) {
-  if (event.data == "take_focus") {
-    var elem = searchResults.NavNext(0);
-    if (elem) elem.focus();
-  }
-});
-/* @license-end */
---></script>
-</div>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/search/all_5.js b/static/docs/2.2.1/html/search/all_5.js
deleted file mode 100755
index f316059..0000000
--- a/static/docs/2.2.1/html/search/all_5.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var searchData=
-[
-  ['id_153',['id',['../structcelix__dm__component__info__struct.html#a08281c5b4f78ba0d025b37b18c3201b5',1,'celix_dm_component_info_struct']]],
-  ['interfaces_154',['interfaces',['../structcelix__dm__component__info__struct.html#abbbe72fb049ad5ebb5941421929ae51a',1,'celix_dm_component_info_struct']]]
-];
diff --git a/static/docs/2.2.1/html/search/all_6.html b/static/docs/2.2.1/html/search/all_6.html
deleted file mode 100755
index a24601b..0000000
--- a/static/docs/2.2.1/html/search/all_6.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="all_6.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-createResults();
-/* @license-end */
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
-window.addEventListener("message", function(event) {
-  if (event.data == "take_focus") {
-    var elem = searchResults.NavNext(0);
-    if (elem) elem.focus();
-  }
-});
-/* @license-end */
---></script>
-</div>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/search/all_6.js b/static/docs/2.2.1/html/search/all_6.js
deleted file mode 100755
index 1d4970c..0000000
--- a/static/docs/2.2.1/html/search/all_6.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var searchData=
-[
-  ['name_155',['name',['../structcelix__dm__interface__info__struct.html#ae2306753d7867ac9dc13d0d1b00f60be',1,'celix_dm_interface_info_struct::name()'],['../structcelix__dm__component__info__struct.html#aad1da907cd6f4a75f85c8321b1f6ce7a',1,'celix_dm_component_info_struct::name()']]]
-];
diff --git a/static/docs/2.2.1/html/search/all_7.html b/static/docs/2.2.1/html/search/all_7.html
deleted file mode 100755
index e42e45b..0000000
--- a/static/docs/2.2.1/html/search/all_7.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="all_7.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-createResults();
-/* @license-end */
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
-window.addEventListener("message", function(event) {
-  if (event.data == "take_focus") {
-    var elem = searchResults.NavNext(0);
-    if (elem) elem.focus();
-  }
-});
-/* @license-end */
---></script>
-</div>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/search/all_7.js b/static/docs/2.2.1/html/search/all_7.js
deleted file mode 100755
index f82fff3..0000000
--- a/static/docs/2.2.1/html/search/all_7.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var searchData=
-[
-  ['onbundleevent_156',['onBundleEvent',['../structcelix__bundle__tracker__options.html#aae47b1896e9b058f9a43d26246241398',1,'celix_bundle_tracker_options']]],
-  ['onstarted_157',['onStarted',['../structcelix__bundle__tracker__options.html#a044b58b6aa64edfd3f49921fdf6756bb',1,'celix_bundle_tracker_options']]],
-  ['onstopped_158',['onStopped',['../structcelix__bundle__tracker__options.html#aeac272edbc00cb62f7071df0699dd492',1,'celix_bundle_tracker_options']]],
-  ['opts_5finit_159',['OPTS_INIT',['../structcelix__service__registration__options.html#a9c24c1179305b68840149449b1fa6d87',1,'celix_service_registration_options::OPTS_INIT()'],['../structcelix__service__registration__options.html#a94eb8e6e1af0cca435d99aa5d2457fca',1,'celix_service_registration_options::OPTS_INIT()'],['../structcelix__service__registration__options.html#a86179f0c7a032f3309440a2cd8d91a61',1,'celix_service_registration_options::OPTS_INIT()'],['../structcelix__service__registration__options.html#a6e1274cc3b190b3dc05c7c145f57d407',1,'celix_service_registration_options::OPTS_INIT()'],['../structcelix__service__registration__options.html#ae44ee7cc15427e406a67b0396201700c',1,'celix_service_registration_options::OPTS_INIT()'],['../structcelix__service__registration__options.html#af9b1a622c06a3053ed3917649241fc23',1,'celix_service_registration_options::OPTS_INIT()'],['../structcelix__service__filter__options.html#addb2e1e8fcce127512d272383e78cbd1',1,'celix_service_filter_options::OPTS_INIT()'],['../structcelix__service__filter__options.html#a65bea04c378ef46d841046ffbb2f805c',1,'celix_service_filter_options::OPTS_INIT()'],['../structcelix__service__filter__options.html#ac15f30b81e60826290a29fb12da6684a',1,'celix_service_filter_options::OPTS_INIT()'],['../structcelix__service__filter__options.html#a9286701a4c946d1ed28afde05cd34d51',1,'celix_service_filter_options::OPTS_INIT()'],['../structcelix__service__filter__options.html#a70cc8aee445c1a24782454393f12ff98',1,'celix_service_filter_options::OPTS_INIT()'],['../structcelix__service__tracking__options.html#a9272f1870b544b28329545b84f3425c2',1,'celix_service_tracking_options::OPTS_INIT()'],['../structcelix__service__tracking__options.html#a2fcaf1b7274379695cc9a4bb1c719d86',1,'celix_service_tracking_options::OPTS_INIT()'],['../structcelix__service__use__options.html#addad49a12179fff8b2dbf5313d70952f',1,'celix_service_use_options::OPTS_INIT()'],['../structcelix__service__use__options.html#ae24e3e35d7d92d5b41d58b53506bcca0',1,'celix_service_use_options::OPTS_INIT()'],['../structcelix__service__use__options.html#a31a9834b87a5c2c3ed6b8532cd85c653',1,'celix_service_use_options::OPTS_INIT()'],['../structcelix__bundle__tracker__options.html#a80ebdcbb840fa97d81e1250fba2d20af',1,'celix_bundle_tracker_options::OPTS_INIT()'],['../structcelix__bundle__tracker__options.html#a54a11feb78bd514c95f7c9aecaa7f212',1,'celix_bundle_tracker_options::OPTS_INIT()'],['../celix__bundle__context_8h.html#a8ebbfbe80221fe8adc8c3afbdceb570f',1,'OPTS_INIT():&#160;celix_bundle_context.h']]]
-];
diff --git a/static/docs/2.2.1/html/search/all_8.html b/static/docs/2.2.1/html/search/all_8.html
deleted file mode 100755
index 888e619..0000000
--- a/static/docs/2.2.1/html/search/all_8.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="all_8.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-createResults();
-/* @license-end */
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
-window.addEventListener("message", function(event) {
-  if (event.data == "take_focus") {
-    var elem = searchResults.NavNext(0);
-    if (elem) elem.focus();
-  }
-});
-/* @license-end */
---></script>
-</div>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/search/all_8.js b/static/docs/2.2.1/html/search/all_8.js
deleted file mode 100755
index 5a14312..0000000
--- a/static/docs/2.2.1/html/search/all_8.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var searchData=
-[
-  ['properties_160',['properties',['../structcelix__dm__interface__info__struct.html#a6fb90a86fdaa6aefde5e598f5ca85e2c',1,'celix_dm_interface_info_struct']]]
-];
diff --git a/static/docs/2.2.1/html/search/all_9.html b/static/docs/2.2.1/html/search/all_9.html
deleted file mode 100755
index dc988f4..0000000
--- a/static/docs/2.2.1/html/search/all_9.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="all_9.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-createResults();
-/* @license-end */
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
-window.addEventListener("message", function(event) {
-  if (event.data == "take_focus") {
-    var elem = searchResults.NavNext(0);
-    if (elem) elem.focus();
-  }
-});
-/* @license-end */
---></script>
-</div>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/search/all_9.js b/static/docs/2.2.1/html/search/all_9.js
deleted file mode 100755
index 6cfcdaf..0000000
--- a/static/docs/2.2.1/html/search/all_9.js
+++ /dev/null
@@ -1,9 +0,0 @@
-var searchData=
-[
-  ['readme_2emd_161',['README.md',['../README_8md.html',1,'']]],
-  ['remove_162',['remove',['../structcelix__service__tracking__options.html#a8445caaae53d71a47c0289d2e3e5f882',1,'celix_service_tracking_options::remove()'],['../structcelix__dm__service__dependency__callback__options.html#a10fe45460fc65e1590a58477f515424b',1,'celix_dm_service_dependency_callback_options::remove()']]],
-  ['removewithowner_163',['removeWithOwner',['../structcelix__service__tracking__options.html#acf6dbcde52efbed145933e8a28f3f2e1',1,'celix_service_tracking_options']]],
-  ['removewithproperties_164',['removeWithProperties',['../structcelix__service__tracking__options.html#af75c423757dcd16bf90d57a5726ac98a',1,'celix_service_tracking_options']]],
-  ['removewithprops_165',['removeWithProps',['../structcelix__dm__service__dependency__callback__options.html#a54ee61c8ab040dc87de22588013316fd',1,'celix_dm_service_dependency_callback_options']]],
-  ['required_166',['required',['../structcelix__dm__service__dependency__info__struct.html#a8ad066c5fa5d75e9fb82add72cbfc705',1,'celix_dm_service_dependency_info_struct']]]
-];
diff --git a/static/docs/2.2.1/html/search/all_a.html b/static/docs/2.2.1/html/search/all_a.html
deleted file mode 100755
index 0ce816b..0000000
--- a/static/docs/2.2.1/html/search/all_a.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="all_a.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-createResults();
-/* @license-end */
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
-window.addEventListener("message", function(event) {
-  if (event.data == "take_focus") {
-    var elem = searchResults.NavNext(0);
-    if (elem) elem.focus();
-  }
-});
-/* @license-end */
---></script>
-</div>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/search/all_a.js b/static/docs/2.2.1/html/search/all_a.js
deleted file mode 100755
index 872a0c6..0000000
--- a/static/docs/2.2.1/html/search/all_a.js
+++ /dev/null
@@ -1,12 +0,0 @@
-var searchData=
-[
-  ['servicelanguage_167',['serviceLanguage',['../structcelix__service__tracker__info.html#a5baca60295d208fe0581a564c3627f65',1,'celix_service_tracker_info']]],
-  ['servicename_168',['serviceName',['../structcelix__service__tracker__info.html#a5f695cf6d8cd69e0c419298ded657546',1,'celix_service_tracker_info']]],
-  ['set_169',['set',['../structcelix__service__tracking__options.html#aa9e8b9cae7ea59ddb796a6bc904f57da',1,'celix_service_tracking_options::set()'],['../structcelix__dm__service__dependency__callback__options.html#a84e8cecdb9dd19f072d1b9c28fa95c8b',1,'celix_dm_service_dependency_callback_options::set()']]],
-  ['setwithowner_170',['setWithOwner',['../structcelix__service__tracking__options.html#a12a988b8f1f3bd3a2e61c65d82f14d59',1,'celix_service_tracking_options']]],
-  ['setwithproperties_171',['setWithProperties',['../structcelix__service__tracking__options.html#a256f8db1eecb89a8b71e4ef03ab11172',1,'celix_service_tracking_options']]],
-  ['setwithprops_172',['setWithProps',['../structcelix__dm__service__dependency__callback__options.html#a286bb094f7e4b4a9066e9b235aa8ade9',1,'celix_dm_service_dependency_callback_options']]],
-  ['state_173',['state',['../structcelix__dm__component__info__struct.html#a0c64e56c05452d29efc60ac8b75f7163',1,'celix_dm_component_info_struct']]],
-  ['swap_174',['swap',['../structcelix__dm__service__dependency__callback__options.html#a35b874e6fa5a6c3af03f09e6492e8b48',1,'celix_dm_service_dependency_callback_options']]],
-  ['swapwithprops_175',['swapWithProps',['../structcelix__dm__service__dependency__callback__options.html#a1e0bfcf2034cd6d69d954256d101598d',1,'celix_dm_service_dependency_callback_options']]]
-];
diff --git a/static/docs/2.2.1/html/search/all_b.html b/static/docs/2.2.1/html/search/all_b.html
deleted file mode 100755
index 28c2413..0000000
--- a/static/docs/2.2.1/html/search/all_b.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="all_b.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-createResults();
-/* @license-end */
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
-window.addEventListener("message", function(event) {
-  if (event.data == "take_focus") {
-    var elem = searchResults.NavNext(0);
-    if (elem) elem.focus();
-  }
-});
-/* @license-end */
---></script>
-</div>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/search/all_b.js b/static/docs/2.2.1/html/search/all_b.js
deleted file mode 100755
index 44c8fb5..0000000
--- a/static/docs/2.2.1/html/search/all_b.js
+++ /dev/null
@@ -1,6 +0,0 @@
-var searchData=
-[
-  ['use_176',['use',['../structcelix__service__use__options.html#ac7efa464a614a3faf6970a4917c596a7',1,'celix_service_use_options']]],
-  ['usewithowner_177',['useWithOwner',['../structcelix__service__use__options.html#a2ba3552bfc25500084bfaf2dbb0f46c5',1,'celix_service_use_options']]],
-  ['usewithproperties_178',['useWithProperties',['../structcelix__service__use__options.html#a8192eb7aa470178f78ea8c09c4574867',1,'celix_service_use_options']]]
-];
diff --git a/static/docs/2.2.1/html/search/classes_0.html b/static/docs/2.2.1/html/search/classes_0.html
deleted file mode 100755
index 5b441a3..0000000
--- a/static/docs/2.2.1/html/search/classes_0.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="classes_0.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-createResults();
-/* @license-end */
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
-window.addEventListener("message", function(event) {
-  if (event.data == "take_focus") {
-    var elem = searchResults.NavNext(0);
-    if (elem) elem.focus();
-  }
-});
-/* @license-end */
---></script>
-</div>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/search/classes_0.js b/static/docs/2.2.1/html/search/classes_0.js
deleted file mode 100755
index e470c55..0000000
--- a/static/docs/2.2.1/html/search/classes_0.js
+++ /dev/null
@@ -1,14 +0,0 @@
-var searchData=
-[
-  ['celix_5fbundle_5ftracker_5foptions_179',['celix_bundle_tracker_options',['../structcelix__bundle__tracker__options.html',1,'']]],
-  ['celix_5fdm_5fcomponent_5finfo_5fstruct_180',['celix_dm_component_info_struct',['../structcelix__dm__component__info__struct.html',1,'']]],
-  ['celix_5fdm_5fdependency_5fmanager_5finfo_5fstruct_181',['celix_dm_dependency_manager_info_struct',['../structcelix__dm__dependency__manager__info__struct.html',1,'']]],
-  ['celix_5fdm_5finterface_5finfo_5fstruct_182',['celix_dm_interface_info_struct',['../structcelix__dm__interface__info__struct.html',1,'']]],
-  ['celix_5fdm_5fservice_5fdependency_5fcallback_5foptions_183',['celix_dm_service_dependency_callback_options',['../structcelix__dm__service__dependency__callback__options.html',1,'']]],
-  ['celix_5fdm_5fservice_5fdependency_5finfo_5fstruct_184',['celix_dm_service_dependency_info_struct',['../structcelix__dm__service__dependency__info__struct.html',1,'']]],
-  ['celix_5fservice_5ffilter_5foptions_185',['celix_service_filter_options',['../structcelix__service__filter__options.html',1,'']]],
-  ['celix_5fservice_5fregistration_5foptions_186',['celix_service_registration_options',['../structcelix__service__registration__options.html',1,'']]],
-  ['celix_5fservice_5ftracker_5finfo_187',['celix_service_tracker_info',['../structcelix__service__tracker__info.html',1,'']]],
-  ['celix_5fservice_5ftracking_5foptions_188',['celix_service_tracking_options',['../structcelix__service__tracking__options.html',1,'']]],
-  ['celix_5fservice_5fuse_5foptions_189',['celix_service_use_options',['../structcelix__service__use__options.html',1,'']]]
-];
diff --git a/static/docs/2.2.1/html/search/close.png b/static/docs/2.2.1/html/search/close.png
deleted file mode 100755
index 9342d3d..0000000
--- a/static/docs/2.2.1/html/search/close.png
+++ /dev/null
Binary files differ
diff --git a/static/docs/2.2.1/html/search/defines_0.html b/static/docs/2.2.1/html/search/defines_0.html
deleted file mode 100755
index 54b9bc5..0000000
--- a/static/docs/2.2.1/html/search/defines_0.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="defines_0.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-createResults();
-/* @license-end */
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
-window.addEventListener("message", function(event) {
-  if (event.data == "take_focus") {
-    var elem = searchResults.NavNext(0);
-    if (elem) elem.focus();
-  }
-});
-/* @license-end */
---></script>
-</div>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/search/defines_0.js b/static/docs/2.2.1/html/search/defines_0.js
deleted file mode 100755
index fbd3697..0000000
--- a/static/docs/2.2.1/html/search/defines_0.js
+++ /dev/null
@@ -1,13 +0,0 @@
-var searchData=
-[
-  ['celix_5fdm_5fcomponent_5fmax_5fid_5flength_349',['CELIX_DM_COMPONENT_MAX_ID_LENGTH',['../celix__dm__component_8h.html#aa19dcff16825fa2e91656ff136d877cf',1,'celix_dm_component.h']]],
-  ['celix_5fdm_5fcomponent_5fmax_5fname_5flength_350',['CELIX_DM_COMPONENT_MAX_NAME_LENGTH',['../celix__dm__component_8h.html#af8861849eb5e4057def1bb12a5111d00',1,'celix_dm_component.h']]],
-  ['celix_5fdmcomponent_5fsetcallbacks_351',['CELIX_DMCOMPONENT_SETCALLBACKS',['../celix__dm__component_8h.html#aad1f80b04be28b8e7bf495113c2fe452',1,'celix_dm_component.h']]],
-  ['celix_5fempty_5fbundle_5ftracking_5foptions_352',['CELIX_EMPTY_BUNDLE_TRACKING_OPTIONS',['../celix__bundle__context_8h.html#a3c68ea824e7268d26852785ea92c777c',1,'celix_bundle_context.h']]],
-  ['celix_5fempty_5fdm_5fservice_5fdependency_5fcallback_5foptions_353',['CELIX_EMPTY_DM_SERVICE_DEPENDENCY_CALLBACK_OPTIONS',['../celix__dm__service__dependency_8h.html#a1b153c6b38f75362450aad5b3ad729f7',1,'celix_dm_service_dependency.h']]],
-  ['celix_5fempty_5fservice_5ffilter_5foptions_354',['CELIX_EMPTY_SERVICE_FILTER_OPTIONS',['../celix__bundle__context_8h.html#a7199f710ea1c193d361e8c151a92bc6a',1,'celix_bundle_context.h']]],
-  ['celix_5fempty_5fservice_5fregistration_5foptions_355',['CELIX_EMPTY_SERVICE_REGISTRATION_OPTIONS',['../celix__bundle__context_8h.html#a6020a7ba8712efd0847fdf28e74eb69c',1,'celix_bundle_context.h']]],
-  ['celix_5fempty_5fservice_5ftracking_5foptions_356',['CELIX_EMPTY_SERVICE_TRACKING_OPTIONS',['../celix__bundle__context_8h.html#ae86a28f8d19f6c1e2951172335e0e909',1,'celix_bundle_context.h']]],
-  ['celix_5fempty_5fservice_5fuse_5foptions_357',['CELIX_EMPTY_SERVICE_USE_OPTIONS',['../celix__bundle__context_8h.html#a6024cf4864950551fa9df01806a69865',1,'celix_bundle_context.h']]],
-  ['celix_5fgen_5fbundle_5factivator_358',['CELIX_GEN_BUNDLE_ACTIVATOR',['../celix__bundle__activator_8h.html#a47b446e557ecaff78dafa19ba3e340c2',1,'celix_bundle_activator.h']]]
-];
diff --git a/static/docs/2.2.1/html/search/defines_1.html b/static/docs/2.2.1/html/search/defines_1.html
deleted file mode 100755
index 024d8be..0000000
--- a/static/docs/2.2.1/html/search/defines_1.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="defines_1.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-createResults();
-/* @license-end */
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
-window.addEventListener("message", function(event) {
-  if (event.data == "take_focus") {
-    var elem = searchResults.NavNext(0);
-    if (elem) elem.focus();
-  }
-});
-/* @license-end */
---></script>
-</div>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/search/defines_1.js b/static/docs/2.2.1/html/search/defines_1.js
deleted file mode 100755
index a6f45e1..0000000
--- a/static/docs/2.2.1/html/search/defines_1.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var searchData=
-[
-  ['opts_5finit_359',['OPTS_INIT',['../celix__bundle__context_8h.html#a8ebbfbe80221fe8adc8c3afbdceb570f',1,'celix_bundle_context.h']]]
-];
diff --git a/static/docs/2.2.1/html/search/enums_0.html b/static/docs/2.2.1/html/search/enums_0.html
deleted file mode 100755
index e99c489..0000000
--- a/static/docs/2.2.1/html/search/enums_0.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="enums_0.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-createResults();
-/* @license-end */
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
-window.addEventListener("message", function(event) {
-  if (event.data == "take_focus") {
-    var elem = searchResults.NavNext(0);
-    if (elem) elem.focus();
-  }
-});
-/* @license-end */
---></script>
-</div>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/search/enums_0.js b/static/docs/2.2.1/html/search/enums_0.js
deleted file mode 100755
index 10f7513..0000000
--- a/static/docs/2.2.1/html/search/enums_0.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var searchData=
-[
-  ['celix_5fdm_5fcomponent_5fstate_5fenum_341',['celix_dm_component_state_enum',['../celix__dm__component_8h.html#ab8b6c8d35fe5b976b8f58a6816e6c4e4',1,'celix_dm_component.h']]],
-  ['celix_5fdm_5fservice_5fdependency_5fstrategy_5fenum_342',['celix_dm_service_dependency_strategy_enum',['../celix__dm__service__dependency_8h.html#a80a698d57b244ab54ffad631a41ae88c',1,'celix_dm_service_dependency.h']]]
-];
diff --git a/static/docs/2.2.1/html/search/enumvalues_0.html b/static/docs/2.2.1/html/search/enumvalues_0.html
deleted file mode 100755
index f740569..0000000
--- a/static/docs/2.2.1/html/search/enumvalues_0.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="enumvalues_0.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-createResults();
-/* @license-end */
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
-window.addEventListener("message", function(event) {
-  if (event.data == "take_focus") {
-    var elem = searchResults.NavNext(0);
-    if (elem) elem.focus();
-  }
-});
-/* @license-end */
---></script>
-</div>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/search/enumvalues_0.js b/static/docs/2.2.1/html/search/enumvalues_0.js
deleted file mode 100755
index b30a32f..0000000
--- a/static/docs/2.2.1/html/search/enumvalues_0.js
+++ /dev/null
@@ -1,9 +0,0 @@
-var searchData=
-[
-  ['dm_5fcmp_5fstate_5finactive_343',['DM_CMP_STATE_INACTIVE',['../celix__dm__component_8h.html#ab8b6c8d35fe5b976b8f58a6816e6c4e4aedd3ab4f7703955241fecb14df3fb59e',1,'celix_dm_component.h']]],
-  ['dm_5fcmp_5fstate_5finstantiated_5fand_5fwaiting_5ffor_5frequired_344',['DM_CMP_STATE_INSTANTIATED_AND_WAITING_FOR_REQUIRED',['../celix__dm__component_8h.html#ab8b6c8d35fe5b976b8f58a6816e6c4e4ad948b8a0aa722ce528335632176dac3e',1,'celix_dm_component.h']]],
-  ['dm_5fcmp_5fstate_5ftracking_5foptional_345',['DM_CMP_STATE_TRACKING_OPTIONAL',['../celix__dm__component_8h.html#ab8b6c8d35fe5b976b8f58a6816e6c4e4a582ed79692df8863f9ae6b5663cf1a46',1,'celix_dm_component.h']]],
-  ['dm_5fcmp_5fstate_5fwaiting_5ffor_5frequired_346',['DM_CMP_STATE_WAITING_FOR_REQUIRED',['../celix__dm__component_8h.html#ab8b6c8d35fe5b976b8f58a6816e6c4e4a76d77f632cc37534055bb227446f5ffc',1,'celix_dm_component.h']]],
-  ['dm_5fservice_5fdependency_5fstrategy_5flocking_347',['DM_SERVICE_DEPENDENCY_STRATEGY_LOCKING',['../celix__dm__service__dependency_8h.html#a80a698d57b244ab54ffad631a41ae88ca6c94c0c92189ea864b218b45d2526db1',1,'celix_dm_service_dependency.h']]],
-  ['dm_5fservice_5fdependency_5fstrategy_5fsuspend_348',['DM_SERVICE_DEPENDENCY_STRATEGY_SUSPEND',['../celix__dm__service__dependency_8h.html#a80a698d57b244ab54ffad631a41ae88caf4c6748a0a1d0e04997c11847c737428',1,'celix_dm_service_dependency.h']]]
-];
diff --git a/static/docs/2.2.1/html/search/files_0.html b/static/docs/2.2.1/html/search/files_0.html
deleted file mode 100755
index 182d7eb..0000000
--- a/static/docs/2.2.1/html/search/files_0.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="files_0.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-createResults();
-/* @license-end */
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
-window.addEventListener("message", function(event) {
-  if (event.data == "take_focus") {
-    var elem = searchResults.NavNext(0);
-    if (elem) elem.focus();
-  }
-});
-/* @license-end */
---></script>
-</div>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/search/files_0.js b/static/docs/2.2.1/html/search/files_0.js
deleted file mode 100755
index 034d17a..0000000
--- a/static/docs/2.2.1/html/search/files_0.js
+++ /dev/null
@@ -1,11 +0,0 @@
-var searchData=
-[
-  ['celix_5fapi_2eh_190',['celix_api.h',['../celix__api_8h.html',1,'']]],
-  ['celix_5fbundle_2eh_191',['celix_bundle.h',['../celix__bundle_8h.html',1,'']]],
-  ['celix_5fbundle_5factivator_2eh_192',['celix_bundle_activator.h',['../celix__bundle__activator_8h.html',1,'']]],
-  ['celix_5fbundle_5fcontext_2eh_193',['celix_bundle_context.h',['../celix__bundle__context_8h.html',1,'']]],
-  ['celix_5fdm_5fcomponent_2eh_194',['celix_dm_component.h',['../celix__dm__component_8h.html',1,'']]],
-  ['celix_5fdm_5finfo_2eh_195',['celix_dm_info.h',['../celix__dm__info_8h.html',1,'']]],
-  ['celix_5fdm_5fservice_5fdependency_2eh_196',['celix_dm_service_dependency.h',['../celix__dm__service__dependency_8h.html',1,'']]],
-  ['celix_5fframework_2eh_197',['celix_framework.h',['../celix__framework_8h.html',1,'']]]
-];
diff --git a/static/docs/2.2.1/html/search/files_1.html b/static/docs/2.2.1/html/search/files_1.html
deleted file mode 100755
index 9448113..0000000
--- a/static/docs/2.2.1/html/search/files_1.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="files_1.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-createResults();
-/* @license-end */
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
-window.addEventListener("message", function(event) {
-  if (event.data == "take_focus") {
-    var elem = searchResults.NavNext(0);
-    if (elem) elem.focus();
-  }
-});
-/* @license-end */
---></script>
-</div>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/search/files_1.js b/static/docs/2.2.1/html/search/files_1.js
deleted file mode 100755
index 454773b..0000000
--- a/static/docs/2.2.1/html/search/files_1.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var searchData=
-[
-  ['readme_2emd_198',['README.md',['../README_8md.html',1,'']]]
-];
diff --git a/static/docs/2.2.1/html/search/functions_0.html b/static/docs/2.2.1/html/search/functions_0.html
deleted file mode 100755
index 4fcbb9c..0000000
--- a/static/docs/2.2.1/html/search/functions_0.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="functions_0.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-createResults();
-/* @license-end */
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
-window.addEventListener("message", function(event) {
-  if (event.data == "take_focus") {
-    var elem = searchResults.NavNext(0);
-    if (elem) elem.focus();
-  }
-});
-/* @license-end */
---></script>
-</div>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/search/functions_0.js b/static/docs/2.2.1/html/search/functions_0.js
deleted file mode 100755
index e9f96b1..0000000
--- a/static/docs/2.2.1/html/search/functions_0.js
+++ /dev/null
@@ -1,82 +0,0 @@
-var searchData=
-[
-  ['celix_5fbundle_5fgetentry_199',['celix_bundle_getEntry',['../celix__bundle_8h.html#a5cbe24596271fc91c79c8f42c8b92bc5',1,'celix_bundle.h']]],
-  ['celix_5fbundle_5fgetgroup_200',['celix_bundle_getGroup',['../celix__bundle_8h.html#a5abd44b1259599d08f2312760fb32170',1,'celix_bundle.h']]],
-  ['celix_5fbundle_5fgetid_201',['celix_bundle_getId',['../celix__bundle_8h.html#a8a9b02c9438f05099ff2bde9fea8c3cd',1,'celix_bundle.h']]],
-  ['celix_5fbundle_5fgetstate_202',['celix_bundle_getState',['../celix__bundle_8h.html#a7106fcc7b06c0506dd7e1678ba024a35',1,'celix_bundle.h']]],
-  ['celix_5fbundle_5fgetsymbolicname_203',['celix_bundle_getSymbolicName',['../celix__bundle_8h.html#a391c2aa2fdf3c8d0c65fc07a07bb7545',1,'celix_bundle.h']]],
-  ['celix_5fbundleactivator_5fcreate_204',['celix_bundleActivator_create',['../celix__bundle__activator_8h.html#a57025ac322aecc8acfac832748c780e6',1,'celix_bundle_activator.h']]],
-  ['celix_5fbundleactivator_5fdestroy_205',['celix_bundleActivator_destroy',['../celix__bundle__activator_8h.html#a8d7cd41a721060d28c6ce8d94f9f0ca9',1,'celix_bundle_activator.h']]],
-  ['celix_5fbundleactivator_5fstart_206',['celix_bundleActivator_start',['../celix__bundle__activator_8h.html#a8ac12a9b8d321ee1c1feee5bf047b666',1,'celix_bundle_activator.h']]],
-  ['celix_5fbundleactivator_5fstop_207',['celix_bundleActivator_stop',['../celix__bundle__activator_8h.html#ae650439680848e3e3f7fc71b9e4dd213',1,'celix_bundle_activator.h']]],
-  ['celix_5fbundlecontext_5ffindservice_208',['celix_bundleContext_findService',['../celix__bundle__context_8h.html#ac8322b5aa4adf9dcd8c288ce72a05414',1,'celix_bundle_context.h']]],
-  ['celix_5fbundlecontext_5ffindservices_209',['celix_bundleContext_findServices',['../celix__bundle__context_8h.html#a96a901f0597f9d2accf073153d90344c',1,'celix_bundle_context.h']]],
-  ['celix_5fbundlecontext_5ffindserviceswithoptions_210',['celix_bundleContext_findServicesWithOptions',['../celix__bundle__context_8h.html#a41c34f8165addcbd0d65b4a0c23345d0',1,'celix_bundle_context.h']]],
-  ['celix_5fbundlecontext_5ffindservicewithoptions_211',['celix_bundleContext_findServiceWithOptions',['../celix__bundle__context_8h.html#a8cfbbb7e17cb4a825a525c547f72b4b0',1,'celix_bundle_context.h']]],
-  ['celix_5fbundlecontext_5fgetbundle_212',['celix_bundleContext_getBundle',['../celix__bundle__context_8h.html#a3f7f55d1587f421f27518574a525ff63',1,'celix_bundle_context.h']]],
-  ['celix_5fbundlecontext_5fgetdependencymanager_213',['celix_bundleContext_getDependencyManager',['../celix__bundle__context_8h.html#ac36566dcc477bb2c123e5124527090c1',1,'celix_bundle_context.h']]],
-  ['celix_5fbundlecontext_5fgetproperty_214',['celix_bundleContext_getProperty',['../celix__bundle__context_8h.html#aa121100c5f5d03c0ccdda9c87286f7db',1,'celix_bundle_context.h']]],
-  ['celix_5fbundlecontext_5fgetpropertyasbool_215',['celix_bundleContext_getPropertyAsBool',['../celix__bundle__context_8h.html#a41e6642ba1a739b5768911fa41e5d170',1,'celix_bundle_context.h']]],
-  ['celix_5fbundlecontext_5fgetpropertyasdouble_216',['celix_bundleContext_getPropertyAsDouble',['../celix__bundle__context_8h.html#a92be7dd7985a890c4b92bcb8497e8b9f',1,'celix_bundle_context.h']]],
-  ['celix_5fbundlecontext_5fgetpropertyaslong_217',['celix_bundleContext_getPropertyAsLong',['../celix__bundle__context_8h.html#a0ea27b2a81018583a464a10932cfae62',1,'celix_bundle_context.h']]],
-  ['celix_5fbundlecontext_5finstallbundle_218',['celix_bundleContext_installBundle',['../celix__bundle__context_8h.html#a727ee2600c19ce2fd42b3b80b695c7f6',1,'celix_bundle_context.h']]],
-  ['celix_5fbundlecontext_5fisbundleinstalled_219',['celix_bundleContext_isBundleInstalled',['../celix__bundle__context_8h.html#ac7151f08ded1d7571867a44abe9f3531',1,'celix_bundle_context.h']]],
-  ['celix_5fbundlecontext_5flistbundles_220',['celix_bundleContext_listBundles',['../celix__bundle__context_8h.html#afde9ed40231b5c3bbba19559e68e77f6',1,'celix_bundle_context.h']]],
-  ['celix_5fbundlecontext_5fregisterservice_221',['celix_bundleContext_registerService',['../celix__bundle__context_8h.html#a5bc54fd14871cc88ed887c8cea8f7b78',1,'celix_bundle_context.h']]],
-  ['celix_5fbundlecontext_5fregisterservicefactory_222',['celix_bundleContext_registerServiceFactory',['../celix__bundle__context_8h.html#a3caa917285feaad580b61d4c0c8430a9',1,'celix_bundle_context.h']]],
-  ['celix_5fbundlecontext_5fregisterservicewithoptions_223',['celix_bundleContext_registerServiceWithOptions',['../celix__bundle__context_8h.html#abcde0edf5b4969bdd67831cff3db0a43',1,'celix_bundle_context.h']]],
-  ['celix_5fbundlecontext_5fstartbundle_224',['celix_bundleContext_startBundle',['../celix__bundle__context_8h.html#a8df4bfbc27c99736c0209ef130cff98f',1,'celix_bundle_context.h']]],
-  ['celix_5fbundlecontext_5fstopbundle_225',['celix_bundleContext_stopBundle',['../celix__bundle__context_8h.html#ad6e1553f9507d04c7a0ad91d067d479b',1,'celix_bundle_context.h']]],
-  ['celix_5fbundlecontext_5fstoptracker_226',['celix_bundleContext_stopTracker',['../celix__bundle__context_8h.html#a3b4906a9e6fb34fe3ca5118539a81fc7',1,'celix_bundle_context.h']]],
-  ['celix_5fbundlecontext_5ftrackbundles_227',['celix_bundleContext_trackBundles',['../celix__bundle__context_8h.html#a3daf88ae43bb01e104f506c3a2dc8351',1,'celix_bundle_context.h']]],
-  ['celix_5fbundlecontext_5ftrackbundleswithoptions_228',['celix_bundleContext_trackBundlesWithOptions',['../celix__bundle__context_8h.html#aa603acb136351b4135ce6a8c0b1fda71',1,'celix_bundle_context.h']]],
-  ['celix_5fbundlecontext_5ftrackservice_229',['celix_bundleContext_trackService',['../celix__bundle__context_8h.html#a612409acf5453dbc370d93b784153d51',1,'celix_bundle_context.h']]],
-  ['celix_5fbundlecontext_5ftrackservices_230',['celix_bundleContext_trackServices',['../celix__bundle__context_8h.html#a43e3bfd38ef956ffe861065e698a72e4',1,'celix_bundle_context.h']]],
-  ['celix_5fbundlecontext_5ftrackserviceswithoptions_231',['celix_bundleContext_trackServicesWithOptions',['../celix__bundle__context_8h.html#a27980e1631d4575cc45c6c6ba38c6f71',1,'celix_bundle_context.h']]],
-  ['celix_5fbundlecontext_5ftrackservicetrackers_232',['celix_bundleContext_trackServiceTrackers',['../celix__bundle__context_8h.html#a80f61dd38b9da8447cd4f931779eaf16',1,'celix_bundle_context.h']]],
-  ['celix_5fbundlecontext_5funinstallbundle_233',['celix_bundleContext_uninstallBundle',['../celix__bundle__context_8h.html#a098adf1e9f65deb166110008bd4314dd',1,'celix_bundle_context.h']]],
-  ['celix_5fbundlecontext_5funregisterservice_234',['celix_bundleContext_unregisterService',['../celix__bundle__context_8h.html#a1ebd82cb3d61aab769956d856293b9b9',1,'celix_bundle_context.h']]],
-  ['celix_5fbundlecontext_5fusebundle_235',['celix_bundleContext_useBundle',['../celix__bundle__context_8h.html#abb3cedf5ffa7a326cef2af64a1094635',1,'celix_bundle_context.h']]],
-  ['celix_5fbundlecontext_5fusebundles_236',['celix_bundleContext_useBundles',['../celix__bundle__context_8h.html#a03a6d1c49c91c212ad7be115e1035840',1,'celix_bundle_context.h']]],
-  ['celix_5fbundlecontext_5fuseservice_237',['celix_bundleContext_useService',['../celix__bundle__context_8h.html#ac36cdb8a06bb34f9371d7bb32953c69e',1,'celix_bundle_context.h']]],
-  ['celix_5fbundlecontext_5fuseservices_238',['celix_bundleContext_useServices',['../celix__bundle__context_8h.html#a39270507a3766afbfcc9420c7270d262',1,'celix_bundle_context.h']]],
-  ['celix_5fbundlecontext_5fuseserviceswithoptions_239',['celix_bundleContext_useServicesWithOptions',['../celix__bundle__context_8h.html#ad1512520baedecad54a7bc307e0a6c7b',1,'celix_bundle_context.h']]],
-  ['celix_5fbundlecontext_5fuseservicewithid_240',['celix_bundleContext_useServiceWithId',['../celix__bundle__context_8h.html#aec6e03faece0f8247de19d8c1527406d',1,'celix_bundle_context.h']]],
-  ['celix_5fbundlecontext_5fuseservicewithoptions_241',['celix_bundleContext_useServiceWithOptions',['../celix__bundle__context_8h.html#a1e8a78de5f799d303231385b51085055',1,'celix_bundle_context.h']]],
-  ['celix_5fdmcomponent_5faddinterface_242',['celix_dmComponent_addInterface',['../celix__dm__component_8h.html#aafd2f2eff931784f70eb2a37e943446a',1,'celix_dm_component.h']]],
-  ['celix_5fdmcomponent_5faddservicedependency_243',['celix_dmComponent_addServiceDependency',['../celix__dm__component_8h.html#ad7d4a85042adba432bd8d398d9c106b8',1,'celix_dm_component.h']]],
-  ['celix_5fdmcomponent_5fcreate_244',['celix_dmComponent_create',['../celix__dm__component_8h.html#adf75af7d75d2c1f7e53d78f23f97d40c',1,'celix_dm_component.h']]],
-  ['celix_5fdmcomponent_5fcurrentstate_245',['celix_dmComponent_currentState',['../celix__dm__component_8h.html#af98630b8f8980c906d5aefc5f8a82c99',1,'celix_dm_component.h']]],
-  ['celix_5fdmcomponent_5fdestroy_246',['celix_dmComponent_destroy',['../celix__dm__component_8h.html#a56a8c5019a43eb96d62fd9e98cb56ba8',1,'celix_dm_component.h']]],
-  ['celix_5fdmcomponent_5fdestroycomponentinfo_247',['celix_dmComponent_destroyComponentInfo',['../celix__dm__component_8h.html#af62df6623e978a1cc62b3ca8ab5863c3',1,'celix_dm_component.h']]],
-  ['celix_5fdmcomponent_5fgetbundlecontext_248',['celix_dmComponent_getBundleContext',['../celix__dm__component_8h.html#a99be995e9e94514fc4f6782dd48456ba',1,'celix_dm_component.h']]],
-  ['celix_5fdmcomponent_5fgetcomponentinfo_249',['celix_dmComponent_getComponentInfo',['../celix__dm__component_8h.html#a3345d3bfa11070069d745131668d02ae',1,'celix_dm_component.h']]],
-  ['celix_5fdmcomponent_5fgetimplementation_250',['celix_dmComponent_getImplementation',['../celix__dm__component_8h.html#a5647f75ea3a3c3755940ee42f51320a8',1,'celix_dm_component.h']]],
-  ['celix_5fdmcomponent_5fgetinterfaces_251',['celix_dmComponent_getInterfaces',['../celix__dm__component_8h.html#ae0312e00f51f85d8e48b18020964e21f',1,'celix_dm_component.h']]],
-  ['celix_5fdmcomponent_5fgetname_252',['celix_dmComponent_getName',['../celix__dm__component_8h.html#a30de51befa422dc65ac89ae3d9b8319f',1,'celix_dm_component.h']]],
-  ['celix_5fdmcomponent_5fisactive_253',['celix_dmComponent_isActive',['../celix__dm__component_8h.html#a7bbf1a0da294be7ba9ae8272f1b938d7',1,'celix_dm_component.h']]],
-  ['celix_5fdmcomponent_5fremoveinterface_254',['celix_dmComponent_removeInterface',['../celix__dm__component_8h.html#a3e4a6e8e87cc8d3b3655eaaa06ad261e',1,'celix_dm_component.h']]],
-  ['celix_5fdmcomponent_5fremoveservicedependency_255',['celix_dmComponent_removeServiceDependency',['../celix__dm__component_8h.html#a0ce2c610cbe3a329ea6561eb5cda0d8d',1,'celix_dm_component.h']]],
-  ['celix_5fdmcomponent_5fsetcallbacks_256',['celix_dmComponent_setCallbacks',['../celix__dm__component_8h.html#a017e996f6b1db5e902bf3a9cc043634f',1,'celix_dm_component.h']]],
-  ['celix_5fdmcomponent_5fsetclanguageproperty_257',['celix_dmComponent_setCLanguageProperty',['../celix__dm__component_8h.html#ab8bd7a13007bda2619c1764886eabeab',1,'celix_dm_component.h']]],
-  ['celix_5fdmcomponent_5fsetimplementation_258',['celix_dmComponent_setImplementation',['../celix__dm__component_8h.html#a45a01df6ed75d8530563d52f58a0b165',1,'celix_dm_component.h']]],
-  ['celix_5fdmservicedependency_5fcreate_259',['celix_dmServiceDependency_create',['../celix__dm__service__dependency_8h.html#a588b147bec75a501fac3b35076fc98a3',1,'celix_dm_service_dependency.h']]],
-  ['celix_5fdmservicedependency_5fcreateinfo_260',['celix_dmServiceDependency_createInfo',['../celix__dm__service__dependency_8h.html#a0b84d9164563664da40491151f7d7131',1,'celix_dm_service_dependency.h']]],
-  ['celix_5fdmservicedependency_5fdestroy_261',['celix_dmServiceDependency_destroy',['../celix__dm__service__dependency_8h.html#ac282334d66c3cfc4fda1b67245172979',1,'celix_dm_service_dependency.h']]],
-  ['celix_5fdmservicedependency_5fdestroyinfo_262',['celix_dmServiceDependency_destroyInfo',['../celix__dm__service__dependency_8h.html#acb96da27c0087a05d885b0f55756de8a',1,'celix_dm_service_dependency.h']]],
-  ['celix_5fdmservicedependency_5fgetfilter_263',['celix_dmServiceDependency_getFilter',['../celix__dm__service__dependency_8h.html#a487a41d56ea2bf1aa51cd7f7e83ff844',1,'celix_dm_service_dependency.h']]],
-  ['celix_5fdmservicedependency_5fgetstrategy_264',['celix_dmServiceDependency_getStrategy',['../celix__dm__service__dependency_8h.html#a8365396c6363ad98b66725243f97f8ea',1,'celix_dm_service_dependency.h']]],
-  ['celix_5fdmservicedependency_5fsetaddclanguagefilter_265',['celix_dmServiceDependency_setAddCLanguageFilter',['../celix__dm__service__dependency_8h.html#a9aec79471c46aecc7412523fe839e549',1,'celix_dm_service_dependency.h']]],
-  ['celix_5fdmservicedependency_5fsetcallback_266',['celix_dmServiceDependency_setCallback',['../celix__dm__service__dependency_8h.html#a1a731a456c8e617acfa4d81a6357959c',1,'celix_dm_service_dependency.h']]],
-  ['celix_5fdmservicedependency_5fsetcallbackhandle_267',['celix_dmServiceDependency_setCallbackHandle',['../celix__dm__service__dependency_8h.html#aebe0669933d37f9fd1c3fdc873127d78',1,'celix_dm_service_dependency.h']]],
-  ['celix_5fdmservicedependency_5fsetcallbackswithoptions_268',['celix_dmServiceDependency_setCallbacksWithOptions',['../celix__dm__service__dependency_8h.html#a31898ef1ad5f9695dc85a24202020ebe',1,'celix_dm_service_dependency.h']]],
-  ['celix_5fdmservicedependency_5fsetcallbackwithproperties_269',['celix_dmServiceDependency_setCallbackWithProperties',['../celix__dm__service__dependency_8h.html#a9bdfec7b27301bd71dd4f45fcdd11568',1,'celix_dm_service_dependency.h']]],
-  ['celix_5fdmservicedependency_5fsetrequired_270',['celix_dmServiceDependency_setRequired',['../celix__dm__service__dependency_8h.html#a0c33bcf502f8683bce3cf382c4bdc76a',1,'celix_dm_service_dependency.h']]],
-  ['celix_5fdmservicedependency_5fsetservice_271',['celix_dmServiceDependency_setService',['../celix__dm__service__dependency_8h.html#a2602a6526ef6cde42d606c9ed958cec7',1,'celix_dm_service_dependency.h']]],
-  ['celix_5fdmservicedependency_5fsetstrategy_272',['celix_dmServiceDependency_setStrategy',['../celix__dm__service__dependency_8h.html#a9d833904b765bee7073ec41828ea7d2e',1,'celix_dm_service_dependency.h']]],
-  ['celix_5fframework_5fgetframeworkbundle_273',['celix_framework_getFrameworkBundle',['../celix__framework_8h.html#ae980ec9c8f83f8a3e65dc7da9d794f18',1,'celix_framework.h']]],
-  ['celix_5fframework_5fgetframeworkcontext_274',['celix_framework_getFrameworkContext',['../celix__framework_8h.html#aa2e913753f841b3b0b22c196b39d03b1',1,'celix_framework.h']]],
-  ['celix_5fframework_5fgetuuid_275',['celix_framework_getUUID',['../celix__framework_8h.html#a671ba53e13abea3d4eb328a66b62802f',1,'celix_framework.h']]],
-  ['celix_5fframework_5fusebundle_276',['celix_framework_useBundle',['../celix__framework_8h.html#ab158bb807ea2171c5d20076cb457c8d1',1,'celix_framework.h']]],
-  ['celix_5fframework_5fusebundles_277',['celix_framework_useBundles',['../celix__framework_8h.html#a192ba45dd2a7175fd4d19c70da59f9ab',1,'celix_framework.h']]]
-];
diff --git a/static/docs/2.2.1/html/search/mag_sel.png b/static/docs/2.2.1/html/search/mag_sel.png
deleted file mode 100755
index 39c0ed5..0000000
--- a/static/docs/2.2.1/html/search/mag_sel.png
+++ /dev/null
Binary files differ
diff --git a/static/docs/2.2.1/html/search/nomatches.html b/static/docs/2.2.1/html/search/nomatches.html
deleted file mode 100755
index 4377320..0000000
--- a/static/docs/2.2.1/html/search/nomatches.html
+++ /dev/null
@@ -1,12 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="NoMatches">No Matches</div>
-</div>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/search/search.css b/static/docs/2.2.1/html/search/search.css
deleted file mode 100755
index 3cf9df9..0000000
--- a/static/docs/2.2.1/html/search/search.css
+++ /dev/null
@@ -1,271 +0,0 @@
-/*---------------- Search Box */
-
-#FSearchBox {
-    float: left;
-}
-
-#MSearchBox {
-    white-space : nowrap;
-    float: none;
-    margin-top: 8px;
-    right: 0px;
-    width: 170px;
-    height: 24px;
-    z-index: 102;
-}
-
-#MSearchBox .left
-{
-    display:block;
-    position:absolute;
-    left:10px;
-    width:20px;
-    height:19px;
-    background:url('search_l.png') no-repeat;
-    background-position:right;
-}
-
-#MSearchSelect {
-    display:block;
-    position:absolute;
-    width:20px;
-    height:19px;
-}
-
-.left #MSearchSelect {
-    left:4px;
-}
-
-.right #MSearchSelect {
-    right:5px;
-}
-
-#MSearchField {
-    display:block;
-    position:absolute;
-    height:19px;
-    background:url('search_m.png') repeat-x;
-    border:none;
-    width:115px;
-    margin-left:20px;
-    padding-left:4px;
-    color: #909090;
-    outline: none;
-    font: 9pt Arial, Verdana, sans-serif;
-    -webkit-border-radius: 0px;
-}
-
-#FSearchBox #MSearchField {
-    margin-left:15px;
-}
-
-#MSearchBox .right {
-    display:block;
-    position:absolute;
-    right:10px;
-    top:8px;
-    width:20px;
-    height:19px;
-    background:url('search_r.png') no-repeat;
-    background-position:left;
-}
-
-#MSearchClose {
-    display: none;
-    position: absolute;
-    top: 4px;
-    background : none;
-    border: none;
-    margin: 0px 4px 0px 0px;
-    padding: 0px 0px;
-    outline: none;
-}
-
-.left #MSearchClose {
-    left: 6px;
-}
-
-.right #MSearchClose {
-    right: 2px;
-}
-
-.MSearchBoxActive #MSearchField {
-    color: #000000;
-}
-
-/*---------------- Search filter selection */
-
-#MSearchSelectWindow {
-    display: none;
-    position: absolute;
-    left: 0; top: 0;
-    border: 1px solid #90A5CE;
-    background-color: #F9FAFC;
-    z-index: 10001;
-    padding-top: 4px;
-    padding-bottom: 4px;
-    -moz-border-radius: 4px;
-    -webkit-border-top-left-radius: 4px;
-    -webkit-border-top-right-radius: 4px;
-    -webkit-border-bottom-left-radius: 4px;
-    -webkit-border-bottom-right-radius: 4px;
-    -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
-}
-
-.SelectItem {
-    font: 8pt Arial, Verdana, sans-serif;
-    padding-left:  2px;
-    padding-right: 12px;
-    border: 0px;
-}
-
-span.SelectionMark {
-    margin-right: 4px;
-    font-family: monospace;
-    outline-style: none;
-    text-decoration: none;
-}
-
-a.SelectItem {
-    display: block;
-    outline-style: none;
-    color: #000000; 
-    text-decoration: none;
-    padding-left:   6px;
-    padding-right: 12px;
-}
-
-a.SelectItem:focus,
-a.SelectItem:active {
-    color: #000000; 
-    outline-style: none;
-    text-decoration: none;
-}
-
-a.SelectItem:hover {
-    color: #FFFFFF;
-    background-color: #3D578C;
-    outline-style: none;
-    text-decoration: none;
-    cursor: pointer;
-    display: block;
-}
-
-/*---------------- Search results window */
-
-iframe#MSearchResults {
-    width: 60ex;
-    height: 15em;
-}
-
-#MSearchResultsWindow {
-    display: none;
-    position: absolute;
-    left: 0; top: 0;
-    border: 1px solid #000;
-    background-color: #EEF1F7;
-    z-index:10000;
-}
-
-/* ----------------------------------- */
-
-
-#SRIndex {
-    clear:both; 
-    padding-bottom: 15px;
-}
-
-.SREntry {
-    font-size: 10pt;
-    padding-left: 1ex;
-}
-
-.SRPage .SREntry {
-    font-size: 8pt;
-    padding: 1px 5px;
-}
-
-body.SRPage {
-    margin: 5px 2px;
-}
-
-.SRChildren {
-    padding-left: 3ex; padding-bottom: .5em 
-}
-
-.SRPage .SRChildren {
-    display: none;
-}
-
-.SRSymbol {
-    font-weight: bold; 
-    color: #425E97;
-    font-family: Arial, Verdana, sans-serif;
-    text-decoration: none;
-    outline: none;
-}
-
-a.SRScope {
-    display: block;
-    color: #425E97; 
-    font-family: Arial, Verdana, sans-serif;
-    text-decoration: none;
-    outline: none;
-}
-
-a.SRSymbol:focus, a.SRSymbol:active,
-a.SRScope:focus, a.SRScope:active {
-    text-decoration: underline;
-}
-
-span.SRScope {
-    padding-left: 4px;
-}
-
-.SRPage .SRStatus {
-    padding: 2px 5px;
-    font-size: 8pt;
-    font-style: italic;
-}
-
-.SRResult {
-    display: none;
-}
-
-DIV.searchresults {
-    margin-left: 10px;
-    margin-right: 10px;
-}
-
-/*---------------- External search page results */
-
-.searchresult {
-    background-color: #F0F3F8;
-}
-
-.pages b {
-   color: white;
-   padding: 5px 5px 3px 5px;
-   background-image: url("../tab_a.png");
-   background-repeat: repeat-x;
-   text-shadow: 0 1px 1px #000000;
-}
-
-.pages {
-    line-height: 17px;
-    margin-left: 4px;
-    text-decoration: none;
-}
-
-.hl {
-    font-weight: bold;
-}
-
-#searchresults {
-    margin-bottom: 20px;
-}
-
-.searchpages {
-    margin-top: 10px;
-}
-
diff --git a/static/docs/2.2.1/html/search/search.js b/static/docs/2.2.1/html/search/search.js
deleted file mode 100755
index ff2b8c8..0000000
--- a/static/docs/2.2.1/html/search/search.js
+++ /dev/null
@@ -1,814 +0,0 @@
-/*
- @licstart  The following is the entire license notice for the JavaScript code in this file.
-
- The MIT License (MIT)
-
- Copyright (C) 1997-2020 by Dimitri van Heesch
-
- Permission is hereby granted, free of charge, to any person obtaining a copy of this software
- and associated documentation files (the "Software"), to deal in the Software without restriction,
- including without limitation the rights to use, copy, modify, merge, publish, distribute,
- sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be included in all copies or
- substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
- BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
- @licend  The above is the entire license notice for the JavaScript code in this file
- */
-function convertToId(search)
-{
-  var result = '';
-  for (i=0;i<search.length;i++)
-  {
-    var c = search.charAt(i);
-    var cn = c.charCodeAt(0);
-    if (c.match(/[a-z0-9\u0080-\uFFFF]/))
-    {
-      result+=c;
-    }
-    else if (cn<16)
-    {
-      result+="_0"+cn.toString(16);
-    }
-    else
-    {
-      result+="_"+cn.toString(16);
-    }
-  }
-  return result;
-}
-
-function getXPos(item)
-{
-  var x = 0;
-  if (item.offsetWidth)
-  {
-    while (item && item!=document.body)
-    {
-      x   += item.offsetLeft;
-      item = item.offsetParent;
-    }
-  }
-  return x;
-}
-
-function getYPos(item)
-{
-  var y = 0;
-  if (item.offsetWidth)
-  {
-     while (item && item!=document.body)
-     {
-       y   += item.offsetTop;
-       item = item.offsetParent;
-     }
-  }
-  return y;
-}
-
-/* A class handling everything associated with the search panel.
-
-   Parameters:
-   name - The name of the global variable that will be
-          storing this instance.  Is needed to be able to set timeouts.
-   resultPath - path to use for external files
-*/
-function SearchBox(name, resultsPath, inFrame, label)
-{
-  if (!name || !resultsPath) {  alert("Missing parameters to SearchBox."); }
-
-  // ---------- Instance variables
-  this.name                  = name;
-  this.resultsPath           = resultsPath;
-  this.keyTimeout            = 0;
-  this.keyTimeoutLength      = 500;
-  this.closeSelectionTimeout = 300;
-  this.lastSearchValue       = "";
-  this.lastResultsPage       = "";
-  this.hideTimeout           = 0;
-  this.searchIndex           = 0;
-  this.searchActive          = false;
-  this.insideFrame           = inFrame;
-  this.searchLabel           = label;
-
-  // ----------- DOM Elements
-
-  this.DOMSearchField = function()
-  {  return document.getElementById("MSearchField");  }
-
-  this.DOMSearchSelect = function()
-  {  return document.getElementById("MSearchSelect");  }
-
-  this.DOMSearchSelectWindow = function()
-  {  return document.getElementById("MSearchSelectWindow");  }
-
-  this.DOMPopupSearchResults = function()
-  {  return document.getElementById("MSearchResults");  }
-
-  this.DOMPopupSearchResultsWindow = function()
-  {  return document.getElementById("MSearchResultsWindow");  }
-
-  this.DOMSearchClose = function()
-  {  return document.getElementById("MSearchClose"); }
-
-  this.DOMSearchBox = function()
-  {  return document.getElementById("MSearchBox");  }
-
-  // ------------ Event Handlers
-
-  // Called when focus is added or removed from the search field.
-  this.OnSearchFieldFocus = function(isActive)
-  {
-    this.Activate(isActive);
-  }
-
-  this.OnSearchSelectShow = function()
-  {
-    var searchSelectWindow = this.DOMSearchSelectWindow();
-    var searchField        = this.DOMSearchSelect();
-
-    if (this.insideFrame)
-    {
-      var left = getXPos(searchField);
-      var top  = getYPos(searchField);
-      left += searchField.offsetWidth + 6;
-      top += searchField.offsetHeight;
-
-      // show search selection popup
-      searchSelectWindow.style.display='block';
-      left -= searchSelectWindow.offsetWidth;
-      searchSelectWindow.style.left =  left + 'px';
-      searchSelectWindow.style.top  =  top  + 'px';
-    }
-    else
-    {
-      var left = getXPos(searchField);
-      var top  = getYPos(searchField);
-      top += searchField.offsetHeight;
-
-      // show search selection popup
-      searchSelectWindow.style.display='block';
-      searchSelectWindow.style.left =  left + 'px';
-      searchSelectWindow.style.top  =  top  + 'px';
-    }
-
-    // stop selection hide timer
-    if (this.hideTimeout)
-    {
-      clearTimeout(this.hideTimeout);
-      this.hideTimeout=0;
-    }
-    return false; // to avoid "image drag" default event
-  }
-
-  this.OnSearchSelectHide = function()
-  {
-    this.hideTimeout = setTimeout(this.name +".CloseSelectionWindow()",
-                                  this.closeSelectionTimeout);
-  }
-
-  // Called when the content of the search field is changed.
-  this.OnSearchFieldChange = function(evt)
-  {
-    if (this.keyTimeout) // kill running timer
-    {
-      clearTimeout(this.keyTimeout);
-      this.keyTimeout = 0;
-    }
-
-    var e  = (evt) ? evt : window.event; // for IE
-    if (e.keyCode==40 || e.keyCode==13)
-    {
-      if (e.shiftKey==1)
-      {
-        this.OnSearchSelectShow();
-        var win=this.DOMSearchSelectWindow();
-        for (i=0;i<win.childNodes.length;i++)
-        {
-          var child = win.childNodes[i]; // get span within a
-          if (child.className=='SelectItem')
-          {
-            child.focus();
-            return;
-          }
-        }
-        return;
-      }
-      else
-      {
-        window.frames.MSearchResults.postMessage("take_focus", "*");
-      }
-    }
-    else if (e.keyCode==27) // Escape out of the search field
-    {
-      this.DOMSearchField().blur();
-      this.DOMPopupSearchResultsWindow().style.display = 'none';
-      this.DOMSearchClose().style.display = 'none';
-      this.lastSearchValue = '';
-      this.Activate(false);
-      return;
-    }
-
-    // strip whitespaces
-    var searchValue = this.DOMSearchField().value.replace(/ +/g, "");
-
-    if (searchValue != this.lastSearchValue) // search value has changed
-    {
-      if (searchValue != "") // non-empty search
-      {
-        // set timer for search update
-        this.keyTimeout = setTimeout(this.name + '.Search()',
-                                     this.keyTimeoutLength);
-      }
-      else // empty search field
-      {
-        this.DOMPopupSearchResultsWindow().style.display = 'none';
-        this.DOMSearchClose().style.display = 'none';
-        this.lastSearchValue = '';
-      }
-    }
-  }
-
-  this.SelectItemCount = function(id)
-  {
-    var count=0;
-    var win=this.DOMSearchSelectWindow();
-    for (i=0;i<win.childNodes.length;i++)
-    {
-      var child = win.childNodes[i]; // get span within a
-      if (child.className=='SelectItem')
-      {
-        count++;
-      }
-    }
-    return count;
-  }
-
-  this.SelectItemSet = function(id)
-  {
-    var i,j=0;
-    var win=this.DOMSearchSelectWindow();
-    for (i=0;i<win.childNodes.length;i++)
-    {
-      var child = win.childNodes[i]; // get span within a
-      if (child.className=='SelectItem')
-      {
-        var node = child.firstChild;
-        if (j==id)
-        {
-          node.innerHTML='&#8226;';
-        }
-        else
-        {
-          node.innerHTML='&#160;';
-        }
-        j++;
-      }
-    }
-  }
-
-  // Called when an search filter selection is made.
-  // set item with index id as the active item
-  this.OnSelectItem = function(id)
-  {
-    this.searchIndex = id;
-    this.SelectItemSet(id);
-    var searchValue = this.DOMSearchField().value.replace(/ +/g, "");
-    if (searchValue!="" && this.searchActive) // something was found -> do a search
-    {
-      this.Search();
-    }
-  }
-
-  this.OnSearchSelectKey = function(evt)
-  {
-    var e = (evt) ? evt : window.event; // for IE
-    if (e.keyCode==40 && this.searchIndex<this.SelectItemCount()) // Down
-    {
-      this.searchIndex++;
-      this.OnSelectItem(this.searchIndex);
-    }
-    else if (e.keyCode==38 && this.searchIndex>0) // Up
-    {
-      this.searchIndex--;
-      this.OnSelectItem(this.searchIndex);
-    }
-    else if (e.keyCode==13 || e.keyCode==27)
-    {
-      this.OnSelectItem(this.searchIndex);
-      this.CloseSelectionWindow();
-      this.DOMSearchField().focus();
-    }
-    return false;
-  }
-
-  // --------- Actions
-
-  // Closes the results window.
-  this.CloseResultsWindow = function()
-  {
-    this.DOMPopupSearchResultsWindow().style.display = 'none';
-    this.DOMSearchClose().style.display = 'none';
-    this.Activate(false);
-  }
-
-  this.CloseSelectionWindow = function()
-  {
-    this.DOMSearchSelectWindow().style.display = 'none';
-  }
-
-  // Performs a search.
-  this.Search = function()
-  {
-    this.keyTimeout = 0;
-
-    // strip leading whitespace
-    var searchValue = this.DOMSearchField().value.replace(/^ +/, "");
-
-    var code = searchValue.toLowerCase().charCodeAt(0);
-    var idxChar = searchValue.substr(0, 1).toLowerCase();
-    if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) // surrogate pair
-    {
-      idxChar = searchValue.substr(0, 2);
-    }
-
-    var resultsPage;
-    var resultsPageWithSearch;
-    var hasResultsPage;
-
-    var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar);
-    if (idx!=-1)
-    {
-       var hexCode=idx.toString(16);
-       resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + '.html';
-       resultsPageWithSearch = resultsPage+'?'+escape(searchValue);
-       hasResultsPage = true;
-    }
-    else // nothing available for this search term
-    {
-       resultsPage = this.resultsPath + '/nomatches.html';
-       resultsPageWithSearch = resultsPage;
-       hasResultsPage = false;
-    }
-
-    window.frames.MSearchResults.location = resultsPageWithSearch;
-    var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow();
-
-    if (domPopupSearchResultsWindow.style.display!='block')
-    {
-       var domSearchBox = this.DOMSearchBox();
-       this.DOMSearchClose().style.display = 'inline';
-       if (this.insideFrame)
-       {
-         var domPopupSearchResults = this.DOMPopupSearchResults();
-         domPopupSearchResultsWindow.style.position = 'relative';
-         domPopupSearchResultsWindow.style.display  = 'block';
-         var width = document.body.clientWidth - 8; // the -8 is for IE :-(
-         domPopupSearchResultsWindow.style.width    = width + 'px';
-         domPopupSearchResults.style.width          = width + 'px';
-       }
-       else
-       {
-         var domPopupSearchResults = this.DOMPopupSearchResults();
-         var left = getXPos(domSearchBox) + 150; // domSearchBox.offsetWidth;
-         var top  = getYPos(domSearchBox) + 20;  // domSearchBox.offsetHeight + 1;
-         domPopupSearchResultsWindow.style.display = 'block';
-         left -= domPopupSearchResults.offsetWidth;
-         domPopupSearchResultsWindow.style.top     = top  + 'px';
-         domPopupSearchResultsWindow.style.left    = left + 'px';
-       }
-    }
-
-    this.lastSearchValue = searchValue;
-    this.lastResultsPage = resultsPage;
-  }
-
-  // -------- Activation Functions
-
-  // Activates or deactivates the search panel, resetting things to
-  // their default values if necessary.
-  this.Activate = function(isActive)
-  {
-    if (isActive || // open it
-        this.DOMPopupSearchResultsWindow().style.display == 'block'
-       )
-    {
-      this.DOMSearchBox().className = 'MSearchBoxActive';
-
-      var searchField = this.DOMSearchField();
-
-      if (searchField.value == this.searchLabel) // clear "Search" term upon entry
-      {
-        searchField.value = '';
-        this.searchActive = true;
-      }
-    }
-    else if (!isActive) // directly remove the panel
-    {
-      this.DOMSearchBox().className = 'MSearchBoxInactive';
-      this.DOMSearchField().value   = this.searchLabel;
-      this.searchActive             = false;
-      this.lastSearchValue          = ''
-      this.lastResultsPage          = '';
-    }
-  }
-}
-
-// -----------------------------------------------------------------------
-
-// The class that handles everything on the search results page.
-function SearchResults(name)
-{
-    // The number of matches from the last run of <Search()>.
-    this.lastMatchCount = 0;
-    this.lastKey = 0;
-    this.repeatOn = false;
-
-    // Toggles the visibility of the passed element ID.
-    this.FindChildElement = function(id)
-    {
-      var parentElement = document.getElementById(id);
-      var element = parentElement.firstChild;
-
-      while (element && element!=parentElement)
-      {
-        if (element.nodeName == 'DIV' && element.className == 'SRChildren')
-        {
-          return element;
-        }
-
-        if (element.nodeName == 'DIV' && element.hasChildNodes())
-        {
-           element = element.firstChild;
-        }
-        else if (element.nextSibling)
-        {
-           element = element.nextSibling;
-        }
-        else
-        {
-          do
-          {
-            element = element.parentNode;
-          }
-          while (element && element!=parentElement && !element.nextSibling);
-
-          if (element && element!=parentElement)
-          {
-            element = element.nextSibling;
-          }
-        }
-      }
-    }
-
-    this.Toggle = function(id)
-    {
-      var element = this.FindChildElement(id);
-      if (element)
-      {
-        if (element.style.display == 'block')
-        {
-          element.style.display = 'none';
-        }
-        else
-        {
-          element.style.display = 'block';
-        }
-      }
-    }
-
-    // Searches for the passed string.  If there is no parameter,
-    // it takes it from the URL query.
-    //
-    // Always returns true, since other documents may try to call it
-    // and that may or may not be possible.
-    this.Search = function(search)
-    {
-      if (!search) // get search word from URL
-      {
-        search = window.location.search;
-        search = search.substring(1);  // Remove the leading '?'
-        search = unescape(search);
-      }
-
-      search = search.replace(/^ +/, ""); // strip leading spaces
-      search = search.replace(/ +$/, ""); // strip trailing spaces
-      search = search.toLowerCase();
-      search = convertToId(search);
-
-      var resultRows = document.getElementsByTagName("div");
-      var matches = 0;
-
-      var i = 0;
-      while (i < resultRows.length)
-      {
-        var row = resultRows.item(i);
-        if (row.className == "SRResult")
-        {
-          var rowMatchName = row.id.toLowerCase();
-          rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_'
-
-          if (search.length<=rowMatchName.length &&
-             rowMatchName.substr(0, search.length)==search)
-          {
-            row.style.display = 'block';
-            matches++;
-          }
-          else
-          {
-            row.style.display = 'none';
-          }
-        }
-        i++;
-      }
-      document.getElementById("Searching").style.display='none';
-      if (matches == 0) // no results
-      {
-        document.getElementById("NoMatches").style.display='block';
-      }
-      else // at least one result
-      {
-        document.getElementById("NoMatches").style.display='none';
-      }
-      this.lastMatchCount = matches;
-      return true;
-    }
-
-    // return the first item with index index or higher that is visible
-    this.NavNext = function(index)
-    {
-      var focusItem;
-      while (1)
-      {
-        var focusName = 'Item'+index;
-        focusItem = document.getElementById(focusName);
-        if (focusItem && focusItem.parentNode.parentNode.style.display=='block')
-        {
-          break;
-        }
-        else if (!focusItem) // last element
-        {
-          break;
-        }
-        focusItem=null;
-        index++;
-      }
-      return focusItem;
-    }
-
-    this.NavPrev = function(index)
-    {
-      var focusItem;
-      while (1)
-      {
-        var focusName = 'Item'+index;
-        focusItem = document.getElementById(focusName);
-        if (focusItem && focusItem.parentNode.parentNode.style.display=='block')
-        {
-          break;
-        }
-        else if (!focusItem) // last element
-        {
-          break;
-        }
-        focusItem=null;
-        index--;
-      }
-      return focusItem;
-    }
-
-    this.ProcessKeys = function(e)
-    {
-      if (e.type == "keydown")
-      {
-        this.repeatOn = false;
-        this.lastKey = e.keyCode;
-      }
-      else if (e.type == "keypress")
-      {
-        if (!this.repeatOn)
-        {
-          if (this.lastKey) this.repeatOn = true;
-          return false; // ignore first keypress after keydown
-        }
-      }
-      else if (e.type == "keyup")
-      {
-        this.lastKey = 0;
-        this.repeatOn = false;
-      }
-      return this.lastKey!=0;
-    }
-
-    this.Nav = function(evt,itemIndex)
-    {
-      var e  = (evt) ? evt : window.event; // for IE
-      if (e.keyCode==13) return true;
-      if (!this.ProcessKeys(e)) return false;
-
-      if (this.lastKey==38) // Up
-      {
-        var newIndex = itemIndex-1;
-        var focusItem = this.NavPrev(newIndex);
-        if (focusItem)
-        {
-          var child = this.FindChildElement(focusItem.parentNode.parentNode.id);
-          if (child && child.style.display == 'block') // children visible
-          {
-            var n=0;
-            var tmpElem;
-            while (1) // search for last child
-            {
-              tmpElem = document.getElementById('Item'+newIndex+'_c'+n);
-              if (tmpElem)
-              {
-                focusItem = tmpElem;
-              }
-              else // found it!
-              {
-                break;
-              }
-              n++;
-            }
-          }
-        }
-        if (focusItem)
-        {
-          focusItem.focus();
-        }
-        else // return focus to search field
-        {
-           parent.document.getElementById("MSearchField").focus();
-        }
-      }
-      else if (this.lastKey==40) // Down
-      {
-        var newIndex = itemIndex+1;
-        var focusItem;
-        var item = document.getElementById('Item'+itemIndex);
-        var elem = this.FindChildElement(item.parentNode.parentNode.id);
-        if (elem && elem.style.display == 'block') // children visible
-        {
-          focusItem = document.getElementById('Item'+itemIndex+'_c0');
-        }
-        if (!focusItem) focusItem = this.NavNext(newIndex);
-        if (focusItem)  focusItem.focus();
-      }
-      else if (this.lastKey==39) // Right
-      {
-        var item = document.getElementById('Item'+itemIndex);
-        var elem = this.FindChildElement(item.parentNode.parentNode.id);
-        if (elem) elem.style.display = 'block';
-      }
-      else if (this.lastKey==37) // Left
-      {
-        var item = document.getElementById('Item'+itemIndex);
-        var elem = this.FindChildElement(item.parentNode.parentNode.id);
-        if (elem) elem.style.display = 'none';
-      }
-      else if (this.lastKey==27) // Escape
-      {
-        parent.searchBox.CloseResultsWindow();
-        parent.document.getElementById("MSearchField").focus();
-      }
-      else if (this.lastKey==13) // Enter
-      {
-        return true;
-      }
-      return false;
-    }
-
-    this.NavChild = function(evt,itemIndex,childIndex)
-    {
-      var e  = (evt) ? evt : window.event; // for IE
-      if (e.keyCode==13) return true;
-      if (!this.ProcessKeys(e)) return false;
-
-      if (this.lastKey==38) // Up
-      {
-        if (childIndex>0)
-        {
-          var newIndex = childIndex-1;
-          document.getElementById('Item'+itemIndex+'_c'+newIndex).focus();
-        }
-        else // already at first child, jump to parent
-        {
-          document.getElementById('Item'+itemIndex).focus();
-        }
-      }
-      else if (this.lastKey==40) // Down
-      {
-        var newIndex = childIndex+1;
-        var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex);
-        if (!elem) // last child, jump to parent next parent
-        {
-          elem = this.NavNext(itemIndex+1);
-        }
-        if (elem)
-        {
-          elem.focus();
-        }
-      }
-      else if (this.lastKey==27) // Escape
-      {
-        parent.searchBox.CloseResultsWindow();
-        parent.document.getElementById("MSearchField").focus();
-      }
-      else if (this.lastKey==13) // Enter
-      {
-        return true;
-      }
-      return false;
-    }
-}
-
-function setKeyActions(elem,action)
-{
-  elem.setAttribute('onkeydown',action);
-  elem.setAttribute('onkeypress',action);
-  elem.setAttribute('onkeyup',action);
-}
-
-function setClassAttr(elem,attr)
-{
-  elem.setAttribute('class',attr);
-  elem.setAttribute('className',attr);
-}
-
-function createResults()
-{
-  var results = document.getElementById("SRResults");
-  for (var e=0; e<searchData.length; e++)
-  {
-    var id = searchData[e][0];
-    var srResult = document.createElement('div');
-    srResult.setAttribute('id','SR_'+id);
-    setClassAttr(srResult,'SRResult');
-    var srEntry = document.createElement('div');
-    setClassAttr(srEntry,'SREntry');
-    var srLink = document.createElement('a');
-    srLink.setAttribute('id','Item'+e);
-    setKeyActions(srLink,'return searchResults.Nav(event,'+e+')');
-    setClassAttr(srLink,'SRSymbol');
-    srLink.innerHTML = searchData[e][1][0];
-    srEntry.appendChild(srLink);
-    if (searchData[e][1].length==2) // single result
-    {
-      srLink.setAttribute('href',searchData[e][1][1][0]);
-      if (searchData[e][1][1][1])
-      {
-       srLink.setAttribute('target','_parent');
-      }
-      var srScope = document.createElement('span');
-      setClassAttr(srScope,'SRScope');
-      srScope.innerHTML = searchData[e][1][1][2];
-      srEntry.appendChild(srScope);
-    }
-    else // multiple results
-    {
-      srLink.setAttribute('href','javascript:searchResults.Toggle("SR_'+id+'")');
-      var srChildren = document.createElement('div');
-      setClassAttr(srChildren,'SRChildren');
-      for (var c=0; c<searchData[e][1].length-1; c++)
-      {
-        var srChild = document.createElement('a');
-        srChild.setAttribute('id','Item'+e+'_c'+c);
-        setKeyActions(srChild,'return searchResults.NavChild(event,'+e+','+c+')');
-        setClassAttr(srChild,'SRScope');
-        srChild.setAttribute('href',searchData[e][1][c+1][0]);
-        if (searchData[e][1][c+1][1])
-        {
-         srChild.setAttribute('target','_parent');
-        }
-        srChild.innerHTML = searchData[e][1][c+1][2];
-        srChildren.appendChild(srChild);
-      }
-      srEntry.appendChild(srChildren);
-    }
-    srResult.appendChild(srEntry);
-    results.appendChild(srResult);
-  }
-}
-
-function init_search()
-{
-  var results = document.getElementById("MSearchSelectWindow");
-  for (var key in indexSectionLabels)
-  {
-    var link = document.createElement('a');
-    link.setAttribute('class','SelectItem');
-    link.setAttribute('onclick','searchBox.OnSelectItem('+key+')');
-    link.href='javascript:void(0)';
-    link.innerHTML='<span class="SelectionMark">&#160;</span>'+indexSectionLabels[key];
-    results.appendChild(link);
-  }
-  searchBox.OnSelectItem(0);
-}
-/* @license-end */
diff --git a/static/docs/2.2.1/html/search/search_l.png b/static/docs/2.2.1/html/search/search_l.png
deleted file mode 100755
index fd5f7da..0000000
--- a/static/docs/2.2.1/html/search/search_l.png
+++ /dev/null
Binary files differ
diff --git a/static/docs/2.2.1/html/search/search_m.png b/static/docs/2.2.1/html/search/search_m.png
deleted file mode 100755
index b429a16..0000000
--- a/static/docs/2.2.1/html/search/search_m.png
+++ /dev/null
Binary files differ
diff --git a/static/docs/2.2.1/html/search/search_r.png b/static/docs/2.2.1/html/search/search_r.png
deleted file mode 100755
index 1af5d21..0000000
--- a/static/docs/2.2.1/html/search/search_r.png
+++ /dev/null
Binary files differ
diff --git a/static/docs/2.2.1/html/search/searchdata.js b/static/docs/2.2.1/html/search/searchdata.js
deleted file mode 100755
index 9a0e232..0000000
--- a/static/docs/2.2.1/html/search/searchdata.js
+++ /dev/null
@@ -1,39 +0,0 @@
-var indexSectionsWithContent =
-{
-  0: "abcdfinoprsu",
-  1: "c",
-  2: "cr",
-  3: "c",
-  4: "abcdfinoprsu",
-  5: "cd",
-  6: "c",
-  7: "d",
-  8: "co"
-};
-
-var indexSectionNames =
-{
-  0: "all",
-  1: "classes",
-  2: "files",
-  3: "functions",
-  4: "variables",
-  5: "typedefs",
-  6: "enums",
-  7: "enumvalues",
-  8: "defines"
-};
-
-var indexSectionLabels =
-{
-  0: "All",
-  1: "Classes",
-  2: "Files",
-  3: "Functions",
-  4: "Variables",
-  5: "Typedefs",
-  6: "Enumerations",
-  7: "Enumerator",
-  8: "Macros"
-};
-
diff --git a/static/docs/2.2.1/html/search/typedefs_0.html b/static/docs/2.2.1/html/search/typedefs_0.html
deleted file mode 100755
index 43353ee..0000000
--- a/static/docs/2.2.1/html/search/typedefs_0.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="typedefs_0.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-createResults();
-/* @license-end */
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
-window.addEventListener("message", function(event) {
-  if (event.data == "take_focus") {
-    var elem = searchResults.NavNext(0);
-    if (elem) elem.focus();
-  }
-});
-/* @license-end */
---></script>
-</div>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/search/typedefs_0.js b/static/docs/2.2.1/html/search/typedefs_0.js
deleted file mode 100755
index 6b06edc..0000000
--- a/static/docs/2.2.1/html/search/typedefs_0.js
+++ /dev/null
@@ -1,21 +0,0 @@
-var searchData=
-[
-  ['celix_5fbundle_5ftracking_5foptions_5ft_315',['celix_bundle_tracking_options_t',['../celix__bundle__context_8h.html#a1b011b5fe49a718345698eeb359d0c3a',1,'celix_bundle_context.h']]],
-  ['celix_5fdependency_5fmanager_5finfo_5ft_316',['celix_dependency_manager_info_t',['../celix__dm__info_8h.html#af06092e6852ba40f4241b4e539265e64',1,'celix_dm_info.h']]],
-  ['celix_5fdm_5fcmp_5flifecycle_5ffpt_317',['celix_dm_cmp_lifecycle_fpt',['../celix__dm__component_8h.html#a9c73a72049f39d42d66b6d9c60d185dc',1,'celix_dm_component.h']]],
-  ['celix_5fdm_5fcomponent_5finfo_5ft_318',['celix_dm_component_info_t',['../celix__dm__info_8h.html#a57ffe4e9f51e746fdf4ae50151150b16',1,'celix_dm_info.h']]],
-  ['celix_5fdm_5fcomponent_5fstate_5ft_319',['celix_dm_component_state_t',['../celix__dm__component_8h.html#afd49054c559adbeb9627fa3d45d6c02a',1,'celix_dm_component.h']]],
-  ['celix_5fdm_5finterface_5finfo_5ft_320',['celix_dm_interface_info_t',['../celix__dm__info_8h.html#a635d8bc54edda5e7e70f7b27943196b6',1,'celix_dm_info.h']]],
-  ['celix_5fdm_5fservice_5fdependency_5fcallback_5foptions_5ft_321',['celix_dm_service_dependency_callback_options_t',['../celix__dm__service__dependency_8h.html#ace7f03a4e7746a8ca8218afd172752f8',1,'celix_dm_service_dependency.h']]],
-  ['celix_5fdm_5fservice_5fdependency_5finfo_5ft_322',['celix_dm_service_dependency_info_t',['../celix__dm__info_8h.html#a7fd4e90372051b1549c588095fb24fd4',1,'celix_dm_info.h']]],
-  ['celix_5fdm_5fservice_5fdependency_5fstrategy_5ft_323',['celix_dm_service_dependency_strategy_t',['../celix__dm__service__dependency_8h.html#a00447f0e837918fcf6e39698ef375f46',1,'celix_dm_service_dependency.h']]],
-  ['celix_5fdm_5fservice_5fswap_5ffp_324',['celix_dm_service_swap_fp',['../celix__dm__service__dependency_8h.html#a8a77266cc94a0f019b29d75a8e54995d',1,'celix_dm_service_dependency.h']]],
-  ['celix_5fdm_5fservice_5fswap_5fwith_5fprops_5ffp_325',['celix_dm_service_swap_with_props_fp',['../celix__dm__service__dependency_8h.html#a6b4b49e1cbd6865c5dc14e94086f629f',1,'celix_dm_service_dependency.h']]],
-  ['celix_5fdm_5fservice_5fupdate_5ffp_326',['celix_dm_service_update_fp',['../celix__dm__service__dependency_8h.html#a3aab7f5d65c74eb819047e5ec1f4c05f',1,'celix_dm_service_dependency.h']]],
-  ['celix_5fdm_5fservice_5fupdate_5fwith_5fprops_5ffp_327',['celix_dm_service_update_with_props_fp',['../celix__dm__service__dependency_8h.html#afb8ee50fcfc77f274578d85a70bb2b94',1,'celix_dm_service_dependency.h']]],
-  ['celix_5fservice_5ffilter_5foptions_5ft_328',['celix_service_filter_options_t',['../celix__bundle__context_8h.html#a7eab80d54386fb32b91dd414846c2d45',1,'celix_bundle_context.h']]],
-  ['celix_5fservice_5fregistration_5foptions_5ft_329',['celix_service_registration_options_t',['../celix__bundle__context_8h.html#aacaeb063a21a237ac515607d689eebb8',1,'celix_bundle_context.h']]],
-  ['celix_5fservice_5ftracker_5finfo_5ft_330',['celix_service_tracker_info_t',['../celix__bundle__context_8h.html#aea7e7fcd4022db2f9f4123dd3b7a794a',1,'celix_bundle_context.h']]],
-  ['celix_5fservice_5ftracking_5foptions_5ft_331',['celix_service_tracking_options_t',['../celix__bundle__context_8h.html#a5c017c82bf57881c04f8c6f545b25a75',1,'celix_bundle_context.h']]],
-  ['celix_5fservice_5fuse_5foptions_5ft_332',['celix_service_use_options_t',['../celix__bundle__context_8h.html#ae2da28d23f5246c20c6b675b80e7d130',1,'celix_bundle_context.h']]]
-];
diff --git a/static/docs/2.2.1/html/search/typedefs_1.html b/static/docs/2.2.1/html/search/typedefs_1.html
deleted file mode 100755
index 84e9542..0000000
--- a/static/docs/2.2.1/html/search/typedefs_1.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="typedefs_1.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-createResults();
-/* @license-end */
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
-window.addEventListener("message", function(event) {
-  if (event.data == "take_focus") {
-    var elem = searchResults.NavNext(0);
-    if (elem) elem.focus();
-  }
-});
-/* @license-end */
---></script>
-</div>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/search/typedefs_1.js b/static/docs/2.2.1/html/search/typedefs_1.js
deleted file mode 100755
index 683671c..0000000
--- a/static/docs/2.2.1/html/search/typedefs_1.js
+++ /dev/null
@@ -1,11 +0,0 @@
-var searchData=
-[
-  ['dm_5fcomponent_5finfo_5fpt_333',['dm_component_info_pt',['../celix__dm__info_8h.html#a4325313bb7b98b6eded2212a6edd065a',1,'celix_dm_info.h']]],
-  ['dm_5fcomponent_5finfo_5ft_334',['dm_component_info_t',['../celix__dm__info_8h.html#a81bba27d8f869e77dd921c7cd8ac35d7',1,'celix_dm_info.h']]],
-  ['dm_5fdependency_5fmanager_5finfo_5fpt_335',['dm_dependency_manager_info_pt',['../celix__dm__info_8h.html#a230d51a712bc30bd2b52126e17f63738',1,'celix_dm_info.h']]],
-  ['dm_5fdependency_5fmanager_5finfo_5ft_336',['dm_dependency_manager_info_t',['../celix__dm__info_8h.html#aeaa11da320e45fdeef41c441bff70f02',1,'celix_dm_info.h']]],
-  ['dm_5finterface_5finfo_5fpt_337',['dm_interface_info_pt',['../celix__dm__info_8h.html#abb40885e5ab16c4701927d7095194ee2',1,'celix_dm_info.h']]],
-  ['dm_5finterface_5finfo_5ft_338',['dm_interface_info_t',['../celix__dm__info_8h.html#a3c8c9b3b3b6d6cb2853ce22f337ed7f0',1,'celix_dm_info.h']]],
-  ['dm_5fservice_5fdependency_5finfo_5fpt_339',['dm_service_dependency_info_pt',['../celix__dm__info_8h.html#a0a06988849c18fd4848452086f36ed6e',1,'celix_dm_info.h']]],
-  ['dm_5fservice_5fdependency_5finfo_5ft_340',['dm_service_dependency_info_t',['../celix__dm__info_8h.html#a553833e914505261622b13563c8a045e',1,'celix_dm_info.h']]]
-];
diff --git a/static/docs/2.2.1/html/search/variables_0.html b/static/docs/2.2.1/html/search/variables_0.html
deleted file mode 100755
index 9ce246b..0000000
--- a/static/docs/2.2.1/html/search/variables_0.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="variables_0.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-createResults();
-/* @license-end */
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
-window.addEventListener("message", function(event) {
-  if (event.data == "take_focus") {
-    var elem = searchResults.NavNext(0);
-    if (elem) elem.focus();
-  }
-});
-/* @license-end */
---></script>
-</div>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/search/variables_0.js b/static/docs/2.2.1/html/search/variables_0.js
deleted file mode 100755
index c220927..0000000
--- a/static/docs/2.2.1/html/search/variables_0.js
+++ /dev/null
@@ -1,9 +0,0 @@
-var searchData=
-[
-  ['active_278',['active',['../structcelix__dm__component__info__struct.html#a293333dd64e557ab4b3d80c44d6d2499',1,'celix_dm_component_info_struct']]],
-  ['add_279',['add',['../structcelix__service__tracking__options.html#afe7fa7d7fce1c581dff6e7986e958815',1,'celix_service_tracking_options::add()'],['../structcelix__dm__service__dependency__callback__options.html#a9663db4ef079c6300f95dadfe2c03813',1,'celix_dm_service_dependency_callback_options::add()']]],
-  ['addwithowner_280',['addWithOwner',['../structcelix__service__tracking__options.html#a787fd0f4f6719fefea2ae70fe6a1a5e6',1,'celix_service_tracking_options']]],
-  ['addwithproperties_281',['addWithProperties',['../structcelix__service__tracking__options.html#a4f80c99b050b1e49663cab329848364c',1,'celix_service_tracking_options']]],
-  ['addwithprops_282',['addWithProps',['../structcelix__dm__service__dependency__callback__options.html#a5cf7a8e9026d08803798c70cb6a30330',1,'celix_dm_service_dependency_callback_options']]],
-  ['available_283',['available',['../structcelix__dm__service__dependency__info__struct.html#a77659b20ca3bcc2b9282f4644bdcbe66',1,'celix_dm_service_dependency_info_struct']]]
-];
diff --git a/static/docs/2.2.1/html/search/variables_1.html b/static/docs/2.2.1/html/search/variables_1.html
deleted file mode 100755
index 5802cec..0000000
--- a/static/docs/2.2.1/html/search/variables_1.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="variables_1.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-createResults();
-/* @license-end */
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
-window.addEventListener("message", function(event) {
-  if (event.data == "take_focus") {
-    var elem = searchResults.NavNext(0);
-    if (elem) elem.focus();
-  }
-});
-/* @license-end */
---></script>
-</div>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/search/variables_1.js b/static/docs/2.2.1/html/search/variables_1.js
deleted file mode 100755
index f67e849..0000000
--- a/static/docs/2.2.1/html/search/variables_1.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var searchData=
-[
-  ['bndid_284',['bndId',['../structcelix__dm__dependency__manager__info__struct.html#ac51721859e70f844e4c23873aec85dfb',1,'celix_dm_dependency_manager_info_struct']]],
-  ['bundleid_285',['bundleId',['../structcelix__service__tracker__info.html#a6978e4b5f2fcc2d42a42f0e7ed3bb7c8',1,'celix_service_tracker_info']]]
-];
diff --git a/static/docs/2.2.1/html/search/variables_2.html b/static/docs/2.2.1/html/search/variables_2.html
deleted file mode 100755
index 00291e5..0000000
--- a/static/docs/2.2.1/html/search/variables_2.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="variables_2.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-createResults();
-/* @license-end */
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
-window.addEventListener("message", function(event) {
-  if (event.data == "take_focus") {
-    var elem = searchResults.NavNext(0);
-    if (elem) elem.focus();
-  }
-});
-/* @license-end */
---></script>
-</div>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/search/variables_2.js b/static/docs/2.2.1/html/search/variables_2.js
deleted file mode 100755
index 946c82f..0000000
--- a/static/docs/2.2.1/html/search/variables_2.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var searchData=
-[
-  ['components_286',['components',['../structcelix__dm__dependency__manager__info__struct.html#a3d4be4557e6b124bd6b2c586fddfb75b',1,'celix_dm_dependency_manager_info_struct']]],
-  ['count_287',['count',['../structcelix__dm__service__dependency__info__struct.html#ad9284f87c8033a14e5ba5de8118b7f09',1,'celix_dm_service_dependency_info_struct']]]
-];
diff --git a/static/docs/2.2.1/html/search/variables_3.html b/static/docs/2.2.1/html/search/variables_3.html
deleted file mode 100755
index 0e5389b..0000000
--- a/static/docs/2.2.1/html/search/variables_3.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="variables_3.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-createResults();
-/* @license-end */
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
-window.addEventListener("message", function(event) {
-  if (event.data == "take_focus") {
-    var elem = searchResults.NavNext(0);
-    if (elem) elem.focus();
-  }
-});
-/* @license-end */
---></script>
-</div>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/search/variables_3.js b/static/docs/2.2.1/html/search/variables_3.js
deleted file mode 100755
index dec653e..0000000
--- a/static/docs/2.2.1/html/search/variables_3.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var searchData=
-[
-  ['dependency_5flist_288',['dependency_list',['../structcelix__dm__component__info__struct.html#abb385ead04139565ed13ed34841d1bda',1,'celix_dm_component_info_struct']]]
-];
diff --git a/static/docs/2.2.1/html/search/variables_4.html b/static/docs/2.2.1/html/search/variables_4.html
deleted file mode 100755
index 789a86b..0000000
--- a/static/docs/2.2.1/html/search/variables_4.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="variables_4.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-createResults();
-/* @license-end */
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
-window.addEventListener("message", function(event) {
-  if (event.data == "take_focus") {
-    var elem = searchResults.NavNext(0);
-    if (elem) elem.focus();
-  }
-});
-/* @license-end */
---></script>
-</div>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/search/variables_4.js b/static/docs/2.2.1/html/search/variables_4.js
deleted file mode 100755
index 52ef90a..0000000
--- a/static/docs/2.2.1/html/search/variables_4.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var searchData=
-[
-  ['filter_289',['filter',['../structcelix__service__tracker__info.html#a3cd52ce46875995a973fb6b65967d7e4',1,'celix_service_tracker_info::filter()'],['../structcelix__dm__service__dependency__info__struct.html#ac06a272ddf7c02e335be784082ba5e9f',1,'celix_dm_service_dependency_info_struct::filter()']]]
-];
diff --git a/static/docs/2.2.1/html/search/variables_5.html b/static/docs/2.2.1/html/search/variables_5.html
deleted file mode 100755
index c7873eb..0000000
--- a/static/docs/2.2.1/html/search/variables_5.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="variables_5.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-createResults();
-/* @license-end */
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
-window.addEventListener("message", function(event) {
-  if (event.data == "take_focus") {
-    var elem = searchResults.NavNext(0);
-    if (elem) elem.focus();
-  }
-});
-/* @license-end */
---></script>
-</div>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/search/variables_5.js b/static/docs/2.2.1/html/search/variables_5.js
deleted file mode 100755
index 125c017..0000000
--- a/static/docs/2.2.1/html/search/variables_5.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var searchData=
-[
-  ['id_290',['id',['../structcelix__dm__component__info__struct.html#a08281c5b4f78ba0d025b37b18c3201b5',1,'celix_dm_component_info_struct']]],
-  ['interfaces_291',['interfaces',['../structcelix__dm__component__info__struct.html#abbbe72fb049ad5ebb5941421929ae51a',1,'celix_dm_component_info_struct']]]
-];
diff --git a/static/docs/2.2.1/html/search/variables_6.html b/static/docs/2.2.1/html/search/variables_6.html
deleted file mode 100755
index a588588..0000000
--- a/static/docs/2.2.1/html/search/variables_6.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="variables_6.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-createResults();
-/* @license-end */
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
-window.addEventListener("message", function(event) {
-  if (event.data == "take_focus") {
-    var elem = searchResults.NavNext(0);
-    if (elem) elem.focus();
-  }
-});
-/* @license-end */
---></script>
-</div>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/search/variables_6.js b/static/docs/2.2.1/html/search/variables_6.js
deleted file mode 100755
index 60bb85f..0000000
--- a/static/docs/2.2.1/html/search/variables_6.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var searchData=
-[
-  ['name_292',['name',['../structcelix__dm__interface__info__struct.html#ae2306753d7867ac9dc13d0d1b00f60be',1,'celix_dm_interface_info_struct::name()'],['../structcelix__dm__component__info__struct.html#aad1da907cd6f4a75f85c8321b1f6ce7a',1,'celix_dm_component_info_struct::name()']]]
-];
diff --git a/static/docs/2.2.1/html/search/variables_7.html b/static/docs/2.2.1/html/search/variables_7.html
deleted file mode 100755
index b09b295..0000000
--- a/static/docs/2.2.1/html/search/variables_7.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="variables_7.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-createResults();
-/* @license-end */
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
-window.addEventListener("message", function(event) {
-  if (event.data == "take_focus") {
-    var elem = searchResults.NavNext(0);
-    if (elem) elem.focus();
-  }
-});
-/* @license-end */
---></script>
-</div>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/search/variables_7.js b/static/docs/2.2.1/html/search/variables_7.js
deleted file mode 100755
index 1c0f19c..0000000
--- a/static/docs/2.2.1/html/search/variables_7.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var searchData=
-[
-  ['onbundleevent_293',['onBundleEvent',['../structcelix__bundle__tracker__options.html#aae47b1896e9b058f9a43d26246241398',1,'celix_bundle_tracker_options']]],
-  ['onstarted_294',['onStarted',['../structcelix__bundle__tracker__options.html#a044b58b6aa64edfd3f49921fdf6756bb',1,'celix_bundle_tracker_options']]],
-  ['onstopped_295',['onStopped',['../structcelix__bundle__tracker__options.html#aeac272edbc00cb62f7071df0699dd492',1,'celix_bundle_tracker_options']]],
-  ['opts_5finit_296',['OPTS_INIT',['../structcelix__service__registration__options.html#a9c24c1179305b68840149449b1fa6d87',1,'celix_service_registration_options::OPTS_INIT()'],['../structcelix__service__registration__options.html#a94eb8e6e1af0cca435d99aa5d2457fca',1,'celix_service_registration_options::OPTS_INIT()'],['../structcelix__service__registration__options.html#a86179f0c7a032f3309440a2cd8d91a61',1,'celix_service_registration_options::OPTS_INIT()'],['../structcelix__service__registration__options.html#a6e1274cc3b190b3dc05c7c145f57d407',1,'celix_service_registration_options::OPTS_INIT()'],['../structcelix__service__registration__options.html#ae44ee7cc15427e406a67b0396201700c',1,'celix_service_registration_options::OPTS_INIT()'],['../structcelix__service__registration__options.html#af9b1a622c06a3053ed3917649241fc23',1,'celix_service_registration_options::OPTS_INIT()'],['../structcelix__service__filter__options.html#addb2e1e8fcce127512d272383e78cbd1',1,'celix_service_filter_options::OPTS_INIT()'],['../structcelix__service__filter__options.html#a65bea04c378ef46d841046ffbb2f805c',1,'celix_service_filter_options::OPTS_INIT()'],['../structcelix__service__filter__options.html#ac15f30b81e60826290a29fb12da6684a',1,'celix_service_filter_options::OPTS_INIT()'],['../structcelix__service__filter__options.html#a9286701a4c946d1ed28afde05cd34d51',1,'celix_service_filter_options::OPTS_INIT()'],['../structcelix__service__filter__options.html#a70cc8aee445c1a24782454393f12ff98',1,'celix_service_filter_options::OPTS_INIT()'],['../structcelix__service__tracking__options.html#a9272f1870b544b28329545b84f3425c2',1,'celix_service_tracking_options::OPTS_INIT()'],['../structcelix__service__tracking__options.html#a2fcaf1b7274379695cc9a4bb1c719d86',1,'celix_service_tracking_options::OPTS_INIT()'],['../structcelix__service__use__options.html#addad49a12179fff8b2dbf5313d70952f',1,'celix_service_use_options::OPTS_INIT()'],['../structcelix__service__use__options.html#ae24e3e35d7d92d5b41d58b53506bcca0',1,'celix_service_use_options::OPTS_INIT()'],['../structcelix__service__use__options.html#a31a9834b87a5c2c3ed6b8532cd85c653',1,'celix_service_use_options::OPTS_INIT()'],['../structcelix__bundle__tracker__options.html#a80ebdcbb840fa97d81e1250fba2d20af',1,'celix_bundle_tracker_options::OPTS_INIT()'],['../structcelix__bundle__tracker__options.html#a54a11feb78bd514c95f7c9aecaa7f212',1,'celix_bundle_tracker_options::OPTS_INIT()']]]
-];
diff --git a/static/docs/2.2.1/html/search/variables_8.html b/static/docs/2.2.1/html/search/variables_8.html
deleted file mode 100755
index a479f8e..0000000
--- a/static/docs/2.2.1/html/search/variables_8.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="variables_8.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-createResults();
-/* @license-end */
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
-window.addEventListener("message", function(event) {
-  if (event.data == "take_focus") {
-    var elem = searchResults.NavNext(0);
-    if (elem) elem.focus();
-  }
-});
-/* @license-end */
---></script>
-</div>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/search/variables_8.js b/static/docs/2.2.1/html/search/variables_8.js
deleted file mode 100755
index c309239..0000000
--- a/static/docs/2.2.1/html/search/variables_8.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var searchData=
-[
-  ['properties_297',['properties',['../structcelix__dm__interface__info__struct.html#a6fb90a86fdaa6aefde5e598f5ca85e2c',1,'celix_dm_interface_info_struct']]]
-];
diff --git a/static/docs/2.2.1/html/search/variables_9.html b/static/docs/2.2.1/html/search/variables_9.html
deleted file mode 100755
index 97cc440..0000000
--- a/static/docs/2.2.1/html/search/variables_9.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="variables_9.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-createResults();
-/* @license-end */
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
-window.addEventListener("message", function(event) {
-  if (event.data == "take_focus") {
-    var elem = searchResults.NavNext(0);
-    if (elem) elem.focus();
-  }
-});
-/* @license-end */
---></script>
-</div>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/search/variables_9.js b/static/docs/2.2.1/html/search/variables_9.js
deleted file mode 100755
index 75562c8..0000000
--- a/static/docs/2.2.1/html/search/variables_9.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var searchData=
-[
-  ['remove_298',['remove',['../structcelix__service__tracking__options.html#a8445caaae53d71a47c0289d2e3e5f882',1,'celix_service_tracking_options::remove()'],['../structcelix__dm__service__dependency__callback__options.html#a10fe45460fc65e1590a58477f515424b',1,'celix_dm_service_dependency_callback_options::remove()']]],
-  ['removewithowner_299',['removeWithOwner',['../structcelix__service__tracking__options.html#acf6dbcde52efbed145933e8a28f3f2e1',1,'celix_service_tracking_options']]],
-  ['removewithproperties_300',['removeWithProperties',['../structcelix__service__tracking__options.html#af75c423757dcd16bf90d57a5726ac98a',1,'celix_service_tracking_options']]],
-  ['removewithprops_301',['removeWithProps',['../structcelix__dm__service__dependency__callback__options.html#a54ee61c8ab040dc87de22588013316fd',1,'celix_dm_service_dependency_callback_options']]],
-  ['required_302',['required',['../structcelix__dm__service__dependency__info__struct.html#a8ad066c5fa5d75e9fb82add72cbfc705',1,'celix_dm_service_dependency_info_struct']]]
-];
diff --git a/static/docs/2.2.1/html/search/variables_a.html b/static/docs/2.2.1/html/search/variables_a.html
deleted file mode 100755
index 0107448..0000000
--- a/static/docs/2.2.1/html/search/variables_a.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="variables_a.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-createResults();
-/* @license-end */
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
-window.addEventListener("message", function(event) {
-  if (event.data == "take_focus") {
-    var elem = searchResults.NavNext(0);
-    if (elem) elem.focus();
-  }
-});
-/* @license-end */
---></script>
-</div>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/search/variables_a.js b/static/docs/2.2.1/html/search/variables_a.js
deleted file mode 100755
index edbeaca..0000000
--- a/static/docs/2.2.1/html/search/variables_a.js
+++ /dev/null
@@ -1,12 +0,0 @@
-var searchData=
-[
-  ['servicelanguage_303',['serviceLanguage',['../structcelix__service__tracker__info.html#a5baca60295d208fe0581a564c3627f65',1,'celix_service_tracker_info']]],
-  ['servicename_304',['serviceName',['../structcelix__service__tracker__info.html#a5f695cf6d8cd69e0c419298ded657546',1,'celix_service_tracker_info']]],
-  ['set_305',['set',['../structcelix__service__tracking__options.html#aa9e8b9cae7ea59ddb796a6bc904f57da',1,'celix_service_tracking_options::set()'],['../structcelix__dm__service__dependency__callback__options.html#a84e8cecdb9dd19f072d1b9c28fa95c8b',1,'celix_dm_service_dependency_callback_options::set()']]],
-  ['setwithowner_306',['setWithOwner',['../structcelix__service__tracking__options.html#a12a988b8f1f3bd3a2e61c65d82f14d59',1,'celix_service_tracking_options']]],
-  ['setwithproperties_307',['setWithProperties',['../structcelix__service__tracking__options.html#a256f8db1eecb89a8b71e4ef03ab11172',1,'celix_service_tracking_options']]],
-  ['setwithprops_308',['setWithProps',['../structcelix__dm__service__dependency__callback__options.html#a286bb094f7e4b4a9066e9b235aa8ade9',1,'celix_dm_service_dependency_callback_options']]],
-  ['state_309',['state',['../structcelix__dm__component__info__struct.html#a0c64e56c05452d29efc60ac8b75f7163',1,'celix_dm_component_info_struct']]],
-  ['swap_310',['swap',['../structcelix__dm__service__dependency__callback__options.html#a35b874e6fa5a6c3af03f09e6492e8b48',1,'celix_dm_service_dependency_callback_options']]],
-  ['swapwithprops_311',['swapWithProps',['../structcelix__dm__service__dependency__callback__options.html#a1e0bfcf2034cd6d69d954256d101598d',1,'celix_dm_service_dependency_callback_options']]]
-];
diff --git a/static/docs/2.2.1/html/search/variables_b.html b/static/docs/2.2.1/html/search/variables_b.html
deleted file mode 100755
index e5b2fd9..0000000
--- a/static/docs/2.2.1/html/search/variables_b.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="variables_b.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-createResults();
-/* @license-end */
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
-window.addEventListener("message", function(event) {
-  if (event.data == "take_focus") {
-    var elem = searchResults.NavNext(0);
-    if (elem) elem.focus();
-  }
-});
-/* @license-end */
---></script>
-</div>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/search/variables_b.js b/static/docs/2.2.1/html/search/variables_b.js
deleted file mode 100755
index 879c2f9..0000000
--- a/static/docs/2.2.1/html/search/variables_b.js
+++ /dev/null
@@ -1,6 +0,0 @@
-var searchData=
-[
-  ['use_312',['use',['../structcelix__service__use__options.html#ac7efa464a614a3faf6970a4917c596a7',1,'celix_service_use_options']]],
-  ['usewithowner_313',['useWithOwner',['../structcelix__service__use__options.html#a2ba3552bfc25500084bfaf2dbb0f46c5',1,'celix_service_use_options']]],
-  ['usewithproperties_314',['useWithProperties',['../structcelix__service__use__options.html#a8192eb7aa470178f78ea8c09c4574867',1,'celix_service_use_options']]]
-];
diff --git a/static/docs/2.2.1/html/splitbar.png b/static/docs/2.2.1/html/splitbar.png
deleted file mode 100755
index fe895f2..0000000
--- a/static/docs/2.2.1/html/splitbar.png
+++ /dev/null
Binary files differ
diff --git a/static/docs/2.2.1/html/structcelix__bundle__tracker__options-members.html b/static/docs/2.2.1/html/structcelix__bundle__tracker__options-members.html
deleted file mode 100755
index 346e1d2..0000000
--- a/static/docs/2.2.1/html/structcelix__bundle__tracker__options-members.html
+++ /dev/null
@@ -1,86 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>Celix: Member List</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/searchdata.js"></script>
-<script type="text/javascript" src="search/search.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">Celix
-   &#160;<span id="projectnumber">2.2.1</span>
-   </div>
-   <div id="projectbrief">An implementation of the OSGi specification adapted to C and C++</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.18 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
-     onmouseover="return searchBox.OnSearchSelectShow()"
-     onmouseout="return searchBox.OnSearchSelectHide()"
-     onkeydown="return searchBox.OnSearchSelectKey(event)">
-</div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-</div><!-- top -->
-<div class="header">
-  <div class="headertitle">
-<div class="title">celix_bundle_tracker_options Member List</div>  </div>
-</div><!--header-->
-<div class="contents">
-
-<p>This is the complete list of members for <a class="el" href="structcelix__bundle__tracker__options.html">celix_bundle_tracker_options</a>, including all inherited members.</p>
-<table class="directory">
-  <tr class="even"><td class="entry"><a class="el" href="structcelix__bundle__tracker__options.html#aae47b1896e9b058f9a43d26246241398">onBundleEvent</a></td><td class="entry"><a class="el" href="structcelix__bundle__tracker__options.html">celix_bundle_tracker_options</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="structcelix__bundle__tracker__options.html#a044b58b6aa64edfd3f49921fdf6756bb">onStarted</a></td><td class="entry"><a class="el" href="structcelix__bundle__tracker__options.html">celix_bundle_tracker_options</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="structcelix__bundle__tracker__options.html#aeac272edbc00cb62f7071df0699dd492">onStopped</a></td><td class="entry"><a class="el" href="structcelix__bundle__tracker__options.html">celix_bundle_tracker_options</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="structcelix__bundle__tracker__options.html#a80ebdcbb840fa97d81e1250fba2d20af">OPTS_INIT</a></td><td class="entry"><a class="el" href="structcelix__bundle__tracker__options.html">celix_bundle_tracker_options</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="structcelix__bundle__tracker__options.html#a54a11feb78bd514c95f7c9aecaa7f212">OPTS_INIT</a></td><td class="entry"><a class="el" href="structcelix__bundle__tracker__options.html">celix_bundle_tracker_options</a></td><td class="entry"></td></tr>
-</table></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.18
-</small></address>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/structcelix__bundle__tracker__options.html b/static/docs/2.2.1/html/structcelix__bundle__tracker__options.html
deleted file mode 100755
index f973862..0000000
--- a/static/docs/2.2.1/html/structcelix__bundle__tracker__options.html
+++ /dev/null
@@ -1,196 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>Celix: celix_bundle_tracker_options Struct Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/searchdata.js"></script>
-<script type="text/javascript" src="search/search.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">Celix
-   &#160;<span id="projectnumber">2.2.1</span>
-   </div>
-   <div id="projectbrief">An implementation of the OSGi specification adapted to C and C++</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.18 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
-     onmouseover="return searchBox.OnSearchSelectShow()"
-     onmouseout="return searchBox.OnSearchSelectHide()"
-     onkeydown="return searchBox.OnSearchSelectKey(event)">
-</div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-</div><!-- top -->
-<div class="header">
-  <div class="summary">
-<a href="#pub-attribs">Public Attributes</a> &#124;
-<a href="structcelix__bundle__tracker__options-members.html">List of all members</a>  </div>
-  <div class="headertitle">
-<div class="title">celix_bundle_tracker_options Struct Reference</div>  </div>
-</div><!--header-->
-<div class="contents">
-
-<p><code>#include &lt;<a class="el" href="celix__bundle__context_8h_source.html">celix_bundle_context.h</a>&gt;</code></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
-Public Attributes</h2></td></tr>
-<tr class="memitem:a80ebdcbb840fa97d81e1250fba2d20af"><td class="memItemLeft" align="right" valign="top">void *callbackHandle&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__bundle__tracker__options.html#a80ebdcbb840fa97d81e1250fba2d20af">OPTS_INIT</a></td></tr>
-<tr class="separator:a80ebdcbb840fa97d81e1250fba2d20af"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a044b58b6aa64edfd3f49921fdf6756bb"><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__bundle__tracker__options.html#a044b58b6aa64edfd3f49921fdf6756bb">onStarted</a> )(void *handle, const celix_bundle_t *bundle) <a class="el" href="structcelix__bundle__tracker__options.html#a80ebdcbb840fa97d81e1250fba2d20af">OPTS_INIT</a></td></tr>
-<tr class="separator:a044b58b6aa64edfd3f49921fdf6756bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aeac272edbc00cb62f7071df0699dd492"><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__bundle__tracker__options.html#aeac272edbc00cb62f7071df0699dd492">onStopped</a> )(void *handle, const celix_bundle_t *bundle) <a class="el" href="structcelix__bundle__tracker__options.html#a80ebdcbb840fa97d81e1250fba2d20af">OPTS_INIT</a></td></tr>
-<tr class="separator:aeac272edbc00cb62f7071df0699dd492"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aae47b1896e9b058f9a43d26246241398"><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__bundle__tracker__options.html#aae47b1896e9b058f9a43d26246241398">onBundleEvent</a> )(void *handle, const celix_bundle_event_t *event) <a class="el" href="structcelix__bundle__tracker__options.html#a80ebdcbb840fa97d81e1250fba2d20af">OPTS_INIT</a></td></tr>
-<tr class="separator:aae47b1896e9b058f9a43d26246241398"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a54a11feb78bd514c95f7c9aecaa7f212"><td class="memItemLeft" align="right" valign="top">bool includeFrameworkBundle&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__bundle__tracker__options.html#a54a11feb78bd514c95f7c9aecaa7f212">OPTS_INIT</a></td></tr>
-<tr class="separator:a54a11feb78bd514c95f7c9aecaa7f212"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>The Service Bundle Tracking options can be used to fine tune the requested bundle tracker options. </p>
-</div><h2 class="groupheader">Member Data Documentation</h2>
-<a id="aae47b1896e9b058f9a43d26246241398"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#aae47b1896e9b058f9a43d26246241398">&#9670;&nbsp;</a></span>onBundleEvent</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void(* celix_bundle_tracker_options::onBundleEvent) (void *handle, const celix_bundle_event_t *event) <a class="el" href="structcelix__bundle__tracker__options.html#a80ebdcbb840fa97d81e1250fba2d20af">OPTS_INIT</a></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">handle</td><td>The handle, contains the value of the callbackHandle. </td></tr>
-    <tr><td class="paramname">event</td><td>The bundle event. Is only valid during the callback. </td></tr>
-  </table>
-  </dd>
-</dl>
-
-</div>
-</div>
-<a id="a044b58b6aa64edfd3f49921fdf6756bb"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a044b58b6aa64edfd3f49921fdf6756bb">&#9670;&nbsp;</a></span>onStarted</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void(* celix_bundle_tracker_options::onStarted) (void *handle, const celix_bundle_t *bundle) <a class="el" href="structcelix__bundle__tracker__options.html#a80ebdcbb840fa97d81e1250fba2d20af">OPTS_INIT</a></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Tracker callback when a bundle is installed. </p><dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">handle</td><td>The handle, contains the value of the callbackHandle. </td></tr>
-    <tr><td class="paramname">bundle</td><td>The bundle which has been started. The bundle pointer is only guaranteed to be valid during the callback. </td></tr>
-  </table>
-  </dd>
-</dl>
-
-</div>
-</div>
-<a id="aeac272edbc00cb62f7071df0699dd492"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#aeac272edbc00cb62f7071df0699dd492">&#9670;&nbsp;</a></span>onStopped</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void(* celix_bundle_tracker_options::onStopped) (void *handle, const celix_bundle_t *bundle) <a class="el" href="structcelix__bundle__tracker__options.html#a80ebdcbb840fa97d81e1250fba2d20af">OPTS_INIT</a></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Tracker callback when a bundle is removed. </p><dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">handle</td><td>The handle, contains the value of the callbackHandle. </td></tr>
-    <tr><td class="paramname">bundle</td><td>The bundle which has been started. The bundle pointer is only guaranteed to be valid during the callback. </td></tr>
-  </table>
-  </dd>
-</dl>
-
-</div>
-</div>
-<a id="a80ebdcbb840fa97d81e1250fba2d20af"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a80ebdcbb840fa97d81e1250fba2d20af">&#9670;&nbsp;</a></span>OPTS_INIT <span class="overload">[1/2]</span></h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void* callbackHandle celix_bundle_tracker_options::OPTS_INIT</td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>The optional callback pointer used in all the provided callback function (set, add, remove, setWithProperties, etc). </p>
-
-</div>
-</div>
-<a id="a54a11feb78bd514c95f7c9aecaa7f212"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a54a11feb78bd514c95f7c9aecaa7f212">&#9670;&nbsp;</a></span>OPTS_INIT <span class="overload">[2/2]</span></h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">bool includeFrameworkBundle celix_bundle_tracker_options::OPTS_INIT</td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Default the framework bundle (bundle id 0) will not trigger the callbacks. This is done, because the framework bundle is a special bundle which is generally not needed in the callbacks. </p>
-
-</div>
-</div>
-<hr/>The documentation for this struct was generated from the following file:<ul>
-<li>libs/framework/include/<a class="el" href="celix__bundle__context_8h_source.html">celix_bundle_context.h</a></li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.18
-</small></address>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/structcelix__dm__component__info__struct-members.html b/static/docs/2.2.1/html/structcelix__dm__component__info__struct-members.html
deleted file mode 100755
index f7e87a3..0000000
--- a/static/docs/2.2.1/html/structcelix__dm__component__info__struct-members.html
+++ /dev/null
@@ -1,87 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>Celix: Member List</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/searchdata.js"></script>
-<script type="text/javascript" src="search/search.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">Celix
-   &#160;<span id="projectnumber">2.2.1</span>
-   </div>
-   <div id="projectbrief">An implementation of the OSGi specification adapted to C and C++</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.18 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
-     onmouseover="return searchBox.OnSearchSelectShow()"
-     onmouseout="return searchBox.OnSearchSelectHide()"
-     onkeydown="return searchBox.OnSearchSelectKey(event)">
-</div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-</div><!-- top -->
-<div class="header">
-  <div class="headertitle">
-<div class="title">celix_dm_component_info_struct Member List</div>  </div>
-</div><!--header-->
-<div class="contents">
-
-<p>This is the complete list of members for <a class="el" href="structcelix__dm__component__info__struct.html">celix_dm_component_info_struct</a>, including all inherited members.</p>
-<table class="directory">
-  <tr class="even"><td class="entry"><a class="el" href="structcelix__dm__component__info__struct.html#a293333dd64e557ab4b3d80c44d6d2499">active</a></td><td class="entry"><a class="el" href="structcelix__dm__component__info__struct.html">celix_dm_component_info_struct</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="structcelix__dm__component__info__struct.html#abb385ead04139565ed13ed34841d1bda">dependency_list</a></td><td class="entry"><a class="el" href="structcelix__dm__component__info__struct.html">celix_dm_component_info_struct</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="structcelix__dm__component__info__struct.html#a08281c5b4f78ba0d025b37b18c3201b5">id</a></td><td class="entry"><a class="el" href="structcelix__dm__component__info__struct.html">celix_dm_component_info_struct</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="structcelix__dm__component__info__struct.html#abbbe72fb049ad5ebb5941421929ae51a">interfaces</a></td><td class="entry"><a class="el" href="structcelix__dm__component__info__struct.html">celix_dm_component_info_struct</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="structcelix__dm__component__info__struct.html#aad1da907cd6f4a75f85c8321b1f6ce7a">name</a></td><td class="entry"><a class="el" href="structcelix__dm__component__info__struct.html">celix_dm_component_info_struct</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="structcelix__dm__component__info__struct.html#a0c64e56c05452d29efc60ac8b75f7163">state</a></td><td class="entry"><a class="el" href="structcelix__dm__component__info__struct.html">celix_dm_component_info_struct</a></td><td class="entry"></td></tr>
-</table></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.18
-</small></address>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/structcelix__dm__component__info__struct.html b/static/docs/2.2.1/html/structcelix__dm__component__info__struct.html
deleted file mode 100755
index b0ead2c..0000000
--- a/static/docs/2.2.1/html/structcelix__dm__component__info__struct.html
+++ /dev/null
@@ -1,187 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>Celix: celix_dm_component_info_struct Struct Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/searchdata.js"></script>
-<script type="text/javascript" src="search/search.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">Celix
-   &#160;<span id="projectnumber">2.2.1</span>
-   </div>
-   <div id="projectbrief">An implementation of the OSGi specification adapted to C and C++</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.18 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
-     onmouseover="return searchBox.OnSearchSelectShow()"
-     onmouseout="return searchBox.OnSearchSelectHide()"
-     onkeydown="return searchBox.OnSearchSelectKey(event)">
-</div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-</div><!-- top -->
-<div class="header">
-  <div class="summary">
-<a href="#pub-attribs">Public Attributes</a> &#124;
-<a href="structcelix__dm__component__info__struct-members.html">List of all members</a>  </div>
-  <div class="headertitle">
-<div class="title">celix_dm_component_info_struct Struct Reference</div>  </div>
-</div><!--header-->
-<div class="contents">
-
-<p><code>#include &lt;<a class="el" href="celix__dm__info_8h_source.html">celix_dm_info.h</a>&gt;</code></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
-Public Attributes</h2></td></tr>
-<tr class="memitem:a08281c5b4f78ba0d025b37b18c3201b5"><td class="memItemLeft" align="right" valign="top">char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__dm__component__info__struct.html#a08281c5b4f78ba0d025b37b18c3201b5">id</a> [64]</td></tr>
-<tr class="separator:a08281c5b4f78ba0d025b37b18c3201b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aad1da907cd6f4a75f85c8321b1f6ce7a"><td class="memItemLeft" align="right" valign="top">char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__dm__component__info__struct.html#aad1da907cd6f4a75f85c8321b1f6ce7a">name</a> [128]</td></tr>
-<tr class="separator:aad1da907cd6f4a75f85c8321b1f6ce7a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a293333dd64e557ab4b3d80c44d6d2499"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__dm__component__info__struct.html#a293333dd64e557ab4b3d80c44d6d2499">active</a></td></tr>
-<tr class="separator:a293333dd64e557ab4b3d80c44d6d2499"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a0c64e56c05452d29efc60ac8b75f7163"><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__dm__component__info__struct.html#a0c64e56c05452d29efc60ac8b75f7163">state</a></td></tr>
-<tr class="separator:a0c64e56c05452d29efc60ac8b75f7163"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:abbbe72fb049ad5ebb5941421929ae51a"><td class="memItemLeft" align="right" valign="top">celix_array_list_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__dm__component__info__struct.html#abbbe72fb049ad5ebb5941421929ae51a">interfaces</a></td></tr>
-<tr class="separator:abbbe72fb049ad5ebb5941421929ae51a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:abb385ead04139565ed13ed34841d1bda"><td class="memItemLeft" align="right" valign="top">celix_array_list_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__dm__component__info__struct.html#abb385ead04139565ed13ed34841d1bda">dependency_list</a></td></tr>
-<tr class="separator:abb385ead04139565ed13ed34841d1bda"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-<h2 class="groupheader">Member Data Documentation</h2>
-<a id="a293333dd64e557ab4b3d80c44d6d2499"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a293333dd64e557ab4b3d80c44d6d2499">&#9670;&nbsp;</a></span>active</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">bool celix_dm_component_info_struct::active</td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-</div>
-</div>
-<a id="abb385ead04139565ed13ed34841d1bda"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#abb385ead04139565ed13ed34841d1bda">&#9670;&nbsp;</a></span>dependency_list</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">celix_array_list_t* celix_dm_component_info_struct::dependency_list</td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-</div>
-</div>
-<a id="a08281c5b4f78ba0d025b37b18c3201b5"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a08281c5b4f78ba0d025b37b18c3201b5">&#9670;&nbsp;</a></span>id</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">char celix_dm_component_info_struct::id[64]</td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-</div>
-</div>
-<a id="abbbe72fb049ad5ebb5941421929ae51a"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#abbbe72fb049ad5ebb5941421929ae51a">&#9670;&nbsp;</a></span>interfaces</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">celix_array_list_t* celix_dm_component_info_struct::interfaces</td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-</div>
-</div>
-<a id="aad1da907cd6f4a75f85c8321b1f6ce7a"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#aad1da907cd6f4a75f85c8321b1f6ce7a">&#9670;&nbsp;</a></span>name</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">char celix_dm_component_info_struct::name[128]</td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-</div>
-</div>
-<a id="a0c64e56c05452d29efc60ac8b75f7163"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a0c64e56c05452d29efc60ac8b75f7163">&#9670;&nbsp;</a></span>state</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">char* celix_dm_component_info_struct::state</td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-</div>
-</div>
-<hr/>The documentation for this struct was generated from the following file:<ul>
-<li>libs/framework/include/<a class="el" href="celix__dm__info_8h_source.html">celix_dm_info.h</a></li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.18
-</small></address>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/structcelix__dm__dependency__manager__info__struct-members.html b/static/docs/2.2.1/html/structcelix__dm__dependency__manager__info__struct-members.html
deleted file mode 100755
index 37ff452..0000000
--- a/static/docs/2.2.1/html/structcelix__dm__dependency__manager__info__struct-members.html
+++ /dev/null
@@ -1,83 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>Celix: Member List</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/searchdata.js"></script>
-<script type="text/javascript" src="search/search.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">Celix
-   &#160;<span id="projectnumber">2.2.1</span>
-   </div>
-   <div id="projectbrief">An implementation of the OSGi specification adapted to C and C++</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.18 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
-     onmouseover="return searchBox.OnSearchSelectShow()"
-     onmouseout="return searchBox.OnSearchSelectHide()"
-     onkeydown="return searchBox.OnSearchSelectKey(event)">
-</div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-</div><!-- top -->
-<div class="header">
-  <div class="headertitle">
-<div class="title">celix_dm_dependency_manager_info_struct Member List</div>  </div>
-</div><!--header-->
-<div class="contents">
-
-<p>This is the complete list of members for <a class="el" href="structcelix__dm__dependency__manager__info__struct.html">celix_dm_dependency_manager_info_struct</a>, including all inherited members.</p>
-<table class="directory">
-  <tr class="even"><td class="entry"><a class="el" href="structcelix__dm__dependency__manager__info__struct.html#ac51721859e70f844e4c23873aec85dfb">bndId</a></td><td class="entry"><a class="el" href="structcelix__dm__dependency__manager__info__struct.html">celix_dm_dependency_manager_info_struct</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="structcelix__dm__dependency__manager__info__struct.html#a3d4be4557e6b124bd6b2c586fddfb75b">components</a></td><td class="entry"><a class="el" href="structcelix__dm__dependency__manager__info__struct.html">celix_dm_dependency_manager_info_struct</a></td><td class="entry"></td></tr>
-</table></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.18
-</small></address>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/structcelix__dm__dependency__manager__info__struct.html b/static/docs/2.2.1/html/structcelix__dm__dependency__manager__info__struct.html
deleted file mode 100755
index b49be71..0000000
--- a/static/docs/2.2.1/html/structcelix__dm__dependency__manager__info__struct.html
+++ /dev/null
@@ -1,123 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>Celix: celix_dm_dependency_manager_info_struct Struct Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/searchdata.js"></script>
-<script type="text/javascript" src="search/search.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">Celix
-   &#160;<span id="projectnumber">2.2.1</span>
-   </div>
-   <div id="projectbrief">An implementation of the OSGi specification adapted to C and C++</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.18 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
-     onmouseover="return searchBox.OnSearchSelectShow()"
-     onmouseout="return searchBox.OnSearchSelectHide()"
-     onkeydown="return searchBox.OnSearchSelectKey(event)">
-</div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-</div><!-- top -->
-<div class="header">
-  <div class="summary">
-<a href="#pub-attribs">Public Attributes</a> &#124;
-<a href="structcelix__dm__dependency__manager__info__struct-members.html">List of all members</a>  </div>
-  <div class="headertitle">
-<div class="title">celix_dm_dependency_manager_info_struct Struct Reference</div>  </div>
-</div><!--header-->
-<div class="contents">
-
-<p><code>#include &lt;<a class="el" href="celix__dm__info_8h_source.html">celix_dm_info.h</a>&gt;</code></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
-Public Attributes</h2></td></tr>
-<tr class="memitem:ac51721859e70f844e4c23873aec85dfb"><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__dm__dependency__manager__info__struct.html#ac51721859e70f844e4c23873aec85dfb">bndId</a></td></tr>
-<tr class="separator:ac51721859e70f844e4c23873aec85dfb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a3d4be4557e6b124bd6b2c586fddfb75b"><td class="memItemLeft" align="right" valign="top">celix_array_list_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__dm__dependency__manager__info__struct.html#a3d4be4557e6b124bd6b2c586fddfb75b">components</a></td></tr>
-<tr class="separator:a3d4be4557e6b124bd6b2c586fddfb75b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-<h2 class="groupheader">Member Data Documentation</h2>
-<a id="ac51721859e70f844e4c23873aec85dfb"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ac51721859e70f844e4c23873aec85dfb">&#9670;&nbsp;</a></span>bndId</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">long celix_dm_dependency_manager_info_struct::bndId</td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-</div>
-</div>
-<a id="a3d4be4557e6b124bd6b2c586fddfb75b"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a3d4be4557e6b124bd6b2c586fddfb75b">&#9670;&nbsp;</a></span>components</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">celix_array_list_t* celix_dm_dependency_manager_info_struct::components</td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-</div>
-</div>
-<hr/>The documentation for this struct was generated from the following file:<ul>
-<li>libs/framework/include/<a class="el" href="celix__dm__info_8h_source.html">celix_dm_info.h</a></li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.18
-</small></address>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/structcelix__dm__interface__info__struct-members.html b/static/docs/2.2.1/html/structcelix__dm__interface__info__struct-members.html
deleted file mode 100755
index 53b6d61..0000000
--- a/static/docs/2.2.1/html/structcelix__dm__interface__info__struct-members.html
+++ /dev/null
@@ -1,83 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>Celix: Member List</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/searchdata.js"></script>
-<script type="text/javascript" src="search/search.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">Celix
-   &#160;<span id="projectnumber">2.2.1</span>
-   </div>
-   <div id="projectbrief">An implementation of the OSGi specification adapted to C and C++</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.18 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
-     onmouseover="return searchBox.OnSearchSelectShow()"
-     onmouseout="return searchBox.OnSearchSelectHide()"
-     onkeydown="return searchBox.OnSearchSelectKey(event)">
-</div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-</div><!-- top -->
-<div class="header">
-  <div class="headertitle">
-<div class="title">celix_dm_interface_info_struct Member List</div>  </div>
-</div><!--header-->
-<div class="contents">
-
-<p>This is the complete list of members for <a class="el" href="structcelix__dm__interface__info__struct.html">celix_dm_interface_info_struct</a>, including all inherited members.</p>
-<table class="directory">
-  <tr class="even"><td class="entry"><a class="el" href="structcelix__dm__interface__info__struct.html#ae2306753d7867ac9dc13d0d1b00f60be">name</a></td><td class="entry"><a class="el" href="structcelix__dm__interface__info__struct.html">celix_dm_interface_info_struct</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="structcelix__dm__interface__info__struct.html#a6fb90a86fdaa6aefde5e598f5ca85e2c">properties</a></td><td class="entry"><a class="el" href="structcelix__dm__interface__info__struct.html">celix_dm_interface_info_struct</a></td><td class="entry"></td></tr>
-</table></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.18
-</small></address>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/structcelix__dm__interface__info__struct.html b/static/docs/2.2.1/html/structcelix__dm__interface__info__struct.html
deleted file mode 100755
index ff2d87f..0000000
--- a/static/docs/2.2.1/html/structcelix__dm__interface__info__struct.html
+++ /dev/null
@@ -1,123 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>Celix: celix_dm_interface_info_struct Struct Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/searchdata.js"></script>
-<script type="text/javascript" src="search/search.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">Celix
-   &#160;<span id="projectnumber">2.2.1</span>
-   </div>
-   <div id="projectbrief">An implementation of the OSGi specification adapted to C and C++</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.18 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
-     onmouseover="return searchBox.OnSearchSelectShow()"
-     onmouseout="return searchBox.OnSearchSelectHide()"
-     onkeydown="return searchBox.OnSearchSelectKey(event)">
-</div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-</div><!-- top -->
-<div class="header">
-  <div class="summary">
-<a href="#pub-attribs">Public Attributes</a> &#124;
-<a href="structcelix__dm__interface__info__struct-members.html">List of all members</a>  </div>
-  <div class="headertitle">
-<div class="title">celix_dm_interface_info_struct Struct Reference</div>  </div>
-</div><!--header-->
-<div class="contents">
-
-<p><code>#include &lt;<a class="el" href="celix__dm__info_8h_source.html">celix_dm_info.h</a>&gt;</code></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
-Public Attributes</h2></td></tr>
-<tr class="memitem:ae2306753d7867ac9dc13d0d1b00f60be"><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__dm__interface__info__struct.html#ae2306753d7867ac9dc13d0d1b00f60be">name</a></td></tr>
-<tr class="separator:ae2306753d7867ac9dc13d0d1b00f60be"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a6fb90a86fdaa6aefde5e598f5ca85e2c"><td class="memItemLeft" align="right" valign="top">celix_properties_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__dm__interface__info__struct.html#a6fb90a86fdaa6aefde5e598f5ca85e2c">properties</a></td></tr>
-<tr class="separator:a6fb90a86fdaa6aefde5e598f5ca85e2c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-<h2 class="groupheader">Member Data Documentation</h2>
-<a id="ae2306753d7867ac9dc13d0d1b00f60be"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ae2306753d7867ac9dc13d0d1b00f60be">&#9670;&nbsp;</a></span>name</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">char* celix_dm_interface_info_struct::name</td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-</div>
-</div>
-<a id="a6fb90a86fdaa6aefde5e598f5ca85e2c"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a6fb90a86fdaa6aefde5e598f5ca85e2c">&#9670;&nbsp;</a></span>properties</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">celix_properties_t* celix_dm_interface_info_struct::properties</td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-</div>
-</div>
-<hr/>The documentation for this struct was generated from the following file:<ul>
-<li>libs/framework/include/<a class="el" href="celix__dm__info_8h_source.html">celix_dm_info.h</a></li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.18
-</small></address>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/structcelix__dm__service__dependency__callback__options-members.html b/static/docs/2.2.1/html/structcelix__dm__service__dependency__callback__options-members.html
deleted file mode 100755
index 18af876..0000000
--- a/static/docs/2.2.1/html/structcelix__dm__service__dependency__callback__options-members.html
+++ /dev/null
@@ -1,89 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>Celix: Member List</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/searchdata.js"></script>
-<script type="text/javascript" src="search/search.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">Celix
-   &#160;<span id="projectnumber">2.2.1</span>
-   </div>
-   <div id="projectbrief">An implementation of the OSGi specification adapted to C and C++</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.18 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
-     onmouseover="return searchBox.OnSearchSelectShow()"
-     onmouseout="return searchBox.OnSearchSelectHide()"
-     onkeydown="return searchBox.OnSearchSelectKey(event)">
-</div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-</div><!-- top -->
-<div class="header">
-  <div class="headertitle">
-<div class="title">celix_dm_service_dependency_callback_options Member List</div>  </div>
-</div><!--header-->
-<div class="contents">
-
-<p>This is the complete list of members for <a class="el" href="structcelix__dm__service__dependency__callback__options.html">celix_dm_service_dependency_callback_options</a>, including all inherited members.</p>
-<table class="directory">
-  <tr class="even"><td class="entry"><a class="el" href="structcelix__dm__service__dependency__callback__options.html#a9663db4ef079c6300f95dadfe2c03813">add</a></td><td class="entry"><a class="el" href="structcelix__dm__service__dependency__callback__options.html">celix_dm_service_dependency_callback_options</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="structcelix__dm__service__dependency__callback__options.html#a5cf7a8e9026d08803798c70cb6a30330">addWithProps</a></td><td class="entry"><a class="el" href="structcelix__dm__service__dependency__callback__options.html">celix_dm_service_dependency_callback_options</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="structcelix__dm__service__dependency__callback__options.html#a10fe45460fc65e1590a58477f515424b">remove</a></td><td class="entry"><a class="el" href="structcelix__dm__service__dependency__callback__options.html">celix_dm_service_dependency_callback_options</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="structcelix__dm__service__dependency__callback__options.html#a54ee61c8ab040dc87de22588013316fd">removeWithProps</a></td><td class="entry"><a class="el" href="structcelix__dm__service__dependency__callback__options.html">celix_dm_service_dependency_callback_options</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="structcelix__dm__service__dependency__callback__options.html#a84e8cecdb9dd19f072d1b9c28fa95c8b">set</a></td><td class="entry"><a class="el" href="structcelix__dm__service__dependency__callback__options.html">celix_dm_service_dependency_callback_options</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="structcelix__dm__service__dependency__callback__options.html#a286bb094f7e4b4a9066e9b235aa8ade9">setWithProps</a></td><td class="entry"><a class="el" href="structcelix__dm__service__dependency__callback__options.html">celix_dm_service_dependency_callback_options</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="structcelix__dm__service__dependency__callback__options.html#a35b874e6fa5a6c3af03f09e6492e8b48">swap</a></td><td class="entry"><a class="el" href="structcelix__dm__service__dependency__callback__options.html">celix_dm_service_dependency_callback_options</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="structcelix__dm__service__dependency__callback__options.html#a1e0bfcf2034cd6d69d954256d101598d">swapWithProps</a></td><td class="entry"><a class="el" href="structcelix__dm__service__dependency__callback__options.html">celix_dm_service_dependency_callback_options</a></td><td class="entry"></td></tr>
-</table></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.18
-</small></address>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/structcelix__dm__service__dependency__callback__options.html b/static/docs/2.2.1/html/structcelix__dm__service__dependency__callback__options.html
deleted file mode 100755
index 67d7d68..0000000
--- a/static/docs/2.2.1/html/structcelix__dm__service__dependency__callback__options.html
+++ /dev/null
@@ -1,219 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>Celix: celix_dm_service_dependency_callback_options Struct Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/searchdata.js"></script>
-<script type="text/javascript" src="search/search.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">Celix
-   &#160;<span id="projectnumber">2.2.1</span>
-   </div>
-   <div id="projectbrief">An implementation of the OSGi specification adapted to C and C++</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.18 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
-     onmouseover="return searchBox.OnSearchSelectShow()"
-     onmouseout="return searchBox.OnSearchSelectHide()"
-     onkeydown="return searchBox.OnSearchSelectKey(event)">
-</div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-</div><!-- top -->
-<div class="header">
-  <div class="summary">
-<a href="#pub-attribs">Public Attributes</a> &#124;
-<a href="structcelix__dm__service__dependency__callback__options-members.html">List of all members</a>  </div>
-  <div class="headertitle">
-<div class="title">celix_dm_service_dependency_callback_options Struct Reference</div>  </div>
-</div><!--header-->
-<div class="contents">
-
-<p><code>#include &lt;<a class="el" href="celix__dm__service__dependency_8h_source.html">celix_dm_service_dependency.h</a>&gt;</code></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
-Public Attributes</h2></td></tr>
-<tr class="memitem:a84e8cecdb9dd19f072d1b9c28fa95c8b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="celix__dm__service__dependency_8h.html#a3aab7f5d65c74eb819047e5ec1f4c05f">celix_dm_service_update_fp</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__dm__service__dependency__callback__options.html#a84e8cecdb9dd19f072d1b9c28fa95c8b">set</a></td></tr>
-<tr class="separator:a84e8cecdb9dd19f072d1b9c28fa95c8b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a9663db4ef079c6300f95dadfe2c03813"><td class="memItemLeft" align="right" valign="top"><a class="el" href="celix__dm__service__dependency_8h.html#a3aab7f5d65c74eb819047e5ec1f4c05f">celix_dm_service_update_fp</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__dm__service__dependency__callback__options.html#a9663db4ef079c6300f95dadfe2c03813">add</a></td></tr>
-<tr class="separator:a9663db4ef079c6300f95dadfe2c03813"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a10fe45460fc65e1590a58477f515424b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="celix__dm__service__dependency_8h.html#a3aab7f5d65c74eb819047e5ec1f4c05f">celix_dm_service_update_fp</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__dm__service__dependency__callback__options.html#a10fe45460fc65e1590a58477f515424b">remove</a></td></tr>
-<tr class="separator:a10fe45460fc65e1590a58477f515424b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a35b874e6fa5a6c3af03f09e6492e8b48"><td class="memItemLeft" align="right" valign="top"><a class="el" href="celix__dm__service__dependency_8h.html#a8a77266cc94a0f019b29d75a8e54995d">celix_dm_service_swap_fp</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__dm__service__dependency__callback__options.html#a35b874e6fa5a6c3af03f09e6492e8b48">swap</a></td></tr>
-<tr class="separator:a35b874e6fa5a6c3af03f09e6492e8b48"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a286bb094f7e4b4a9066e9b235aa8ade9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="celix__dm__service__dependency_8h.html#afb8ee50fcfc77f274578d85a70bb2b94">celix_dm_service_update_with_props_fp</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__dm__service__dependency__callback__options.html#a286bb094f7e4b4a9066e9b235aa8ade9">setWithProps</a></td></tr>
-<tr class="separator:a286bb094f7e4b4a9066e9b235aa8ade9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a5cf7a8e9026d08803798c70cb6a30330"><td class="memItemLeft" align="right" valign="top"><a class="el" href="celix__dm__service__dependency_8h.html#afb8ee50fcfc77f274578d85a70bb2b94">celix_dm_service_update_with_props_fp</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__dm__service__dependency__callback__options.html#a5cf7a8e9026d08803798c70cb6a30330">addWithProps</a></td></tr>
-<tr class="separator:a5cf7a8e9026d08803798c70cb6a30330"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a54ee61c8ab040dc87de22588013316fd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="celix__dm__service__dependency_8h.html#afb8ee50fcfc77f274578d85a70bb2b94">celix_dm_service_update_with_props_fp</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__dm__service__dependency__callback__options.html#a54ee61c8ab040dc87de22588013316fd">removeWithProps</a></td></tr>
-<tr class="separator:a54ee61c8ab040dc87de22588013316fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a1e0bfcf2034cd6d69d954256d101598d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="celix__dm__service__dependency_8h.html#a6b4b49e1cbd6865c5dc14e94086f629f">celix_dm_service_swap_with_props_fp</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__dm__service__dependency__callback__options.html#a1e0bfcf2034cd6d69d954256d101598d">swapWithProps</a></td></tr>
-<tr class="separator:a1e0bfcf2034cd6d69d954256d101598d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-<h2 class="groupheader">Member Data Documentation</h2>
-<a id="a9663db4ef079c6300f95dadfe2c03813"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a9663db4ef079c6300f95dadfe2c03813">&#9670;&nbsp;</a></span>add</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname"><a class="el" href="celix__dm__service__dependency_8h.html#a3aab7f5d65c74eb819047e5ec1f4c05f">celix_dm_service_update_fp</a> celix_dm_service_dependency_callback_options::add</td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-</div>
-</div>
-<a id="a5cf7a8e9026d08803798c70cb6a30330"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a5cf7a8e9026d08803798c70cb6a30330">&#9670;&nbsp;</a></span>addWithProps</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname"><a class="el" href="celix__dm__service__dependency_8h.html#afb8ee50fcfc77f274578d85a70bb2b94">celix_dm_service_update_with_props_fp</a> celix_dm_service_dependency_callback_options::addWithProps</td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-</div>
-</div>
-<a id="a10fe45460fc65e1590a58477f515424b"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a10fe45460fc65e1590a58477f515424b">&#9670;&nbsp;</a></span>remove</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname"><a class="el" href="celix__dm__service__dependency_8h.html#a3aab7f5d65c74eb819047e5ec1f4c05f">celix_dm_service_update_fp</a> celix_dm_service_dependency_callback_options::remove</td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-</div>
-</div>
-<a id="a54ee61c8ab040dc87de22588013316fd"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a54ee61c8ab040dc87de22588013316fd">&#9670;&nbsp;</a></span>removeWithProps</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname"><a class="el" href="celix__dm__service__dependency_8h.html#afb8ee50fcfc77f274578d85a70bb2b94">celix_dm_service_update_with_props_fp</a> celix_dm_service_dependency_callback_options::removeWithProps</td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-</div>
-</div>
-<a id="a84e8cecdb9dd19f072d1b9c28fa95c8b"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a84e8cecdb9dd19f072d1b9c28fa95c8b">&#9670;&nbsp;</a></span>set</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname"><a class="el" href="celix__dm__service__dependency_8h.html#a3aab7f5d65c74eb819047e5ec1f4c05f">celix_dm_service_update_fp</a> celix_dm_service_dependency_callback_options::set</td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-</div>
-</div>
-<a id="a286bb094f7e4b4a9066e9b235aa8ade9"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a286bb094f7e4b4a9066e9b235aa8ade9">&#9670;&nbsp;</a></span>setWithProps</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname"><a class="el" href="celix__dm__service__dependency_8h.html#afb8ee50fcfc77f274578d85a70bb2b94">celix_dm_service_update_with_props_fp</a> celix_dm_service_dependency_callback_options::setWithProps</td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-</div>
-</div>
-<a id="a35b874e6fa5a6c3af03f09e6492e8b48"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a35b874e6fa5a6c3af03f09e6492e8b48">&#9670;&nbsp;</a></span>swap</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname"><a class="el" href="celix__dm__service__dependency_8h.html#a8a77266cc94a0f019b29d75a8e54995d">celix_dm_service_swap_fp</a> celix_dm_service_dependency_callback_options::swap</td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-</div>
-</div>
-<a id="a1e0bfcf2034cd6d69d954256d101598d"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a1e0bfcf2034cd6d69d954256d101598d">&#9670;&nbsp;</a></span>swapWithProps</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname"><a class="el" href="celix__dm__service__dependency_8h.html#a6b4b49e1cbd6865c5dc14e94086f629f">celix_dm_service_swap_with_props_fp</a> celix_dm_service_dependency_callback_options::swapWithProps</td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-</div>
-</div>
-<hr/>The documentation for this struct was generated from the following file:<ul>
-<li>libs/framework/include/<a class="el" href="celix__dm__service__dependency_8h_source.html">celix_dm_service_dependency.h</a></li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.18
-</small></address>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/structcelix__dm__service__dependency__info__struct-members.html b/static/docs/2.2.1/html/structcelix__dm__service__dependency__info__struct-members.html
deleted file mode 100755
index f2da99a..0000000
--- a/static/docs/2.2.1/html/structcelix__dm__service__dependency__info__struct-members.html
+++ /dev/null
@@ -1,85 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>Celix: Member List</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/searchdata.js"></script>
-<script type="text/javascript" src="search/search.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">Celix
-   &#160;<span id="projectnumber">2.2.1</span>
-   </div>
-   <div id="projectbrief">An implementation of the OSGi specification adapted to C and C++</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.18 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
-     onmouseover="return searchBox.OnSearchSelectShow()"
-     onmouseout="return searchBox.OnSearchSelectHide()"
-     onkeydown="return searchBox.OnSearchSelectKey(event)">
-</div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-</div><!-- top -->
-<div class="header">
-  <div class="headertitle">
-<div class="title">celix_dm_service_dependency_info_struct Member List</div>  </div>
-</div><!--header-->
-<div class="contents">
-
-<p>This is the complete list of members for <a class="el" href="structcelix__dm__service__dependency__info__struct.html">celix_dm_service_dependency_info_struct</a>, including all inherited members.</p>
-<table class="directory">
-  <tr class="even"><td class="entry"><a class="el" href="structcelix__dm__service__dependency__info__struct.html#a77659b20ca3bcc2b9282f4644bdcbe66">available</a></td><td class="entry"><a class="el" href="structcelix__dm__service__dependency__info__struct.html">celix_dm_service_dependency_info_struct</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="structcelix__dm__service__dependency__info__struct.html#ad9284f87c8033a14e5ba5de8118b7f09">count</a></td><td class="entry"><a class="el" href="structcelix__dm__service__dependency__info__struct.html">celix_dm_service_dependency_info_struct</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="structcelix__dm__service__dependency__info__struct.html#ac06a272ddf7c02e335be784082ba5e9f">filter</a></td><td class="entry"><a class="el" href="structcelix__dm__service__dependency__info__struct.html">celix_dm_service_dependency_info_struct</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="structcelix__dm__service__dependency__info__struct.html#a8ad066c5fa5d75e9fb82add72cbfc705">required</a></td><td class="entry"><a class="el" href="structcelix__dm__service__dependency__info__struct.html">celix_dm_service_dependency_info_struct</a></td><td class="entry"></td></tr>
-</table></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.18
-</small></address>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/structcelix__dm__service__dependency__info__struct.html b/static/docs/2.2.1/html/structcelix__dm__service__dependency__info__struct.html
deleted file mode 100755
index acb098b..0000000
--- a/static/docs/2.2.1/html/structcelix__dm__service__dependency__info__struct.html
+++ /dev/null
@@ -1,155 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>Celix: celix_dm_service_dependency_info_struct Struct Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/searchdata.js"></script>
-<script type="text/javascript" src="search/search.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">Celix
-   &#160;<span id="projectnumber">2.2.1</span>
-   </div>
-   <div id="projectbrief">An implementation of the OSGi specification adapted to C and C++</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.18 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
-     onmouseover="return searchBox.OnSearchSelectShow()"
-     onmouseout="return searchBox.OnSearchSelectHide()"
-     onkeydown="return searchBox.OnSearchSelectKey(event)">
-</div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-</div><!-- top -->
-<div class="header">
-  <div class="summary">
-<a href="#pub-attribs">Public Attributes</a> &#124;
-<a href="structcelix__dm__service__dependency__info__struct-members.html">List of all members</a>  </div>
-  <div class="headertitle">
-<div class="title">celix_dm_service_dependency_info_struct Struct Reference</div>  </div>
-</div><!--header-->
-<div class="contents">
-
-<p><code>#include &lt;<a class="el" href="celix__dm__info_8h_source.html">celix_dm_info.h</a>&gt;</code></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
-Public Attributes</h2></td></tr>
-<tr class="memitem:ac06a272ddf7c02e335be784082ba5e9f"><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__dm__service__dependency__info__struct.html#ac06a272ddf7c02e335be784082ba5e9f">filter</a></td></tr>
-<tr class="separator:ac06a272ddf7c02e335be784082ba5e9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a77659b20ca3bcc2b9282f4644bdcbe66"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__dm__service__dependency__info__struct.html#a77659b20ca3bcc2b9282f4644bdcbe66">available</a></td></tr>
-<tr class="separator:a77659b20ca3bcc2b9282f4644bdcbe66"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a8ad066c5fa5d75e9fb82add72cbfc705"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__dm__service__dependency__info__struct.html#a8ad066c5fa5d75e9fb82add72cbfc705">required</a></td></tr>
-<tr class="separator:a8ad066c5fa5d75e9fb82add72cbfc705"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ad9284f87c8033a14e5ba5de8118b7f09"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__dm__service__dependency__info__struct.html#ad9284f87c8033a14e5ba5de8118b7f09">count</a></td></tr>
-<tr class="separator:ad9284f87c8033a14e5ba5de8118b7f09"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-<h2 class="groupheader">Member Data Documentation</h2>
-<a id="a77659b20ca3bcc2b9282f4644bdcbe66"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a77659b20ca3bcc2b9282f4644bdcbe66">&#9670;&nbsp;</a></span>available</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">bool celix_dm_service_dependency_info_struct::available</td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-</div>
-</div>
-<a id="ad9284f87c8033a14e5ba5de8118b7f09"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ad9284f87c8033a14e5ba5de8118b7f09">&#9670;&nbsp;</a></span>count</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">size_t celix_dm_service_dependency_info_struct::count</td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-</div>
-</div>
-<a id="ac06a272ddf7c02e335be784082ba5e9f"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ac06a272ddf7c02e335be784082ba5e9f">&#9670;&nbsp;</a></span>filter</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">char* celix_dm_service_dependency_info_struct::filter</td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-</div>
-</div>
-<a id="a8ad066c5fa5d75e9fb82add72cbfc705"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a8ad066c5fa5d75e9fb82add72cbfc705">&#9670;&nbsp;</a></span>required</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">bool celix_dm_service_dependency_info_struct::required</td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-</div>
-</div>
-<hr/>The documentation for this struct was generated from the following file:<ul>
-<li>libs/framework/include/<a class="el" href="celix__dm__info_8h_source.html">celix_dm_info.h</a></li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.18
-</small></address>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/structcelix__service__filter__options-members.html b/static/docs/2.2.1/html/structcelix__service__filter__options-members.html
deleted file mode 100755
index bbf4837..0000000
--- a/static/docs/2.2.1/html/structcelix__service__filter__options-members.html
+++ /dev/null
@@ -1,86 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>Celix: Member List</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/searchdata.js"></script>
-<script type="text/javascript" src="search/search.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">Celix
-   &#160;<span id="projectnumber">2.2.1</span>
-   </div>
-   <div id="projectbrief">An implementation of the OSGi specification adapted to C and C++</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.18 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
-     onmouseover="return searchBox.OnSearchSelectShow()"
-     onmouseout="return searchBox.OnSearchSelectHide()"
-     onkeydown="return searchBox.OnSearchSelectKey(event)">
-</div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-</div><!-- top -->
-<div class="header">
-  <div class="headertitle">
-<div class="title">celix_service_filter_options Member List</div>  </div>
-</div><!--header-->
-<div class="contents">
-
-<p>This is the complete list of members for <a class="el" href="structcelix__service__filter__options.html">celix_service_filter_options</a>, including all inherited members.</p>
-<table class="directory">
-  <tr class="even"><td class="entry"><a class="el" href="structcelix__service__filter__options.html#addb2e1e8fcce127512d272383e78cbd1">OPTS_INIT</a></td><td class="entry"><a class="el" href="structcelix__service__filter__options.html">celix_service_filter_options</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="structcelix__service__filter__options.html#a65bea04c378ef46d841046ffbb2f805c">OPTS_INIT</a></td><td class="entry"><a class="el" href="structcelix__service__filter__options.html">celix_service_filter_options</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="structcelix__service__filter__options.html#ac15f30b81e60826290a29fb12da6684a">OPTS_INIT</a></td><td class="entry"><a class="el" href="structcelix__service__filter__options.html">celix_service_filter_options</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="structcelix__service__filter__options.html#a9286701a4c946d1ed28afde05cd34d51">OPTS_INIT</a></td><td class="entry"><a class="el" href="structcelix__service__filter__options.html">celix_service_filter_options</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="structcelix__service__filter__options.html#a70cc8aee445c1a24782454393f12ff98">OPTS_INIT</a></td><td class="entry"><a class="el" href="structcelix__service__filter__options.html">celix_service_filter_options</a></td><td class="entry"></td></tr>
-</table></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.18
-</small></address>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/structcelix__service__filter__options.html b/static/docs/2.2.1/html/structcelix__service__filter__options.html
deleted file mode 100755
index c30e19a..0000000
--- a/static/docs/2.2.1/html/structcelix__service__filter__options.html
+++ /dev/null
@@ -1,178 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>Celix: celix_service_filter_options Struct Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/searchdata.js"></script>
-<script type="text/javascript" src="search/search.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">Celix
-   &#160;<span id="projectnumber">2.2.1</span>
-   </div>
-   <div id="projectbrief">An implementation of the OSGi specification adapted to C and C++</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.18 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
-     onmouseover="return searchBox.OnSearchSelectShow()"
-     onmouseout="return searchBox.OnSearchSelectHide()"
-     onkeydown="return searchBox.OnSearchSelectKey(event)">
-</div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-</div><!-- top -->
-<div class="header">
-  <div class="summary">
-<a href="#pub-attribs">Public Attributes</a> &#124;
-<a href="structcelix__service__filter__options-members.html">List of all members</a>  </div>
-  <div class="headertitle">
-<div class="title">celix_service_filter_options Struct Reference</div>  </div>
-</div><!--header-->
-<div class="contents">
-
-<p><code>#include &lt;<a class="el" href="celix__bundle__context_8h_source.html">celix_bundle_context.h</a>&gt;</code></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
-Public Attributes</h2></td></tr>
-<tr class="memitem:addb2e1e8fcce127512d272383e78cbd1"><td class="memItemLeft" align="right" valign="top">const char *serviceName&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__service__filter__options.html#addb2e1e8fcce127512d272383e78cbd1">OPTS_INIT</a></td></tr>
-<tr class="separator:addb2e1e8fcce127512d272383e78cbd1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a65bea04c378ef46d841046ffbb2f805c"><td class="memItemLeft" align="right" valign="top">const char *versionRange&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__service__filter__options.html#a65bea04c378ef46d841046ffbb2f805c">OPTS_INIT</a></td></tr>
-<tr class="separator:a65bea04c378ef46d841046ffbb2f805c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ac15f30b81e60826290a29fb12da6684a"><td class="memItemLeft" align="right" valign="top">const char *filter&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__service__filter__options.html#ac15f30b81e60826290a29fb12da6684a">OPTS_INIT</a></td></tr>
-<tr class="separator:ac15f30b81e60826290a29fb12da6684a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a9286701a4c946d1ed28afde05cd34d51"><td class="memItemLeft" align="right" valign="top">const char *serviceLanguage&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__service__filter__options.html#a9286701a4c946d1ed28afde05cd34d51">OPTS_INIT</a></td></tr>
-<tr class="separator:a9286701a4c946d1ed28afde05cd34d51"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a70cc8aee445c1a24782454393f12ff98"><td class="memItemLeft" align="right" valign="top">bool ignoreServiceLanguage&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__service__filter__options.html#a70cc8aee445c1a24782454393f12ff98">OPTS_INIT</a></td></tr>
-<tr class="separator:a70cc8aee445c1a24782454393f12ff98"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>Service filter options which can be used to query for certain services. </p>
-</div><h2 class="groupheader">Member Data Documentation</h2>
-<a id="addb2e1e8fcce127512d272383e78cbd1"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#addb2e1e8fcce127512d272383e78cbd1">&#9670;&nbsp;</a></span>OPTS_INIT <span class="overload">[1/5]</span></h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">const char* serviceName celix_service_filter_options::OPTS_INIT</td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>The required service name. </p>
-
-</div>
-</div>
-<a id="a65bea04c378ef46d841046ffbb2f805c"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a65bea04c378ef46d841046ffbb2f805c">&#9670;&nbsp;</a></span>OPTS_INIT <span class="overload">[2/5]</span></h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">const char* versionRange celix_service_filter_options::OPTS_INIT</td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>The optional version range. If service are registered with a service version this attribute can be used to only select service with a version in the version range. It uses the maven version range format, e.g. [1.0.0,2.0.0) or [1.1.1], etc. </p>
-
-</div>
-</div>
-<a id="ac15f30b81e60826290a29fb12da6684a"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ac15f30b81e60826290a29fb12da6684a">&#9670;&nbsp;</a></span>OPTS_INIT <span class="overload">[3/5]</span></h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">const char* filter celix_service_filter_options::OPTS_INIT</td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>LDAP filter to use for fine tuning the filtering, e.g. (|(location=middle)(location=front)) The filter will be applied to all the user provided and framework provided service properties. </p>
-
-</div>
-</div>
-<a id="a9286701a4c946d1ed28afde05cd34d51"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a9286701a4c946d1ed28afde05cd34d51">&#9670;&nbsp;</a></span>OPTS_INIT <span class="overload">[4/5]</span></h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">const char* serviceLanguage celix_service_filter_options::OPTS_INIT</td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>The optional service language to filter for. If this is NULL or "" the C language will be used. </p>
-
-</div>
-</div>
-<a id="a70cc8aee445c1a24782454393f12ff98"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a70cc8aee445c1a24782454393f12ff98">&#9670;&nbsp;</a></span>OPTS_INIT <span class="overload">[5/5]</span></h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">bool ignoreServiceLanguage celix_service_filter_options::OPTS_INIT</td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Whether to ignore (not filter for) the service.lang property. If this is set the serviceLanguage field is ignored and the (service.lang=&lt;&gt;) part is not added tot he filter </p>
-
-</div>
-</div>
-<hr/>The documentation for this struct was generated from the following file:<ul>
-<li>libs/framework/include/<a class="el" href="celix__bundle__context_8h_source.html">celix_bundle_context.h</a></li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.18
-</small></address>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/structcelix__service__registration__options-members.html b/static/docs/2.2.1/html/structcelix__service__registration__options-members.html
deleted file mode 100755
index 215e514..0000000
--- a/static/docs/2.2.1/html/structcelix__service__registration__options-members.html
+++ /dev/null
@@ -1,87 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>Celix: Member List</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/searchdata.js"></script>
-<script type="text/javascript" src="search/search.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">Celix
-   &#160;<span id="projectnumber">2.2.1</span>
-   </div>
-   <div id="projectbrief">An implementation of the OSGi specification adapted to C and C++</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.18 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
-     onmouseover="return searchBox.OnSearchSelectShow()"
-     onmouseout="return searchBox.OnSearchSelectHide()"
-     onkeydown="return searchBox.OnSearchSelectKey(event)">
-</div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-</div><!-- top -->
-<div class="header">
-  <div class="headertitle">
-<div class="title">celix_service_registration_options Member List</div>  </div>
-</div><!--header-->
-<div class="contents">
-
-<p>This is the complete list of members for <a class="el" href="structcelix__service__registration__options.html">celix_service_registration_options</a>, including all inherited members.</p>
-<table class="directory">
-  <tr class="even"><td class="entry"><a class="el" href="structcelix__service__registration__options.html#a9c24c1179305b68840149449b1fa6d87">OPTS_INIT</a></td><td class="entry"><a class="el" href="structcelix__service__registration__options.html">celix_service_registration_options</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="structcelix__service__registration__options.html#a94eb8e6e1af0cca435d99aa5d2457fca">OPTS_INIT</a></td><td class="entry"><a class="el" href="structcelix__service__registration__options.html">celix_service_registration_options</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="structcelix__service__registration__options.html#a86179f0c7a032f3309440a2cd8d91a61">OPTS_INIT</a></td><td class="entry"><a class="el" href="structcelix__service__registration__options.html">celix_service_registration_options</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="structcelix__service__registration__options.html#a6e1274cc3b190b3dc05c7c145f57d407">OPTS_INIT</a></td><td class="entry"><a class="el" href="structcelix__service__registration__options.html">celix_service_registration_options</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="structcelix__service__registration__options.html#ae44ee7cc15427e406a67b0396201700c">OPTS_INIT</a></td><td class="entry"><a class="el" href="structcelix__service__registration__options.html">celix_service_registration_options</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="structcelix__service__registration__options.html#af9b1a622c06a3053ed3917649241fc23">OPTS_INIT</a></td><td class="entry"><a class="el" href="structcelix__service__registration__options.html">celix_service_registration_options</a></td><td class="entry"></td></tr>
-</table></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.18
-</small></address>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/structcelix__service__registration__options.html b/static/docs/2.2.1/html/structcelix__service__registration__options.html
deleted file mode 100755
index 689f92d..0000000
--- a/static/docs/2.2.1/html/structcelix__service__registration__options.html
+++ /dev/null
@@ -1,200 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>Celix: celix_service_registration_options Struct Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/searchdata.js"></script>
-<script type="text/javascript" src="search/search.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">Celix
-   &#160;<span id="projectnumber">2.2.1</span>
-   </div>
-   <div id="projectbrief">An implementation of the OSGi specification adapted to C and C++</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.18 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
-     onmouseover="return searchBox.OnSearchSelectShow()"
-     onmouseout="return searchBox.OnSearchSelectHide()"
-     onkeydown="return searchBox.OnSearchSelectKey(event)">
-</div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-</div><!-- top -->
-<div class="header">
-  <div class="summary">
-<a href="#pub-attribs">Public Attributes</a> &#124;
-<a href="structcelix__service__registration__options-members.html">List of all members</a>  </div>
-  <div class="headertitle">
-<div class="title">celix_service_registration_options Struct Reference</div>  </div>
-</div><!--header-->
-<div class="contents">
-
-<p><code>#include &lt;<a class="el" href="celix__bundle__context_8h_source.html">celix_bundle_context.h</a>&gt;</code></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
-Public Attributes</h2></td></tr>
-<tr class="memitem:a9c24c1179305b68840149449b1fa6d87"><td class="memItemLeft" align="right" valign="top">void *svc&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__service__registration__options.html#a9c24c1179305b68840149449b1fa6d87">OPTS_INIT</a></td></tr>
-<tr class="separator:a9c24c1179305b68840149449b1fa6d87"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a94eb8e6e1af0cca435d99aa5d2457fca"><td class="memItemLeft" align="right" valign="top">celix_service_factory_t *factory&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__service__registration__options.html#a94eb8e6e1af0cca435d99aa5d2457fca">OPTS_INIT</a></td></tr>
-<tr class="separator:a94eb8e6e1af0cca435d99aa5d2457fca"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a86179f0c7a032f3309440a2cd8d91a61"><td class="memItemLeft" align="right" valign="top">const char *serviceName&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__service__registration__options.html#a86179f0c7a032f3309440a2cd8d91a61">OPTS_INIT</a></td></tr>
-<tr class="separator:a86179f0c7a032f3309440a2cd8d91a61"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a6e1274cc3b190b3dc05c7c145f57d407"><td class="memItemLeft" align="right" valign="top">celix_properties_t *properties&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__service__registration__options.html#a6e1274cc3b190b3dc05c7c145f57d407">OPTS_INIT</a></td></tr>
-<tr class="separator:a6e1274cc3b190b3dc05c7c145f57d407"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ae44ee7cc15427e406a67b0396201700c"><td class="memItemLeft" align="right" valign="top">const char *serviceLanguage&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__service__registration__options.html#ae44ee7cc15427e406a67b0396201700c">OPTS_INIT</a></td></tr>
-<tr class="separator:ae44ee7cc15427e406a67b0396201700c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:af9b1a622c06a3053ed3917649241fc23"><td class="memItemLeft" align="right" valign="top">const char *serviceVersion&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__service__registration__options.html#af9b1a622c06a3053ed3917649241fc23">OPTS_INIT</a></td></tr>
-<tr class="separator:af9b1a622c06a3053ed3917649241fc23"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>Service Registration Options when registering services to the Celix framework. </p>
-</div><h2 class="groupheader">Member Data Documentation</h2>
-<a id="a9c24c1179305b68840149449b1fa6d87"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a9c24c1179305b68840149449b1fa6d87">&#9670;&nbsp;</a></span>OPTS_INIT <span class="overload">[1/6]</span></h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void* svc celix_service_registration_options::OPTS_INIT</td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>The service pointer. The actual pointer to the service. For C this is normally a pointer to a struct with function pointers, but theoretically this can be a pointer to anything (e.g. a pointer to a single function, or a pointer to a C++ interface implementation, or just a pointer to a data structure).</p>
-<p>The bundle is responsible to keep the service pointer valid as long as it is registered in the Celix framework. </p>
-
-</div>
-</div>
-<a id="a94eb8e6e1af0cca435d99aa5d2457fca"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a94eb8e6e1af0cca435d99aa5d2457fca">&#9670;&nbsp;</a></span>OPTS_INIT <span class="overload">[2/6]</span></h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">celix_service_factory_t* factory celix_service_registration_options::OPTS_INIT</td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>The service factory pointer. Note if the factory service is set, the svc field will not be used.</p>
-<p>The service factory will be called for every bundle requesting/de-requesting a service. This gives the provider the option to create bundle specific service instances.</p>
-<p>When a service is requested for a bundle the getService of the factory service will be called. This function must return a valid pointer to a service conform the registered service name or NULL. When a service in no longer needed for a bundle (e.g. ending the useService(s) calls when a service tacker is stopped) the ungetService function of the service factory will be called.</p>
-<p>The bundle is responsible to keep the service factory pointer valid as long as it is registered in the Celix framework. </p>
-
-</div>
-</div>
-<a id="a86179f0c7a032f3309440a2cd8d91a61"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a86179f0c7a032f3309440a2cd8d91a61">&#9670;&nbsp;</a></span>OPTS_INIT <span class="overload">[3/6]</span></h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">const char* serviceName celix_service_registration_options::OPTS_INIT</td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>The required service name. This is used to identify the service. A fully qualified name with a namespace is advisable to prevent name collision. (e.g. EXAMPLE_PRESSURE_SENSOR). </p>
-
-</div>
-</div>
-<a id="a6e1274cc3b190b3dc05c7c145f57d407"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a6e1274cc3b190b3dc05c7c145f57d407">&#9670;&nbsp;</a></span>OPTS_INIT <span class="overload">[4/6]</span></h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">celix_properties_t* properties celix_service_registration_options::OPTS_INIT</td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>The optional service properties. These contain meta information about the service in the form of string key/values. (e.g. the location of a pressure sensor: location=left-tire).</p>
-<p>When a service is registered the Celix framework will take ownership of the provided properties. If a registration fails, the properties will be destroyed (freed) by the Celix framework. </p>
-
-</div>
-</div>
-<a id="ae44ee7cc15427e406a67b0396201700c"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ae44ee7cc15427e406a67b0396201700c">&#9670;&nbsp;</a></span>OPTS_INIT <span class="overload">[5/6]</span></h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">const char* serviceLanguage celix_service_registration_options::OPTS_INIT</td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>The optional service language. If this is NULL, CELIX_FRAMEWORK_SERVICE_LANGUAGE_C is used. </p>
-
-</div>
-</div>
-<a id="af9b1a622c06a3053ed3917649241fc23"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#af9b1a622c06a3053ed3917649241fc23">&#9670;&nbsp;</a></span>OPTS_INIT <span class="overload">[6/6]</span></h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">const char* serviceVersion celix_service_registration_options::OPTS_INIT</td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>The optional service version (in the form of &lt;MAJOR&gt;.&lt;MINOR&gt;.&lt;MICRO&gt;.&lt;QUALIFIER&gt;). If present consumer of the service can specific which service version range of a specific service they are interested in. Note that it is the responsibility of the users to ensure that service in those version range are compatible (binary of source). It is advisable to use semantic versioning for this. </p>
-
-</div>
-</div>
-<hr/>The documentation for this struct was generated from the following file:<ul>
-<li>libs/framework/include/<a class="el" href="celix__bundle__context_8h_source.html">celix_bundle_context.h</a></li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.18
-</small></address>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/structcelix__service__tracker__info-members.html b/static/docs/2.2.1/html/structcelix__service__tracker__info-members.html
deleted file mode 100755
index 6371072..0000000
--- a/static/docs/2.2.1/html/structcelix__service__tracker__info-members.html
+++ /dev/null
@@ -1,85 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>Celix: Member List</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/searchdata.js"></script>
-<script type="text/javascript" src="search/search.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">Celix
-   &#160;<span id="projectnumber">2.2.1</span>
-   </div>
-   <div id="projectbrief">An implementation of the OSGi specification adapted to C and C++</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.18 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
-     onmouseover="return searchBox.OnSearchSelectShow()"
-     onmouseout="return searchBox.OnSearchSelectHide()"
-     onkeydown="return searchBox.OnSearchSelectKey(event)">
-</div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-</div><!-- top -->
-<div class="header">
-  <div class="headertitle">
-<div class="title">celix_service_tracker_info Member List</div>  </div>
-</div><!--header-->
-<div class="contents">
-
-<p>This is the complete list of members for <a class="el" href="structcelix__service__tracker__info.html">celix_service_tracker_info</a>, including all inherited members.</p>
-<table class="directory">
-  <tr class="even"><td class="entry"><a class="el" href="structcelix__service__tracker__info.html#a6978e4b5f2fcc2d42a42f0e7ed3bb7c8">bundleId</a></td><td class="entry"><a class="el" href="structcelix__service__tracker__info.html">celix_service_tracker_info</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="structcelix__service__tracker__info.html#a3cd52ce46875995a973fb6b65967d7e4">filter</a></td><td class="entry"><a class="el" href="structcelix__service__tracker__info.html">celix_service_tracker_info</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="structcelix__service__tracker__info.html#a5baca60295d208fe0581a564c3627f65">serviceLanguage</a></td><td class="entry"><a class="el" href="structcelix__service__tracker__info.html">celix_service_tracker_info</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="structcelix__service__tracker__info.html#a5f695cf6d8cd69e0c419298ded657546">serviceName</a></td><td class="entry"><a class="el" href="structcelix__service__tracker__info.html">celix_service_tracker_info</a></td><td class="entry"></td></tr>
-</table></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.18
-</small></address>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/structcelix__service__tracker__info.html b/static/docs/2.2.1/html/structcelix__service__tracker__info.html
deleted file mode 100755
index 39a5449..0000000
--- a/static/docs/2.2.1/html/structcelix__service__tracker__info.html
+++ /dev/null
@@ -1,161 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>Celix: celix_service_tracker_info Struct Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/searchdata.js"></script>
-<script type="text/javascript" src="search/search.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">Celix
-   &#160;<span id="projectnumber">2.2.1</span>
-   </div>
-   <div id="projectbrief">An implementation of the OSGi specification adapted to C and C++</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.18 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
-     onmouseover="return searchBox.OnSearchSelectShow()"
-     onmouseout="return searchBox.OnSearchSelectHide()"
-     onkeydown="return searchBox.OnSearchSelectKey(event)">
-</div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-</div><!-- top -->
-<div class="header">
-  <div class="summary">
-<a href="#pub-attribs">Public Attributes</a> &#124;
-<a href="structcelix__service__tracker__info-members.html">List of all members</a>  </div>
-  <div class="headertitle">
-<div class="title">celix_service_tracker_info Struct Reference</div>  </div>
-</div><!--header-->
-<div class="contents">
-
-<p><code>#include &lt;<a class="el" href="celix__bundle__context_8h_source.html">celix_bundle_context.h</a>&gt;</code></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
-Public Attributes</h2></td></tr>
-<tr class="memitem:a3cd52ce46875995a973fb6b65967d7e4"><td class="memItemLeft" align="right" valign="top">celix_filter_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__service__tracker__info.html#a3cd52ce46875995a973fb6b65967d7e4">filter</a></td></tr>
-<tr class="separator:a3cd52ce46875995a973fb6b65967d7e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a5f695cf6d8cd69e0c419298ded657546"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__service__tracker__info.html#a5f695cf6d8cd69e0c419298ded657546">serviceName</a></td></tr>
-<tr class="separator:a5f695cf6d8cd69e0c419298ded657546"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a5baca60295d208fe0581a564c3627f65"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__service__tracker__info.html#a5baca60295d208fe0581a564c3627f65">serviceLanguage</a></td></tr>
-<tr class="separator:a5baca60295d208fe0581a564c3627f65"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a6978e4b5f2fcc2d42a42f0e7ed3bb7c8"><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__service__tracker__info.html#a6978e4b5f2fcc2d42a42f0e7ed3bb7c8">bundleId</a></td></tr>
-<tr class="separator:a6978e4b5f2fcc2d42a42f0e7ed3bb7c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>Service Tracker Info provided to the service tracker tracker callbacks. </p>
-</div><h2 class="groupheader">Member Data Documentation</h2>
-<a id="a6978e4b5f2fcc2d42a42f0e7ed3bb7c8"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a6978e4b5f2fcc2d42a42f0e7ed3bb7c8">&#9670;&nbsp;</a></span>bundleId</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">long celix_service_tracker_info::bundleId</td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Bundle id of the owner of the service tracker. </p>
-
-</div>
-</div>
-<a id="a3cd52ce46875995a973fb6b65967d7e4"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a3cd52ce46875995a973fb6b65967d7e4">&#9670;&nbsp;</a></span>filter</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">celix_filter_t* celix_service_tracker_info::filter</td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>The parsed service filter, e.g. parsed "(&amp;(objectClass=example_calc)(service.language=C)(meta.info=foo))" </p>
-
-</div>
-</div>
-<a id="a5baca60295d208fe0581a564c3627f65"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a5baca60295d208fe0581a564c3627f65">&#9670;&nbsp;</a></span>serviceLanguage</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">const char* celix_service_tracker_info::serviceLanguage</td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>The service language filter attribute parsed from the service filter. Can be null </p>
-
-</div>
-</div>
-<a id="a5f695cf6d8cd69e0c419298ded657546"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a5f695cf6d8cd69e0c419298ded657546">&#9670;&nbsp;</a></span>serviceName</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">const char* celix_service_tracker_info::serviceName</td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>The service name filter attribute parsed from the service filter (i.e. the value of the objectClass attribute key) </p>
-
-</div>
-</div>
-<hr/>The documentation for this struct was generated from the following file:<ul>
-<li>libs/framework/include/<a class="el" href="celix__bundle__context_8h_source.html">celix_bundle_context.h</a></li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.18
-</small></address>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/structcelix__service__tracking__options-members.html b/static/docs/2.2.1/html/structcelix__service__tracking__options-members.html
deleted file mode 100755
index 3f3b94f..0000000
--- a/static/docs/2.2.1/html/structcelix__service__tracking__options-members.html
+++ /dev/null
@@ -1,92 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>Celix: Member List</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/searchdata.js"></script>
-<script type="text/javascript" src="search/search.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">Celix
-   &#160;<span id="projectnumber">2.2.1</span>
-   </div>
-   <div id="projectbrief">An implementation of the OSGi specification adapted to C and C++</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.18 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
-     onmouseover="return searchBox.OnSearchSelectShow()"
-     onmouseout="return searchBox.OnSearchSelectHide()"
-     onkeydown="return searchBox.OnSearchSelectKey(event)">
-</div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-</div><!-- top -->
-<div class="header">
-  <div class="headertitle">
-<div class="title">celix_service_tracking_options Member List</div>  </div>
-</div><!--header-->
-<div class="contents">
-
-<p>This is the complete list of members for <a class="el" href="structcelix__service__tracking__options.html">celix_service_tracking_options</a>, including all inherited members.</p>
-<table class="directory">
-  <tr class="even"><td class="entry"><a class="el" href="structcelix__service__tracking__options.html#afe7fa7d7fce1c581dff6e7986e958815">add</a></td><td class="entry"><a class="el" href="structcelix__service__tracking__options.html">celix_service_tracking_options</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="structcelix__service__tracking__options.html#a787fd0f4f6719fefea2ae70fe6a1a5e6">addWithOwner</a></td><td class="entry"><a class="el" href="structcelix__service__tracking__options.html">celix_service_tracking_options</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="structcelix__service__tracking__options.html#a4f80c99b050b1e49663cab329848364c">addWithProperties</a></td><td class="entry"><a class="el" href="structcelix__service__tracking__options.html">celix_service_tracking_options</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="structcelix__service__tracking__options.html#a9272f1870b544b28329545b84f3425c2">OPTS_INIT</a></td><td class="entry"><a class="el" href="structcelix__service__tracking__options.html">celix_service_tracking_options</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="structcelix__service__tracking__options.html#a2fcaf1b7274379695cc9a4bb1c719d86">OPTS_INIT</a></td><td class="entry"><a class="el" href="structcelix__service__tracking__options.html">celix_service_tracking_options</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="structcelix__service__tracking__options.html#a8445caaae53d71a47c0289d2e3e5f882">remove</a></td><td class="entry"><a class="el" href="structcelix__service__tracking__options.html">celix_service_tracking_options</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="structcelix__service__tracking__options.html#acf6dbcde52efbed145933e8a28f3f2e1">removeWithOwner</a></td><td class="entry"><a class="el" href="structcelix__service__tracking__options.html">celix_service_tracking_options</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="structcelix__service__tracking__options.html#af75c423757dcd16bf90d57a5726ac98a">removeWithProperties</a></td><td class="entry"><a class="el" href="structcelix__service__tracking__options.html">celix_service_tracking_options</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="structcelix__service__tracking__options.html#aa9e8b9cae7ea59ddb796a6bc904f57da">set</a></td><td class="entry"><a class="el" href="structcelix__service__tracking__options.html">celix_service_tracking_options</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="structcelix__service__tracking__options.html#a12a988b8f1f3bd3a2e61c65d82f14d59">setWithOwner</a></td><td class="entry"><a class="el" href="structcelix__service__tracking__options.html">celix_service_tracking_options</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="structcelix__service__tracking__options.html#a256f8db1eecb89a8b71e4ef03ab11172">setWithProperties</a></td><td class="entry"><a class="el" href="structcelix__service__tracking__options.html">celix_service_tracking_options</a></td><td class="entry"></td></tr>
-</table></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.18
-</small></address>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/structcelix__service__tracking__options.html b/static/docs/2.2.1/html/structcelix__service__tracking__options.html
deleted file mode 100755
index bcd17a2..0000000
--- a/static/docs/2.2.1/html/structcelix__service__tracking__options.html
+++ /dev/null
@@ -1,308 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>Celix: celix_service_tracking_options Struct Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/searchdata.js"></script>
-<script type="text/javascript" src="search/search.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">Celix
-   &#160;<span id="projectnumber">2.2.1</span>
-   </div>
-   <div id="projectbrief">An implementation of the OSGi specification adapted to C and C++</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.18 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
-     onmouseover="return searchBox.OnSearchSelectShow()"
-     onmouseout="return searchBox.OnSearchSelectHide()"
-     onkeydown="return searchBox.OnSearchSelectKey(event)">
-</div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-</div><!-- top -->
-<div class="header">
-  <div class="summary">
-<a href="#pub-attribs">Public Attributes</a> &#124;
-<a href="structcelix__service__tracking__options-members.html">List of all members</a>  </div>
-  <div class="headertitle">
-<div class="title">celix_service_tracking_options Struct Reference</div>  </div>
-</div><!--header-->
-<div class="contents">
-
-<p><code>#include &lt;<a class="el" href="celix__bundle__context_8h_source.html">celix_bundle_context.h</a>&gt;</code></p>
-<div class="dynheader">
-Collaboration diagram for celix_service_tracking_options:</div>
-<div class="dyncontent">
-<div class="center"><img src="structcelix__service__tracking__options__coll__graph.png" border="0" usemap="#celix__service__tracking__options_coll__map" alt="Collaboration graph"/></div>
-<map name="celix__service__tracking__options_coll__map" id="celix__service__tracking__options_coll__map">
-<area shape="rect" title=" " alt="" coords="5,109,156,151"/>
-<area shape="rect" href="structcelix__service__filter__options.html" title=" " alt="" coords="15,5,146,47"/>
-</map>
-<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
-Public Attributes</h2></td></tr>
-<tr class="memitem:a9272f1870b544b28329545b84f3425c2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="celix__bundle__context_8h.html#a7eab80d54386fb32b91dd414846c2d45">celix_service_filter_options_t</a> filter&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__service__tracking__options.html#a9272f1870b544b28329545b84f3425c2">OPTS_INIT</a></td></tr>
-<tr class="separator:a9272f1870b544b28329545b84f3425c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a2fcaf1b7274379695cc9a4bb1c719d86"><td class="memItemLeft" align="right" valign="top">void *callbackHandle&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__service__tracking__options.html#a2fcaf1b7274379695cc9a4bb1c719d86">OPTS_INIT</a></td></tr>
-<tr class="separator:a2fcaf1b7274379695cc9a4bb1c719d86"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aa9e8b9cae7ea59ddb796a6bc904f57da"><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__service__tracking__options.html#aa9e8b9cae7ea59ddb796a6bc904f57da">set</a> )(void *handle, void *svc) <a class="el" href="structcelix__service__tracking__options.html#a9272f1870b544b28329545b84f3425c2">OPTS_INIT</a></td></tr>
-<tr class="separator:aa9e8b9cae7ea59ddb796a6bc904f57da"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a256f8db1eecb89a8b71e4ef03ab11172"><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__service__tracking__options.html#a256f8db1eecb89a8b71e4ef03ab11172">setWithProperties</a> )(void *handle, void *svc, const celix_properties_t *props) <a class="el" href="structcelix__service__tracking__options.html#a9272f1870b544b28329545b84f3425c2">OPTS_INIT</a></td></tr>
-<tr class="separator:a256f8db1eecb89a8b71e4ef03ab11172"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a12a988b8f1f3bd3a2e61c65d82f14d59"><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__service__tracking__options.html#a12a988b8f1f3bd3a2e61c65d82f14d59">setWithOwner</a> )(void *handle, void *svc, const celix_properties_t *props, const celix_bundle_t *svcOwner) <a class="el" href="structcelix__service__tracking__options.html#a9272f1870b544b28329545b84f3425c2">OPTS_INIT</a></td></tr>
-<tr class="separator:a12a988b8f1f3bd3a2e61c65d82f14d59"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:afe7fa7d7fce1c581dff6e7986e958815"><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__service__tracking__options.html#afe7fa7d7fce1c581dff6e7986e958815">add</a> )(void *handle, void *svc) <a class="el" href="structcelix__service__tracking__options.html#a9272f1870b544b28329545b84f3425c2">OPTS_INIT</a></td></tr>
-<tr class="separator:afe7fa7d7fce1c581dff6e7986e958815"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a4f80c99b050b1e49663cab329848364c"><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__service__tracking__options.html#a4f80c99b050b1e49663cab329848364c">addWithProperties</a> )(void *handle, void *svc, const celix_properties_t *props) <a class="el" href="structcelix__service__tracking__options.html#a9272f1870b544b28329545b84f3425c2">OPTS_INIT</a></td></tr>
-<tr class="separator:a4f80c99b050b1e49663cab329848364c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a787fd0f4f6719fefea2ae70fe6a1a5e6"><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__service__tracking__options.html#a787fd0f4f6719fefea2ae70fe6a1a5e6">addWithOwner</a> )(void *handle, void *svc, const celix_properties_t *props, const celix_bundle_t *svcOwner) <a class="el" href="structcelix__service__tracking__options.html#a9272f1870b544b28329545b84f3425c2">OPTS_INIT</a></td></tr>
-<tr class="separator:a787fd0f4f6719fefea2ae70fe6a1a5e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a8445caaae53d71a47c0289d2e3e5f882"><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__service__tracking__options.html#a8445caaae53d71a47c0289d2e3e5f882">remove</a> )(void *handle, void *svc) <a class="el" href="structcelix__service__tracking__options.html#a9272f1870b544b28329545b84f3425c2">OPTS_INIT</a></td></tr>
-<tr class="separator:a8445caaae53d71a47c0289d2e3e5f882"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:af75c423757dcd16bf90d57a5726ac98a"><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__service__tracking__options.html#af75c423757dcd16bf90d57a5726ac98a">removeWithProperties</a> )(void *handle, void *svc, const celix_properties_t *props) <a class="el" href="structcelix__service__tracking__options.html#a9272f1870b544b28329545b84f3425c2">OPTS_INIT</a></td></tr>
-<tr class="separator:af75c423757dcd16bf90d57a5726ac98a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:acf6dbcde52efbed145933e8a28f3f2e1"><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__service__tracking__options.html#acf6dbcde52efbed145933e8a28f3f2e1">removeWithOwner</a> )(void *handle, void *svc, const celix_properties_t *props, const celix_bundle_t *svcOwner) <a class="el" href="structcelix__service__tracking__options.html#a9272f1870b544b28329545b84f3425c2">OPTS_INIT</a></td></tr>
-<tr class="separator:acf6dbcde52efbed145933e8a28f3f2e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>Service Tracker Options used to fine tune which services to track and the callback to be used for the tracked services. </p>
-</div><h2 class="groupheader">Member Data Documentation</h2>
-<a id="afe7fa7d7fce1c581dff6e7986e958815"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#afe7fa7d7fce1c581dff6e7986e958815">&#9670;&nbsp;</a></span>add</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void(* celix_service_tracking_options::add) (void *handle, void *svc) <a class="el" href="structcelix__service__tracking__options.html#a9272f1870b544b28329545b84f3425c2">OPTS_INIT</a></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>The optional add callback will be called for every current and future service found conform the provided service filter options as long as the tracker is active. </p><dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">handle</td><td>The callbackHandle pointer as provided in the service tracker options. </td></tr>
-    <tr><td class="paramname">svc</td><td>The service pointer of a service matching the provided service filter options. </td></tr>
-  </table>
-  </dd>
-</dl>
-
-</div>
-</div>
-<a id="a787fd0f4f6719fefea2ae70fe6a1a5e6"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a787fd0f4f6719fefea2ae70fe6a1a5e6">&#9670;&nbsp;</a></span>addWithOwner</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void(* celix_service_tracking_options::addWithOwner) (void *handle, void *svc, const celix_properties_t *props, const celix_bundle_t *svcOwner) <a class="el" href="structcelix__service__tracking__options.html#a9272f1870b544b28329545b84f3425c2">OPTS_INIT</a></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>The optional addWithOwner callback is handled as the add callback, but with the addition that the service properties and the bundle owning the service will also be provided to the callback. </p>
-
-</div>
-</div>
-<a id="a4f80c99b050b1e49663cab329848364c"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a4f80c99b050b1e49663cab329848364c">&#9670;&nbsp;</a></span>addWithProperties</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void(* celix_service_tracking_options::addWithProperties) (void *handle, void *svc, const celix_properties_t *props) <a class="el" href="structcelix__service__tracking__options.html#a9272f1870b544b28329545b84f3425c2">OPTS_INIT</a></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>The optional addWithProperties callback is handled as the add callback, but with the addition that the service properties will also be provided to the callback. </p>
-
-</div>
-</div>
-<a id="a9272f1870b544b28329545b84f3425c2"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a9272f1870b544b28329545b84f3425c2">&#9670;&nbsp;</a></span>OPTS_INIT <span class="overload">[1/2]</span></h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname"><a class="el" href="celix__bundle__context_8h.html#a7eab80d54386fb32b91dd414846c2d45">celix_service_filter_options_t</a> filter celix_service_tracking_options::OPTS_INIT</td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>The service filter options, used to setup the filter for the service to track. </p>
-
-</div>
-</div>
-<a id="a2fcaf1b7274379695cc9a4bb1c719d86"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a2fcaf1b7274379695cc9a4bb1c719d86">&#9670;&nbsp;</a></span>OPTS_INIT <span class="overload">[2/2]</span></h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void* callbackHandle celix_service_tracking_options::OPTS_INIT</td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>The optional callback pointer used in all the provided callback function (set, add, remove, setWithProperties, etc). </p>
-
-</div>
-</div>
-<a id="a8445caaae53d71a47c0289d2e3e5f882"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a8445caaae53d71a47c0289d2e3e5f882">&#9670;&nbsp;</a></span>remove</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void(* celix_service_tracking_options::remove) (void *handle, void *svc) <a class="el" href="structcelix__service__tracking__options.html#a9272f1870b544b28329545b84f3425c2">OPTS_INIT</a></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>The optional remove callback will be called for every service conform the provided service filter options that is unregistered. When the remove call is finished the removed services should be considered invalid. This means that the callback provider should ensure that the removed service is not in use or going to be used after the remove callback is finished.</p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">handle</td><td>The callbackHandle pointer as provided in the service tracker options. </td></tr>
-    <tr><td class="paramname">svc</td><td>The service pointer of a service matching the provided service filter options. </td></tr>
-  </table>
-  </dd>
-</dl>
-
-</div>
-</div>
-<a id="acf6dbcde52efbed145933e8a28f3f2e1"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#acf6dbcde52efbed145933e8a28f3f2e1">&#9670;&nbsp;</a></span>removeWithOwner</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void(* celix_service_tracking_options::removeWithOwner) (void *handle, void *svc, const celix_properties_t *props, const celix_bundle_t *svcOwner) <a class="el" href="structcelix__service__tracking__options.html#a9272f1870b544b28329545b84f3425c2">OPTS_INIT</a></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>The optional removeWithOwner callback is handled as the remove callback, but with the addition that the service properties and the bundle owning the service will also be provided to the callback. </p>
-
-</div>
-</div>
-<a id="af75c423757dcd16bf90d57a5726ac98a"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#af75c423757dcd16bf90d57a5726ac98a">&#9670;&nbsp;</a></span>removeWithProperties</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void(* celix_service_tracking_options::removeWithProperties) (void *handle, void *svc, const celix_properties_t *props) <a class="el" href="structcelix__service__tracking__options.html#a9272f1870b544b28329545b84f3425c2">OPTS_INIT</a></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>The optional removeWithProperties callback is handled as the remove callback, but with the addition that the service properties will also be provided to the callback. </p>
-
-</div>
-</div>
-<a id="aa9e8b9cae7ea59ddb796a6bc904f57da"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#aa9e8b9cae7ea59ddb796a6bc904f57da">&#9670;&nbsp;</a></span>set</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void(* celix_service_tracking_options::set) (void *handle, void *svc) <a class="el" href="structcelix__service__tracking__options.html#a9272f1870b544b28329545b84f3425c2">OPTS_INIT</a></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>The optional set callback will be called when a new highest ranking service is available conform the provided service filter options. </p><dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">handle</td><td>The callbackHandle pointer as provided in the service tracker options. </td></tr>
-    <tr><td class="paramname">svc</td><td>The service pointer of the highest ranking service. </td></tr>
-  </table>
-  </dd>
-</dl>
-
-</div>
-</div>
-<a id="a12a988b8f1f3bd3a2e61c65d82f14d59"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a12a988b8f1f3bd3a2e61c65d82f14d59">&#9670;&nbsp;</a></span>setWithOwner</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void(* celix_service_tracking_options::setWithOwner) (void *handle, void *svc, const celix_properties_t *props, const celix_bundle_t *svcOwner) <a class="el" href="structcelix__service__tracking__options.html#a9272f1870b544b28329545b84f3425c2">OPTS_INIT</a></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>The optional setWithOwner callback is handled as the set callback, but with the addition that the service properties and the bundle owning the service will also be provided to the callback. </p>
-
-</div>
-</div>
-<a id="a256f8db1eecb89a8b71e4ef03ab11172"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a256f8db1eecb89a8b71e4ef03ab11172">&#9670;&nbsp;</a></span>setWithProperties</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void(* celix_service_tracking_options::setWithProperties) (void *handle, void *svc, const celix_properties_t *props) <a class="el" href="structcelix__service__tracking__options.html#a9272f1870b544b28329545b84f3425c2">OPTS_INIT</a></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>The optional setWithProperties callback is handled as the set callback, but with the addition that the service properties will also be provided to the callback. </p>
-
-</div>
-</div>
-<hr/>The documentation for this struct was generated from the following file:<ul>
-<li>libs/framework/include/<a class="el" href="celix__bundle__context_8h_source.html">celix_bundle_context.h</a></li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.18
-</small></address>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/structcelix__service__tracking__options__coll__graph.map b/static/docs/2.2.1/html/structcelix__service__tracking__options__coll__graph.map
deleted file mode 100755
index 190d876..0000000
--- a/static/docs/2.2.1/html/structcelix__service__tracking__options__coll__graph.map
+++ /dev/null
@@ -1,4 +0,0 @@
-<map id="celix_service_tracking_options" name="celix_service_tracking_options">
-<area shape="rect" id="node1" title=" " alt="" coords="5,109,156,151"/>
-<area shape="rect" id="node2" href="$structcelix__service__filter__options.html" title=" " alt="" coords="15,5,146,47"/>
-</map>
diff --git a/static/docs/2.2.1/html/structcelix__service__tracking__options__coll__graph.md5 b/static/docs/2.2.1/html/structcelix__service__tracking__options__coll__graph.md5
deleted file mode 100755
index 9e13c94..0000000
--- a/static/docs/2.2.1/html/structcelix__service__tracking__options__coll__graph.md5
+++ /dev/null
@@ -1 +0,0 @@
-676ad69a7aa6ae372c23369f1416c295
\ No newline at end of file
diff --git a/static/docs/2.2.1/html/structcelix__service__tracking__options__coll__graph.png b/static/docs/2.2.1/html/structcelix__service__tracking__options__coll__graph.png
deleted file mode 100755
index 423f5d4..0000000
--- a/static/docs/2.2.1/html/structcelix__service__tracking__options__coll__graph.png
+++ /dev/null
Binary files differ
diff --git a/static/docs/2.2.1/html/structcelix__service__use__options-members.html b/static/docs/2.2.1/html/structcelix__service__use__options-members.html
deleted file mode 100755
index 3cb105b..0000000
--- a/static/docs/2.2.1/html/structcelix__service__use__options-members.html
+++ /dev/null
@@ -1,87 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>Celix: Member List</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/searchdata.js"></script>
-<script type="text/javascript" src="search/search.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">Celix
-   &#160;<span id="projectnumber">2.2.1</span>
-   </div>
-   <div id="projectbrief">An implementation of the OSGi specification adapted to C and C++</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.18 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
-     onmouseover="return searchBox.OnSearchSelectShow()"
-     onmouseout="return searchBox.OnSearchSelectHide()"
-     onkeydown="return searchBox.OnSearchSelectKey(event)">
-</div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-</div><!-- top -->
-<div class="header">
-  <div class="headertitle">
-<div class="title">celix_service_use_options Member List</div>  </div>
-</div><!--header-->
-<div class="contents">
-
-<p>This is the complete list of members for <a class="el" href="structcelix__service__use__options.html">celix_service_use_options</a>, including all inherited members.</p>
-<table class="directory">
-  <tr class="even"><td class="entry"><a class="el" href="structcelix__service__use__options.html#addad49a12179fff8b2dbf5313d70952f">OPTS_INIT</a></td><td class="entry"><a class="el" href="structcelix__service__use__options.html">celix_service_use_options</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="structcelix__service__use__options.html#ae24e3e35d7d92d5b41d58b53506bcca0">OPTS_INIT</a></td><td class="entry"><a class="el" href="structcelix__service__use__options.html">celix_service_use_options</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="structcelix__service__use__options.html#a31a9834b87a5c2c3ed6b8532cd85c653">OPTS_INIT</a></td><td class="entry"><a class="el" href="structcelix__service__use__options.html">celix_service_use_options</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="structcelix__service__use__options.html#ac7efa464a614a3faf6970a4917c596a7">use</a></td><td class="entry"><a class="el" href="structcelix__service__use__options.html">celix_service_use_options</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="structcelix__service__use__options.html#a2ba3552bfc25500084bfaf2dbb0f46c5">useWithOwner</a></td><td class="entry"><a class="el" href="structcelix__service__use__options.html">celix_service_use_options</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="structcelix__service__use__options.html#a8192eb7aa470178f78ea8c09c4574867">useWithProperties</a></td><td class="entry"><a class="el" href="structcelix__service__use__options.html">celix_service_use_options</a></td><td class="entry"></td></tr>
-</table></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.18
-</small></address>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/structcelix__service__use__options.html b/static/docs/2.2.1/html/structcelix__service__use__options.html
deleted file mode 100755
index 0d58cd8..0000000
--- a/static/docs/2.2.1/html/structcelix__service__use__options.html
+++ /dev/null
@@ -1,213 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.18"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>Celix: celix_service_use_options Struct Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/searchdata.js"></script>
-<script type="text/javascript" src="search/search.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">Celix
-   &#160;<span id="projectnumber">2.2.1</span>
-   </div>
-   <div id="projectbrief">An implementation of the OSGi specification adapted to C and C++</div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.18 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
-     onmouseover="return searchBox.OnSearchSelectShow()"
-     onmouseout="return searchBox.OnSearchSelectHide()"
-     onkeydown="return searchBox.OnSearchSelectKey(event)">
-</div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-</div><!-- top -->
-<div class="header">
-  <div class="summary">
-<a href="#pub-attribs">Public Attributes</a> &#124;
-<a href="structcelix__service__use__options-members.html">List of all members</a>  </div>
-  <div class="headertitle">
-<div class="title">celix_service_use_options Struct Reference</div>  </div>
-</div><!--header-->
-<div class="contents">
-
-<p><code>#include &lt;<a class="el" href="celix__bundle__context_8h_source.html">celix_bundle_context.h</a>&gt;</code></p>
-<div class="dynheader">
-Collaboration diagram for celix_service_use_options:</div>
-<div class="dyncontent">
-<div class="center"><img src="structcelix__service__use__options__coll__graph.png" border="0" usemap="#celix__service__use__options_coll__map" alt="Collaboration graph"/></div>
-<map name="celix__service__use__options_coll__map" id="celix__service__use__options_coll__map">
-<area shape="rect" title=" " alt="" coords="5,109,180,136"/>
-<area shape="rect" href="structcelix__service__filter__options.html" title=" " alt="" coords="27,5,158,47"/>
-</map>
-<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
-Public Attributes</h2></td></tr>
-<tr class="memitem:addad49a12179fff8b2dbf5313d70952f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="celix__bundle__context_8h.html#a7eab80d54386fb32b91dd414846c2d45">celix_service_filter_options_t</a> filter&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__service__use__options.html#addad49a12179fff8b2dbf5313d70952f">OPTS_INIT</a></td></tr>
-<tr class="separator:addad49a12179fff8b2dbf5313d70952f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ae24e3e35d7d92d5b41d58b53506bcca0"><td class="memItemLeft" align="right" valign="top">double waitTimeoutInSeconds&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__service__use__options.html#ae24e3e35d7d92d5b41d58b53506bcca0">OPTS_INIT</a></td></tr>
-<tr class="separator:ae24e3e35d7d92d5b41d58b53506bcca0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a31a9834b87a5c2c3ed6b8532cd85c653"><td class="memItemLeft" align="right" valign="top">void *callbackHandle&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__service__use__options.html#a31a9834b87a5c2c3ed6b8532cd85c653">OPTS_INIT</a></td></tr>
-<tr class="separator:a31a9834b87a5c2c3ed6b8532cd85c653"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ac7efa464a614a3faf6970a4917c596a7"><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__service__use__options.html#ac7efa464a614a3faf6970a4917c596a7">use</a> )(void *handle, void *svc) <a class="el" href="structcelix__service__use__options.html#addad49a12179fff8b2dbf5313d70952f">OPTS_INIT</a></td></tr>
-<tr class="separator:ac7efa464a614a3faf6970a4917c596a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a8192eb7aa470178f78ea8c09c4574867"><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__service__use__options.html#a8192eb7aa470178f78ea8c09c4574867">useWithProperties</a> )(void *handle, void *svc, const celix_properties_t *props) <a class="el" href="structcelix__service__use__options.html#addad49a12179fff8b2dbf5313d70952f">OPTS_INIT</a></td></tr>
-<tr class="separator:a8192eb7aa470178f78ea8c09c4574867"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a2ba3552bfc25500084bfaf2dbb0f46c5"><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__service__use__options.html#a2ba3552bfc25500084bfaf2dbb0f46c5">useWithOwner</a> )(void *handle, void *svc, const celix_properties_t *props, const celix_bundle_t *svcOwner) <a class="el" href="structcelix__service__use__options.html#addad49a12179fff8b2dbf5313d70952f">OPTS_INIT</a></td></tr>
-<tr class="separator:a2ba3552bfc25500084bfaf2dbb0f46c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>Service Use Options used to fine tune which services to use and which callbacks to use. </p>
-</div><h2 class="groupheader">Member Data Documentation</h2>
-<a id="addad49a12179fff8b2dbf5313d70952f"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#addad49a12179fff8b2dbf5313d70952f">&#9670;&nbsp;</a></span>OPTS_INIT <span class="overload">[1/3]</span></h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname"><a class="el" href="celix__bundle__context_8h.html#a7eab80d54386fb32b91dd414846c2d45">celix_service_filter_options_t</a> filter celix_service_use_options::OPTS_INIT</td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>The service filter options, used to setup the filter for the service to track. </p>
-
-</div>
-</div>
-<a id="ae24e3e35d7d92d5b41d58b53506bcca0"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ae24e3e35d7d92d5b41d58b53506bcca0">&#9670;&nbsp;</a></span>OPTS_INIT <span class="overload">[2/3]</span></h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">double waitTimeoutInSeconds celix_service_use_options::OPTS_INIT</td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>An optional timeout (in seconds), if &gt; 0 the use service call will block untill the timeout is expired or when at least one service is found. Default (0) </p>
-
-</div>
-</div>
-<a id="a31a9834b87a5c2c3ed6b8532cd85c653"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a31a9834b87a5c2c3ed6b8532cd85c653">&#9670;&nbsp;</a></span>OPTS_INIT <span class="overload">[3/3]</span></h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void* callbackHandle celix_service_use_options::OPTS_INIT</td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>The optional callback pointer used in all the provided callback function (set, add, remove, setWithProperties, etc). </p>
-
-</div>
-</div>
-<a id="ac7efa464a614a3faf6970a4917c596a7"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ac7efa464a614a3faf6970a4917c596a7">&#9670;&nbsp;</a></span>use</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void(* celix_service_use_options::use) (void *handle, void *svc) <a class="el" href="structcelix__service__use__options.html#addad49a12179fff8b2dbf5313d70952f">OPTS_INIT</a></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>The optional use callback will be called when for every services found conform the service filter options</p><ul>
-<li>in case of findServices - or only for the highest ranking service found - in case of findService -.</li>
-</ul>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">handle</td><td>The callbackHandle pointer as provided in the service tracker options. </td></tr>
-    <tr><td class="paramname">svc</td><td>The service pointer of the highest ranking service. </td></tr>
-  </table>
-  </dd>
-</dl>
-
-</div>
-</div>
-<a id="a2ba3552bfc25500084bfaf2dbb0f46c5"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a2ba3552bfc25500084bfaf2dbb0f46c5">&#9670;&nbsp;</a></span>useWithOwner</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void(* celix_service_use_options::useWithOwner) (void *handle, void *svc, const celix_properties_t *props, const celix_bundle_t *svcOwner) <a class="el" href="structcelix__service__use__options.html#addad49a12179fff8b2dbf5313d70952f">OPTS_INIT</a></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>The optional useWithOwner callback is handled as the yse callback, but with the addition that the service properties and the bundle owning the service will also be provided to the callback. </p>
-
-</div>
-</div>
-<a id="a8192eb7aa470178f78ea8c09c4574867"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a8192eb7aa470178f78ea8c09c4574867">&#9670;&nbsp;</a></span>useWithProperties</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void(* celix_service_use_options::useWithProperties) (void *handle, void *svc, const celix_properties_t *props) <a class="el" href="structcelix__service__use__options.html#addad49a12179fff8b2dbf5313d70952f">OPTS_INIT</a></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>The optional useWithProperties callback is handled as the use callback, but with the addition that the service properties will also be provided to the callback. </p>
-
-</div>
-</div>
-<hr/>The documentation for this struct was generated from the following file:<ul>
-<li>libs/framework/include/<a class="el" href="celix__bundle__context_8h_source.html">celix_bundle_context.h</a></li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.18
-</small></address>
-</body>
-</html>
diff --git a/static/docs/2.2.1/html/structcelix__service__use__options__coll__graph.map b/static/docs/2.2.1/html/structcelix__service__use__options__coll__graph.map
deleted file mode 100755
index c37c7f1..0000000
--- a/static/docs/2.2.1/html/structcelix__service__use__options__coll__graph.map
+++ /dev/null
@@ -1,4 +0,0 @@
-<map id="celix_service_use_options" name="celix_service_use_options">
-<area shape="rect" id="node1" title=" " alt="" coords="5,109,180,136"/>
-<area shape="rect" id="node2" href="$structcelix__service__filter__options.html" title=" " alt="" coords="27,5,158,47"/>
-</map>
diff --git a/static/docs/2.2.1/html/structcelix__service__use__options__coll__graph.md5 b/static/docs/2.2.1/html/structcelix__service__use__options__coll__graph.md5
deleted file mode 100755
index f43dba2..0000000
--- a/static/docs/2.2.1/html/structcelix__service__use__options__coll__graph.md5
+++ /dev/null
@@ -1 +0,0 @@
-adcc6d4cf84c2e54a8d55f03a72fad5d
\ No newline at end of file
diff --git a/static/docs/2.2.1/html/structcelix__service__use__options__coll__graph.png b/static/docs/2.2.1/html/structcelix__service__use__options__coll__graph.png
deleted file mode 100755
index b2addac..0000000
--- a/static/docs/2.2.1/html/structcelix__service__use__options__coll__graph.png
+++ /dev/null
Binary files differ
diff --git a/static/docs/2.2.1/html/sync_off.png b/static/docs/2.2.1/html/sync_off.png
deleted file mode 100755
index 3b443fc..0000000
--- a/static/docs/2.2.1/html/sync_off.png
+++ /dev/null
Binary files differ
diff --git a/static/docs/2.2.1/html/sync_on.png b/static/docs/2.2.1/html/sync_on.png
deleted file mode 100755
index e08320f..0000000
--- a/static/docs/2.2.1/html/sync_on.png
+++ /dev/null
Binary files differ
diff --git a/static/docs/2.2.1/html/tab_a.png b/static/docs/2.2.1/html/tab_a.png
deleted file mode 100755
index 3b725c4..0000000
--- a/static/docs/2.2.1/html/tab_a.png
+++ /dev/null
Binary files differ
diff --git a/static/docs/2.2.1/html/tab_b.png b/static/docs/2.2.1/html/tab_b.png
deleted file mode 100755
index e2b4a86..0000000
--- a/static/docs/2.2.1/html/tab_b.png
+++ /dev/null
Binary files differ
diff --git a/static/docs/2.2.1/html/tab_h.png b/static/docs/2.2.1/html/tab_h.png
deleted file mode 100755
index fd5cb70..0000000
--- a/static/docs/2.2.1/html/tab_h.png
+++ /dev/null
Binary files differ
diff --git a/static/docs/2.2.1/html/tab_s.png b/static/docs/2.2.1/html/tab_s.png
deleted file mode 100755
index ab478c9..0000000
--- a/static/docs/2.2.1/html/tab_s.png
+++ /dev/null
Binary files differ
diff --git a/static/docs/2.2.1/html/tabs.css b/static/docs/2.2.1/html/tabs.css
deleted file mode 100755
index 85a0cd5..0000000
--- a/static/docs/2.2.1/html/tabs.css
+++ /dev/null
@@ -1 +0,0 @@
-.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.sm-dox{background-image:url("tab_b.png")}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:"Lucida Grande","Geneva","Helvetica",Arial,sans-serif;font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:0 1px 1px rgba(255,255,255,0.9);color:#283a5d;outline:0}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace!important;text-align:center;text-shadow:none;background:rgba(255,255,255,0.5);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:rgba(162,162,162,0.1)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:white;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:url("tab_b.png");line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:#283a5d transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:url("tab_s.png");background-repeat:no-repeat;background-position:right;-moz-border-radius:0!important;-webkit-border-radius:0;border-radius:0!important}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a:hover span.sub-arrow{border-color:white transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent #fff transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:#fff;-moz-border-radius:5px!important;-webkit-border-radius:5px;border-radius:5px!important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #555;border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:#555;background-image:none;border:0!important;color:#555;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent white}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:#fff;height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent #555 transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:#555 transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px!important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:url("tab_b.png")}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:#fff}}
\ No newline at end of file