Skip to content

Commit 97488a0

Browse files
authored
Merge pull request #169 from saxbophone/develop
v0.26.0 - Breaking file format release
2 parents 18c4db0 + 586f4e9 commit 97488a0

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

71 files changed

+648
-424
lines changed

.travis.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ branches:
3838
- master
3939
- develop
4040
- /^test\/.*$/
41+
- /^feature\/.*$/
4142
install:
4243
# override $CC to use gcc-5
4344
- if [ "$CC" = "gcc" ]; then export CC="gcc-5"; fi

CMakeLists.txt

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
# begin basic metadata
1616
cmake_minimum_required(VERSION 3.0)
1717

18-
project(sxbp VERSION 0.25.3 LANGUAGES C)
18+
project(sxbp VERSION 0.26.0 LANGUAGES C)
1919

2020
# set default C standard to use (C99) if not already set
2121
if(NOT DEFINED LIBSXBP_C_STANDARD)
@@ -28,7 +28,7 @@ if(DEFINED ENV{LIBSXBP_C_STANDARD})
2828
set(LIBSXBP_C_STANDARD "$ENV{LIBSXBP_C_STANDARD}")
2929
endif()
3030
endif()
31-
message(STATUS "C Standard set to C${LIBSXBP_C_STANDARD}")
31+
message(STATUS "[sxbp] C Standard set to C${LIBSXBP_C_STANDARD}")
3232
set(CMAKE_C_STANDARD ${LIBSXBP_C_STANDARD})
3333
set(CMAKE_C_STANDARD_REQUIRED ON)
3434

