diff --git a/24.02/classarmnn_deserializer_1_1_i_deserializer_1_1_deserializer_impl-members.html b/24.02/classarmnn_deserializer_1_1_i_deserializer_1_1_deserializer_impl-members.html
new file mode 100644
index 0000000..892e6b6
--- /dev/null
+++ b/24.02/classarmnn_deserializer_1_1_i_deserializer_1_1_deserializer_impl-members.html
@@ -0,0 +1,135 @@
+<!-- HTML header for doxygen 1.8.17-->
+<!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.17"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>Arm NN: 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="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.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>
+<script type="text/x-mathjax-config">
+  MathJax.Hub.Config({
+    extensions: ["tex2jax.js"],
+    jax: ["input/TeX","output/HTML-CSS"],
+});
+</script>
+<script type="text/javascript" async="async" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+<link href="customdoxygen.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;">
+  <img alt="ArmNN" src="Arm_NN_horizontal_blue.png" style="max-width: 15rem; margin-top: .5rem; margin-left 13px"/>
+  <td id="projectalign" style="padding-left: 0.9em;">
+   <div id="projectname">
+   &#160;<span id="projectnumber">24.02</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.17 -->
+<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 -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(document).ready(function(){initNavTree('classarmnn_deserializer_1_1_i_deserializer_1_1_deserializer_impl.html',''); initResizable(); });
+/* @license-end */
+</script>
+<div id="doc-content">
+<!-- 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">IDeserializer::DeserializerImpl Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classarmnn_deserializer_1_1_i_deserializer_1_1_deserializer_impl.html">IDeserializer::DeserializerImpl</a>, including all inherited members.</p>
+<table class="directory">
+  <tr class="even"><td class="entry"><a class="el" href="classarmnn_deserializer_1_1_i_deserializer_1_1_deserializer_impl.html#a32a96909bc8a8ee9076bd4d5c1028301">CreateNetworkFromBinary</a>(const std::vector&lt; uint8_t &gt; &amp;binaryContent)</td><td class="entry"><a class="el" href="classarmnn_deserializer_1_1_i_deserializer_1_1_deserializer_impl.html">IDeserializer::DeserializerImpl</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classarmnn_deserializer_1_1_i_deserializer_1_1_deserializer_impl.html#aa83e3be25485ec6d6e5a2b21f8201a59">CreateNetworkFromBinary</a>(std::istream &amp;binaryContent)</td><td class="entry"><a class="el" href="classarmnn_deserializer_1_1_i_deserializer_1_1_deserializer_impl.html">IDeserializer::DeserializerImpl</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classarmnn_deserializer_1_1_i_deserializer_1_1_deserializer_impl.html#abfdc037ebcc11de0e1432ba4d3d98fe7">DeserializerImpl</a>()</td><td class="entry"><a class="el" href="classarmnn_deserializer_1_1_i_deserializer_1_1_deserializer_impl.html">IDeserializer::DeserializerImpl</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classarmnn_deserializer_1_1_i_deserializer_1_1_deserializer_impl.html#a7309cee724dcf328419a5a611698308d">DeserializerImpl</a>(const DeserializerImpl &amp;)=delete</td><td class="entry"><a class="el" href="classarmnn_deserializer_1_1_i_deserializer_1_1_deserializer_impl.html">IDeserializer::DeserializerImpl</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classarmnn_deserializer_1_1_i_deserializer_1_1_deserializer_impl.html#ab3dff510bec873d3e4ffe5cdfa71f1cd">GetBaseLayer</a>(const GraphPtr &amp;graphPtr, unsigned int layerIndex)</td><td class="entry"><a class="el" href="classarmnn_deserializer_1_1_i_deserializer_1_1_deserializer_impl.html">IDeserializer::DeserializerImpl</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classarmnn_deserializer_1_1_i_deserializer_1_1_deserializer_impl.html#afcc87bf0e20779861dd5d01a4bedcda9">GetBindingLayerInfo</a>(const GraphPtr &amp;graphPtr, unsigned int layerIndex)</td><td class="entry"><a class="el" href="classarmnn_deserializer_1_1_i_deserializer_1_1_deserializer_impl.html">IDeserializer::DeserializerImpl</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classarmnn_deserializer_1_1_i_deserializer_1_1_deserializer_impl.html#ac337f5478049cba1da222da655be49cc">GetInputs</a>(const GraphPtr &amp;graph, unsigned int layerIndex)</td><td class="entry"><a class="el" href="classarmnn_deserializer_1_1_i_deserializer_1_1_deserializer_impl.html">IDeserializer::DeserializerImpl</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classarmnn_deserializer_1_1_i_deserializer_1_1_deserializer_impl.html#af2e5b4595b6abc056779ecd12bd271c2">GetLayerName</a>(const GraphPtr &amp;graph, unsigned int index)</td><td class="entry"><a class="el" href="classarmnn_deserializer_1_1_i_deserializer_1_1_deserializer_impl.html">IDeserializer::DeserializerImpl</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classarmnn_deserializer_1_1_i_deserializer_1_1_deserializer_impl.html#af7bb02c61c6a5663121da024b7e042e8">GetLstmDescriptor</a>(LstmDescriptorPtr lstmDescriptor)</td><td class="entry"><a class="el" href="classarmnn_deserializer_1_1_i_deserializer_1_1_deserializer_impl.html">IDeserializer::DeserializerImpl</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classarmnn_deserializer_1_1_i_deserializer_1_1_deserializer_impl.html#a327a399d46f8216c9f4c1eea5f18a542">GetLstmInputParams</a>(LstmDescriptorPtr lstmDescriptor, LstmInputParamsPtr lstmInputParams)</td><td class="entry"><a class="el" href="classarmnn_deserializer_1_1_i_deserializer_1_1_deserializer_impl.html">IDeserializer::DeserializerImpl</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classarmnn_deserializer_1_1_i_deserializer_1_1_deserializer_impl.html#a5de68e32eabd643f55a35f288ba10294">GetNetworkInputBindingInfo</a>(unsigned int layerId, const std::string &amp;name) const</td><td class="entry"><a class="el" href="classarmnn_deserializer_1_1_i_deserializer_1_1_deserializer_impl.html">IDeserializer::DeserializerImpl</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classarmnn_deserializer_1_1_i_deserializer_1_1_deserializer_impl.html#a2f66de823cd61765a40407fee754655e">GetNetworkOutputBindingInfo</a>(unsigned int layerId, const std::string &amp;name) const</td><td class="entry"><a class="el" href="classarmnn_deserializer_1_1_i_deserializer_1_1_deserializer_impl.html">IDeserializer::DeserializerImpl</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classarmnn_deserializer_1_1_i_deserializer_1_1_deserializer_impl.html#a920251d49a8f32085d458ba23f776800">GetNormalizationDescriptor</a>(NormalizationDescriptorPtr normalizationDescriptor, unsigned int layerIndex)</td><td class="entry"><a class="el" href="classarmnn_deserializer_1_1_i_deserializer_1_1_deserializer_impl.html">IDeserializer::DeserializerImpl</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classarmnn_deserializer_1_1_i_deserializer_1_1_deserializer_impl.html#a9069127d4430d97fe0f2c53fb2c32ab9">GetOutputs</a>(const GraphPtr &amp;graph, unsigned int layerIndex)</td><td class="entry"><a class="el" href="classarmnn_deserializer_1_1_i_deserializer_1_1_deserializer_impl.html">IDeserializer::DeserializerImpl</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classarmnn_deserializer_1_1_i_deserializer_1_1_deserializer_impl.html#ac17b9b154461bfa49ff7ade08f3c4bdf">GetPooling2dDescriptor</a>(Pooling2dDescriptor pooling2dDescriptor, unsigned int layerIndex)</td><td class="entry"><a class="el" href="classarmnn_deserializer_1_1_i_deserializer_1_1_deserializer_impl.html">IDeserializer::DeserializerImpl</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classarmnn_deserializer_1_1_i_deserializer_1_1_deserializer_impl.html#a1467999b659959577bb2efc8fc62e15a">GetPooling3dDescriptor</a>(Pooling3dDescriptor pooling3dDescriptor, unsigned int layerIndex)</td><td class="entry"><a class="el" href="classarmnn_deserializer_1_1_i_deserializer_1_1_deserializer_impl.html">IDeserializer::DeserializerImpl</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classarmnn_deserializer_1_1_i_deserializer_1_1_deserializer_impl.html#a57e32d26ac8c87b118e77da920481123">GetQLstmDescriptor</a>(QLstmDescriptorPtr qLstmDescriptorPtr)</td><td class="entry"><a class="el" href="classarmnn_deserializer_1_1_i_deserializer_1_1_deserializer_impl.html">IDeserializer::DeserializerImpl</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classarmnn_deserializer_1_1_i_deserializer_1_1_deserializer_impl.html#ad04b4361ec1ded6b9334dae64c7c4579">GetUnidirectionalSequenceLstmDescriptor</a>(UnidirectionalSequenceLstmDescriptorPtr descriptor)</td><td class="entry"><a class="el" href="classarmnn_deserializer_1_1_i_deserializer_1_1_deserializer_impl.html">IDeserializer::DeserializerImpl</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classarmnn_deserializer_1_1_i_deserializer_1_1_deserializer_impl.html#a0bab2006e8fafc4a7fd02efa536f2828">LoadGraphFromBinary</a>(const uint8_t *binaryContent, size_t len)</td><td class="entry"><a class="el" href="classarmnn_deserializer_1_1_i_deserializer_1_1_deserializer_impl.html">IDeserializer::DeserializerImpl</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classarmnn_deserializer_1_1_i_deserializer_1_1_deserializer_impl.html#abe99e44e1f642428be714ebac948915e">operator=</a>(const DeserializerImpl &amp;)=delete</td><td class="entry"><a class="el" href="classarmnn_deserializer_1_1_i_deserializer_1_1_deserializer_impl.html">IDeserializer::DeserializerImpl</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classarmnn_deserializer_1_1_i_deserializer_1_1_deserializer_impl.html#a8752c2b994619ae67201a297c2c76be2">OutputShapeOfReshape</a>(const armnn::TensorInfo &amp;inputTensorInfo, const std::vector&lt; uint32_t &gt; &amp;targetDimsIn)</td><td class="entry"><a class="el" href="classarmnn_deserializer_1_1_i_deserializer_1_1_deserializer_impl.html">IDeserializer::DeserializerImpl</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classarmnn_deserializer_1_1_i_deserializer_1_1_deserializer_impl.html#a28e2ce091ba1ac8242f17134c662ea0f">~DeserializerImpl</a>()=default</td><td class="entry"><a class="el" href="classarmnn_deserializer_1_1_i_deserializer_1_1_deserializer_impl.html">IDeserializer::DeserializerImpl</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="footer">Generated on Wed Feb 14 2024 16:36:26 for Arm NN by
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
+  </ul>
+</div>
+</body>
+</html>