@@ -39,13 +39,14 @@ set(
3939
set(LIBSXBP_ESCAPED_VERSION_STRING "\"${LIBSXBP_VERSION_STRING}\"")
4040
# end basic metadata
4141

42-
# this is a 64-bit project, so check now to make sure we're 64-bit, issue warning if not
43-
if(CMAKE_SIZEOF_VOID_P LESS 8)
42+
# must be running on an architecture of at least 32 bits
43+
if(CMAKE_SIZEOF_VOID_P LESS 4)
4444
message(
4545
WARNING
46-
"It looks like this system's architecture is not at least 64-bit.\n"
47-
"libsxbp requires a system with an architecture of at least 64 bits!\n"
48-
"We'll continue trying to compile anyway, be sure to run the unit tests after."
46+
"[sxbp] It looks like this system's architecture is not at least 32-bit.\n"
47+
" libsxbp requires a system with an architecture of at least 32 bits!\n"
48+
" We'll continue trying to compile anyway, but may fail.\n"
49+
" Be sure to run the unit tests after!"
4950
)
5051
endif()
5152

@@ -70,7 +71,7 @@ endfunction()
7071

7172
# enable extra flags (warnings) if we're not in release mode
7273
if(CMAKE_BUILD_TYPE STREQUAL "Debug" OR CMAKE_BUILD_TYPE STREQUAL "")
73-
message(STATUS "Warnings Enabled")
74+
message(STATUS "[sxbp] Warnings Enabled")
7475
# enable all warnings about 'questionable constructs'
7576
enable_c_compiler_flag_if_supported("-Wall")
7677
# issue 'pedantic' warnings for strict ISO compliance
@@ -90,7 +91,7 @@ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/")
9091
# work out whether we have or have not requested PNG support, or don't care (default)
9192
if(NOT DEFINED LIBSXBP_PNG_SUPPORT)
9293
# try and find libpng v1.x, but don't fail if we can't
93-
message(STATUS "PNG output support will be enabled if possible")
94+
message(STATUS "[sxbp] PNG output support will be enabled if possible")
9495
find_package(PNG 1 EXACT)
9596
# set SXBP_PNG_SUPPORT based on value of PNG_FOUND
9697
if(PNG_FOUND)
@@ -100,12 +101,12 @@ if(NOT DEFINED LIBSXBP_PNG_SUPPORT)
100101
endif()
101102
elseif(LIBSXBP_PNG_SUPPORT)
102103
# find libpng v1.x and fail the build if we can't
103-
message(STATUS "PNG output support explicitly enabled")
104+
message(STATUS "[sxbp] PNG output support explicitly enabled")
104105
find_package(PNG 1 EXACT REQUIRED)
105106
else()
106107
# we've explicitly disabled PNG support, so don't include libpng
107108
# issue a message saying so
108-
message(STATUS "PNG output support explicitly disabled")
109+
message(STATUS "[sxbp] PNG output support explicitly disabled")
109110
endif()
110111

111112
# include libpng directories and add feature test macro if support is enabled
@@ -114,10 +115,10 @@ if(LIBSXBP_PNG_SUPPORT)
114115
# feature test macro
115116
add_definitions(-DLIBSXBP_PNG_SUPPORT)
116117
# issue message
117-
message(STATUS "PNG output support enabled")
118+
message(STATUS "[sxbp] PNG output support enabled")
118119
else()
119120
# issue message
120-
message(STATUS "PNG output support disabled")
121+
message(STATUS "[sxbp] PNG output support disabled")
121122
endif()
122123
# end dependencies
123124

Doxyfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ PROJECT_NAME = libsxbp
3838
# could be handy for archiving the generated documentation or if some version
3939
# control system is used.
4040

41-
PROJECT_NUMBER = v0.25
41+
PROJECT_NUMBER = v0.26
4242

4343
# Using the PROJECT_BRIEF tag one can provide an optional one line description
4444
# for a project that appears at the top of each page and should give viewer a
@@ -51,7 +51,7 @@ PROJECT_BRIEF = "Experimental generation of 2D spiralling lines based o
5151
# pixels and the maximum width should not exceed 200 pixels. Doxygen will copy
5252
# the logo to the output directory.
5353

54-
PROJECT_LOGO =
54+
PROJECT_LOGO = libsxbp.png
5555

5656
# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path
5757
# into which the generated documentation will be written. If a relative path is

README.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,6 @@ Although this project doesn't work in sprints, there is a [*sprint board*](https
2222

2323
## Please Note
2424

25-
- This software only works on systems capable of running 64-bit code.
26-
2725
- This is a library only. If you're looking for something that is immediately usable for the end-user, you probably want to look at [sxbp](https://github.com/saxbophone/sxbp) instead, which is a command-line program I wrote which uses libsxbp to render input binary files to PNG images.
2826

2927
- As libsxbp is currently at major version 0, expect the library API to be unstable. I will endeavour as much as possible to make sure breaking changes increment the minor version number whilst in the version 0.x.x series and bugfixes increment the patch version number, but no heavy reliance should be placed on this.

docs/annotated.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,10 @@
2222
<table cellspacing="0" cellpadding="0">
2323
<tbody>
2424
<tr style="height: 56px;">
25+
<td id="projectlogo"><img alt="Logo" src="libsxbp.png"/></td>
2526
<td id="projectalign" style="padding-left: 0.5em;">
2627
<div id="projectname">libsxbp
27-
&#160;<span id="projectnumber">v0.25</span>
28+
&#160;<span id="projectnumber">v0.26</span>
2829
</div>
2930
<div id="projectbrief">Experimental generation of 2D spiralling lines based on input binary data.</div>
3031
</td>

docs/backend__pbm_8h.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,10 @@
2222
<table cellspacing="0" cellpadding="0">
2323
<tbody>
2424
<tr style="height: 56px;">
25+
<td id="projectlogo"><img alt="Logo" src="libsxbp.png"/></td>
2526
<td id="projectalign" style="padding-left: 0.5em;">
2627
<div id="projectname">libsxbp
27-
&#160;<span id="projectnumber">v0.25</span>
28+
&#160;<span id="projectnumber">v0.26</span>
2829
</div>
2930
<div id="projectbrief">Experimental generation of 2D spiralling lines based on input binary data.</div>
3031
</td>

docs/backend__pbm_8h_source.html

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,10 @@
2222
<table cellspacing="0" cellpadding="0">
2323
<tbody>
2424
<tr style="height: 56px;">
25+
<td id="projectlogo"><img alt="Logo" src="libsxbp.png"/></td>
2526
<td id="projectalign" style="padding-left: 0.5em;">
2627
<div id="projectname">libsxbp
27-
&#160;<span id="projectnumber">v0.25</span>
28+
&#160;<span id="projectnumber">v0.26</span>
2829
</div>
2930
<div id="projectbrief">Experimental generation of 2D spiralling lines based on input binary data.</div>
3031
</td>
@@ -93,8 +94,8 @@
9394
<div class="contents">
9495
<a href="backend__pbm_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"> * This source file forms part of libsxbp, a library which generates</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> * experimental 2D spiral-like shapes based on input binary data.</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#ifndef SAXBOPHONE_SAXBOSPIRAL_BACKEND_PBM_H</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#define SAXBOPHONE_SAXBOSPIRAL_BACKEND_PBM_H</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#include &quot;../saxbospiral.h&quot;</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#include &quot;../render.h&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;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span>{</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<a class="code" href="saxbospiral_8h.html#aaf3547c499b3c2c5909819d6790533e7">sxbp_status_t</a> <a class="code" href="backend__pbm_8h.html#a5d36e5bbb54b1d681b8d1cf8beb3c96d">sxbp_render_backend_pbm</a>(</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <a class="code" href="structsxbp__bitmap__t.html">sxbp_bitmap_t</a> bitmap, <a class="code" href="structsxbp__buffer__t.html">sxbp_buffer_t</a>* buffer</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"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;} <span class="comment">// extern &quot;C&quot;</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="comment">// end of header file</span></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor">#endif</span></div><div class="ttc" id="backend__pbm_8h_html_a5d36e5bbb54b1d681b8d1cf8beb3c96d"><div class="ttname"><a href="backend__pbm_8h.html#a5d36e5bbb54b1d681b8d1cf8beb3c96d">sxbp_render_backend_pbm</a></div><div class="ttdeci">sxbp_status_t sxbp_render_backend_pbm(sxbp_bitmap_t bitmap, sxbp_buffer_t *buffer)</div><div class="ttdoc">Renders a bitmap image to a PBM image. </div><div class="ttdef"><b>Definition:</b> backend_pbm.c:29</div></div>
9596
<div class="ttc" id="structsxbp__bitmap__t_html"><div class="ttname"><a href="structsxbp__bitmap__t.html">sxbp_bitmap_t</a></div><div class="ttdoc">Used to represent a basic 1-bit, pure black/white bitmap image. </div><div class="ttdef"><b>Definition:</b> render.h:40</div></div>
96-
<div class="ttc" id="structsxbp__buffer__t_html"><div class="ttname"><a href="structsxbp__buffer__t.html">sxbp_buffer_t</a></div><div class="ttdoc">A simple buffer type for storing arrays of bytes. </div><div class="ttdef"><b>Definition:</b> saxbospiral.h:209</div></div>
97-
<div class="ttc" id="saxbospiral_8h_html_aaf3547c499b3c2c5909819d6790533e7"><div class="ttname"><a href="saxbospiral_8h.html#aaf3547c499b3c2c5909819d6790533e7">sxbp_status_t</a></div><div class="ttdeci">sxbp_status_t</div><div class="ttdoc">Represents the success or failure status of an executed function. </div><div class="ttdef"><b>Definition:</b> saxbospiral.h:74</div></div>
97+
<div class="ttc" id="structsxbp__buffer__t_html"><div class="ttname"><a href="structsxbp__buffer__t.html">sxbp_buffer_t</a></div><div class="ttdoc">A simple buffer type for storing arrays of bytes. </div><div class="ttdef"><b>Definition:</b> saxbospiral.h:217</div></div>
98+
<div class="ttc" id="saxbospiral_8h_html_aaf3547c499b3c2c5909819d6790533e7"><div class="ttname"><a href="saxbospiral_8h.html#aaf3547c499b3c2c5909819d6790533e7">sxbp_status_t</a></div><div class="ttdeci">sxbp_status_t</div><div class="ttdoc">Represents the success or failure status of an executed function. </div><div class="ttdef"><b>Definition:</b> saxbospiral.h:86</div></div>
9899
</div><!-- fragment --></div><!-- contents -->
99100
<!-- start footer part -->
100101
<hr class="footer"/><address class="footer"><small>

docs/backend__png_8h.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,10 @@
2222
<table cellspacing="0" cellpadding="0">
2323
<tbody>
2424
<tr style="height: 56px;">
25+
<td id="projectlogo"><img alt="Logo" src="libsxbp.png"/></td>
2526
<td id="projectalign" style="padding-left: 0.5em;">
2627
<div id="projectname">libsxbp
27-
&#160;<span id="projectnumber">v0.25</span>
28+
&#160;<span id="projectnumber">v0.26</span>
2829
</div>
2930
<div id="projectbrief">Experimental generation of 2D spiralling lines based on input binary data.</div>
3031
</td>

docs/backend__png_8h_source.html

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,10 @@
2222
<table cellspacing="0" cellpadding="0">
2323
<tbody>
2424
<tr style="height: 56px;">
25+
<td id="projectlogo"><img alt="Logo" src="libsxbp.png"/></td>
2526
<td id="projectalign" style="padding-left: 0.5em;">
2627
<div id="projectname">libsxbp
27-
&#160;<span id="projectnumber">v0.25</span>
28+
&#160;<span id="projectnumber">v0.26</span>
2829
</div>
2930
<div id="projectbrief">Experimental generation of 2D spiralling lines based on input binary data.</div>
3031
</td>
@@ -92,10 +93,10 @@
9293
</div><!--header-->
9394
<div class="contents">
9495
<a href="backend__png_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"> * This source file forms part of libsxbp, a library which generates</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> * experimental 2D spiral-like shapes based on input binary data.</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#ifndef SAXBOPHONE_SAXBOSPIRAL_BACKEND_PNG_H</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#define SAXBOPHONE_SAXBOSPIRAL_BACKEND_PNG_H</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 &lt;stdbool.h&gt;</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;../saxbospiral.h&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;../render.h&quot;</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"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span>{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keyword">extern</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> <a class="code" href="backend__png_8h.html#a1255dbf61962794ceb7b1b196eae5670">SXBP_PNG_SUPPORT</a>;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<a class="code" href="saxbospiral_8h.html#aaf3547c499b3c2c5909819d6790533e7">sxbp_status_t</a> <a class="code" href="backend__png_8h.html#a993101e4647f141478a2afb4402730c7">sxbp_render_backend_png</a>(</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <a class="code" href="structsxbp__bitmap__t.html">sxbp_bitmap_t</a> bitmap, <a class="code" href="structsxbp__buffer__t.html">sxbp_buffer_t</a>* buffer</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="l00065"></a><span class="lineno"> 65</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;} <span class="comment">// extern &quot;C&quot;</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="comment">// end of header file</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="preprocessor">#endif</span></div><div class="ttc" id="structsxbp__bitmap__t_html"><div class="ttname"><a href="structsxbp__bitmap__t.html">sxbp_bitmap_t</a></div><div class="ttdoc">Used to represent a basic 1-bit, pure black/white bitmap image. </div><div class="ttdef"><b>Definition:</b> render.h:40</div></div>
95-
<div class="ttc" id="structsxbp__buffer__t_html"><div class="ttname"><a href="structsxbp__buffer__t.html">sxbp_buffer_t</a></div><div class="ttdoc">A simple buffer type for storing arrays of bytes. </div><div class="ttdef"><b>Definition:</b> saxbospiral.h:209</div></div>
96+
<div class="ttc" id="structsxbp__buffer__t_html"><div class="ttname"><a href="structsxbp__buffer__t.html">sxbp_buffer_t</a></div><div class="ttdoc">A simple buffer type for storing arrays of bytes. </div><div class="ttdef"><b>Definition:</b> saxbospiral.h:217</div></div>
9697
<div class="ttc" id="backend__png_8h_html_a1255dbf61962794ceb7b1b196eae5670"><div class="ttname"><a href="backend__png_8h.html#a1255dbf61962794ceb7b1b196eae5670">SXBP_PNG_SUPPORT</a></div><div class="ttdeci">const bool SXBP_PNG_SUPPORT</div><div class="ttdoc">Flag for whether PNG output support has been enabled. </div><div class="ttdef"><b>Definition:</b> backend_png.c:81</div></div>
9798
<div class="ttc" id="backend__png_8h_html_a993101e4647f141478a2afb4402730c7"><div class="ttname"><a href="backend__png_8h.html#a993101e4647f141478a2afb4402730c7">sxbp_render_backend_png</a></div><div class="ttdeci">sxbp_status_t sxbp_render_backend_png(sxbp_bitmap_t bitmap, sxbp_buffer_t *buffer)</div><div class="ttdoc">Renders a bitmap image to a PNG image. </div><div class="ttdef"><b>Definition:</b> backend_png.c:84</div></div>
98-
<div class="ttc" id="saxbospiral_8h_html_aaf3547c499b3c2c5909819d6790533e7"><div class="ttname"><a href="saxbospiral_8h.html#aaf3547c499b3c2c5909819d6790533e7">sxbp_status_t</a></div><div class="ttdeci">sxbp_status_t</div><div class="ttdoc">Represents the success or failure status of an executed function. </div><div class="ttdef"><b>Definition:</b> saxbospiral.h:74</div></div>
99+
<div class="ttc" id="saxbospiral_8h_html_aaf3547c499b3c2c5909819d6790533e7"><div class="ttname"><a href="saxbospiral_8h.html#aaf3547c499b3c2c5909819d6790533e7">sxbp_status_t</a></div><div class="ttdeci">sxbp_status_t</div><div class="ttdoc">Represents the success or failure status of an executed function. </div><div class="ttdef"><b>Definition:</b> saxbospiral.h:86</div></div>
99100
</div><!-- fragment --></div><!-- contents -->
100101
<!-- start footer part -->
101102
<hr class="footer"/><address class="footer"><small>

0 commit comments

Comments
 (0)