<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<br>
<br>
<div class="moz-cite-prefix">Den 20.09.2024 16:33, skrev Andrew
Randrianasulu:<br>
</div>
<blockquote type="cite"
cite="mid:CA+rFky4bKZ16-0iqhVouu=rK3TU=e5_ehyheCmb21M0MH8K2Mw@mail.gmail.com">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<div dir="auto">
<div><br>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">пт, 20 сент. 2024 г.,
16:43 Terje J. Hanssen <<a
href="mailto:terjejhanssen@gmail.com"
moz-do-not-send="true" class="moz-txt-link-freetext">terjejhanssen@gmail.com</a>>:<br>
</div>
<blockquote class="gmail_quote"
style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div> <br>
<br>
<div>Den 20.09.2024 01:19, skrev Andrew Randrianasulu:<br>
</div>
<blockquote type="cite">
<div dir="ltr">
<div dir="ltr"><br>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Fri, Sep 20,
2024 at 1:35 AM Terje J. Hanssen <<a
href="mailto:terjejhanssen@gmail.com"
target="_blank" rel="noreferrer"
moz-do-not-send="true"
class="moz-txt-link-freetext">terjejhanssen@gmail.com</a>>
wrote:<br>
</div>
<blockquote class="gmail_quote"
style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div> <br>
<br>
<div>Den 19.09.2024 19:19, skrev Andrew
Randrianasulu:<br>
</div>
<blockquote type="cite">
<div dir="ltr">
<div dir="ltr"><br>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On
Thu, Sep 19, 2024 at 7:52 PM Terje J.
Hanssen via Cin <<a
href="mailto:cin@lists.cinelerra-gg.org" target="_blank"
rel="noreferrer"
moz-do-not-send="true"
class="moz-txt-link-freetext">cin@lists.cinelerra-gg.org</a>>
wrote:<br>
</div>
<blockquote class="gmail_quote"
style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div> If my understanding is correct,
the standard pre-built CinGG
packages are static binaries with
all required thirdparty, ffmpeg and
libs included(?)<br>
<br>
Would it be possible to combine
static and dynamic in one pre-built
so that users via setting could
select what they want, ffmpeg and
libs included or from the system?<br>
Or is two different pre-builts
required?<br>
</div>
</blockquote>
<div><br>
</div>
<div>well, in general you can't link
both statically (piece of library
embedded into binary) and shared
(piece of code loaded on demand or at
launch). There might be some sort of
thunks/shims/wrappers dynamically
dispatching calls to external library
if present (like firefox vs ffmpeg)
but I am not programmist enough for
making this happen even for most
obvious vaapi libs.<br>
<br>
sorry.</div>
</div>
</div>
</blockquote>
<br>
I had "a little hope" something could be done
via a configuration/startup file :)<br>
<br>
In addition to the last sections below (from
1.3.3 in the manual):<br>
"just include "–without-thirdparty" to your
configure script, "and auto means probe and
use the system version"<br>
<br>
<br>
the manual 1.3.8 Unbundled Builds<br>
"There are some generic build scripts included
in the CINELERRA-GG GIT repository<br>
for users who want to do unbundled builds with
ffmpeg already available on their<br>
system. This has been tested on Arch, Ubuntu
18, FreeBSD, Windows10 and Leap<br>
15 (rpm) at the time this was documented. The
names of the build scripts are:<br>
arch.bld, bsd.bld, deb.bld, rpm.bld, and
cygwin.bld. These scripts are in<br>
the blds subdirectory."<br>
<br>
Is there available a built-guide or possible
to list the detailed procedure steps doing
this? ;)<br>
</div>
</blockquote>
<div><br>
</div>
<div>well, step no. 1 - download source repo via
git clone.</div>
<div>git clone git://<a
href="http://git.cinelerra-gg.org/goodguy/cinelerra.git" target="_blank"
rel="noreferrer" moz-do-not-send="true">git.cinelerra-gg.org/goodguy/cinelerra.git</a>
should do it<br>
</div>
<div>Step 2 - cd to directory where ./autogen.sh
located.</div>
<div>2a - set additional environment variables if
you need so via export command<br>
</div>
<div>3) run ./autogen.sh</div>
<div>4) run ./configure with all switches you
need. (for first try probably --with-single-user
so build will be user-local, no need for
installing into system)</div>
<div>my current build uses "./configure
--with-single-user --with-git-ffmpeg=<a
href="https://git.ffmpeg.org/ffmpeg.git"
target="_blank" rel="noreferrer"
moz-do-not-send="true"
class="moz-txt-link-freetext">https://git.ffmpeg.org/ffmpeg.git</a>"
but </div>
<div>ffmpeg.git can be broken at any time by
ffmpeg development process :(<br>
</div>
<div>5) run make</div>
<div>6) if doing single user build also run make
install</div>
<div>7) run it from same directory as bin/cin (you
can "ls bin" just to see if all files were
build/installed)<br>
</div>
<div><br>
</div>
<div>report errors here :) <br>
</div>
<div><br>
</div>
</div>
</div>
</blockquote>
<br>
Thanks, here we go:<br>
<br>
1)<br>
# cd /home<br>
<br>
# git clone git://<a
href="http://git.cinelerra-gg.org/goodguy/cinelerra.git" target="_blank"
rel="noreferrer" moz-do-not-send="true">git.cinelerra-gg.org/goodguy/cinelerra.git</a>
<br>
Cloning into 'cinelerra'...<br>
remote: Enumerating objects: 22646, done.<br>
remote: Counting objects: 100% (22646/22646), done.<br>
remote: Compressing objects: 100% (14288/14288), done.<br>
remote: Total 22646 (delta 11647), reused 17384 (delta
7999), pack-reused 0<br>
Receiving objects: 100% (22646/22646), 405.36 MiB |
16.00 MiB/s, done.<br>
Resolving deltas: 100% (11647/11647), done.<br>
<br>
2)<br>
# cd
/home/cinelerra/cinelerra-5.1/tools/makeappimagetool<br>
<br>
2a) ?<br>
<br>
3)<br>
# ./autogen.sh<br>
<a href="http://configure.ac:19" target="_blank"
rel="noreferrer" moz-do-not-send="true">configure.ac:19</a>:
installing 'cfg/compile'<br>
<a href="http://configure.ac:89" target="_blank"
rel="noreferrer" moz-do-not-send="true">configure.ac:89</a>:
installing 'cfg/config.guess'<br>
<a href="http://configure.ac:89" target="_blank"
rel="noreferrer" moz-do-not-send="true">configure.ac:89</a>:
installing 'cfg/config.sub'<br>
<a href="http://configure.ac:12" target="_blank"
rel="noreferrer" moz-do-not-send="true">configure.ac:12</a>:
installing 'cfg/install-sh'<br>
<a href="http://configure.ac:12" target="_blank"
rel="noreferrer" moz-do-not-send="true">configure.ac:12</a>:
installing 'cfg/missing'<br>
Makefile.am: installing 'cfg/depcomp'<br>
<br>
4)<br>
I didn't understand what to do with 4) "run ./configure
with all switches you need" ?<br>
<br>
So I just started with your <br>
<br>
# ./configure --with-single-user --with-git-ffmpeg=<a
href="https://git.ffmpeg.org/ffmpeg.git"
target="_blank" rel="noreferrer"
moz-do-not-send="true" class="moz-txt-link-freetext">https://git.ffmpeg.org/ffmpeg.git</a><br>
configure: WARNING: unrecognized options:
--with-single-user, --with-git-ffmpeg<br>
configure: loading site script
/usr/share/site/x86_64-pc-linux-gnu<br>
checking for a BSD-compatible install...
/usr/bin/install -c<br>
checking whether sleep supports fractional seconds...
yes<br>
checking filesystem timestamp resolution... 0.01<br>
checking whether build environment is sane... yes<br>
checking for a race-free mkdir -p... /usr/bin/mkdir -p<br>
checking for gawk... gawk<br>
checking whether make sets $(MAKE)... yes<br>
checking whether make supports nested variables... yes<br>
checking xargs -n works... yes<br>
checking for g++... g++<br>
checking whether the C++ compiler works... yes<br>
checking for C++ compiler default output file name...
a.out<br>
checking for suffix of executables... <br>
checking whether we are cross compiling... no<br>
checking for suffix of object files... o<br>
checking whether the compiler supports GNU C++... yes<br>
checking whether g++ accepts -g... yes<br>
checking for g++ option to enable C++11 features... none
needed<br>
checking whether make supports the include directive...
yes (GNU style)<br>
checking dependency style of g++... gcc3<br>
checking for gcc... gcc<br>
checking whether the compiler supports GNU C... yes<br>
checking whether gcc accepts -g... yes<br>
checking for gcc option to enable C11 features... none
needed<br>
checking whether gcc understands -c and -o together...
yes<br>
checking dependency style of gcc... gcc3<br>
checking how to run the C preprocessor... gcc -E<br>
checking for stdio.h... yes<br>
checking for stdlib.h... yes<br>
checking for string.h... yes<br>
checking for inttypes.h... yes<br>
checking for stdint.h... yes<br>
checking for strings.h... yes<br>
checking for sys/stat.h... yes<br>
checking for sys/types.h... yes<br>
checking for unistd.h... yes<br>
checking for boost/filesystem.hpp... yes<br>
checking for boost/filesystem/path.hpp... yes<br>
checking for boost/regex.hpp... yes<br>
checking for libpng16/png.h... yes<br>
checking for zlib.h... yes<br>
checking for jpeglib.h... yes<br>
./configure: line 5910: -O2: command not found<br>
checking for X... no<br>
checking for fcntl.h... yes<br>
checking for memory.h... yes<br>
checking for sys/time.h... yes<br>
checking for unistd.h... (cached) yes<br>
checking for _Bool... yes<br>
checking for stdbool.h that conforms to C99 or later...
yes<br>
checking for inline... inline<br>
checking for int32_t... yes<br>
checking for int64_t... yes<br>
checking for size_t... yes<br>
checking for ssize_t... yes<br>
checking for uint16_t... yes<br>
checking for uint32_t... yes<br>
checking for uint64_t... yes<br>
checking for uint8_t... yes<br>
checking for ptrdiff_t... yes<br>
checking for pid_t... yes<br>
checking for vfork.h... no<br>
checking for sys/param.h... yes<br>
checking for fork... no<br>
checking for vfork... no<br>
checking for getpagesize... no<br>
checking build system type... x86_64-pc-linux-gnu<br>
checking host system type... x86_64-pc-linux-gnu<br>
checking for GNU libc compatible malloc... no<br>
checking for working mmap... no<br>
checking for dup2... no<br>
checking for floor... no<br>
checking for gettimeofday... no<br>
checking for memmove... no<br>
checking for memset... no<br>
checking for munmap... no<br>
checking for pow... no<br>
checking for realpath... no<br>
checking for select... no<br>
checking for sqrt... no<br>
checking for strcasecmp... no<br>
checking for strchr... no<br>
checking for strdup... no<br>
checking for strerror... no<br>
checking for strncasecmp... no<br>
checking for strrchr... no<br>
checking for strstr... no<br>
checking that generated files are newer than
configure... done<br>
configure: creating ./config.status<br>
config.status: creating Makefile<br>
config.status: creating config.h<br>
config.status: config.h is unchanged<br>
config.status: executing depfiles commands<br>
configure: WARNING: unrecognized options:
--with-single-user, --with-git-ffmpeg<br>
</div>
</blockquote>
</div>
</div>
<div dir="auto"><br>
</div>
<div dir="auto">lack of vfork.h and sqrt.h and few others is
concerning!</div>
<div dir="auto"><br>
</div>
<div dir="auto">you probably need to install more development
files, my bulk solution was to drag gtk2-dev in and see how it
drags X libs and other dev files into system as dependency</div>
</div>
</blockquote>
<br>
zypper in gtk2-devel<br>
Loading repository data...<br>
Reading installed packages...<br>
Resolving package dependencies...<br>
<br>
The following 35 NEW packages are going to be installed:<br>
at-spi2-core-devel cairo-devel dbus-1-devel fontconfig-devel
freetype2-devel fribidi-devel gdk-pixbuf-devel glib2-devel
graphite2-devel gtk2-devel<br>
harfbuzz-devel libXfixes-devel libXft-devel libXi-devel
libXrender-devel libXtst-devel libbrotli-devel libbz2-devel
libdatrie-devel libffi-devel<br>
libgirepository-2_0-0 libharfbuzz-cairo0 libicu-devel
libmount-devel libpcre2-posix3 libpixman-1-0-devel libselinux-devel
libsepol-devel libthai-devel<br>
pango-devel pcre2-devel typelib-1_0-GIRepository-3_0
typelib-1_0-GLibUnix-2_0 typelib-1_0-GdkPixdata-2_0
typelib-1_0-Gtk-2_0<br>
<br>
<br>
But still lack of vfork.h and sqrt.h and more<br>
<br>
<blockquote type="cite"
cite="mid:CA+rFky4bKZ16-0iqhVouu=rK3TU=e5_ehyheCmb21M0MH8K2Mw@mail.gmail.com">
<div dir="auto">
<div dir="auto"><br>
</div>
<div dir="auto"><br>
</div>
<div dir="auto">
<div class="gmail_quote">
<blockquote class="gmail_quote"
style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div> <br>
5)<br>
# make<br>
make all-am<br>
make[1]: Entering directory
'/home/cinelerra/cinelerra-5.1/tools/makeappimagetool'<br>
g++ -DHAVE_CONFIG_H -I. -g -O2
-DBOOST_NO_CXX11_SCOPED_ENUMS -Dcimg_display=0
-Dcimg_use_jpeg=1 -Dcimg_use_png=1 -MT appdir.o -MD -MP
-MF .deps/appdir.Tpo -c -o appdir.o appdir.cpp<br>
appdir.cpp: In static member function ‘static bool
linuxdeploy::core::appdir::AppDir::PrivateData::copyFile(const
boost::filesystem::path&, boost::filesystem::path,
boost::filesystem::perms, bool)’:<br>
appdir.cpp:164:57: error: ‘bf::copy_option’ has not been
declared<br>
164 | bf::copy_file(from,
to, bf::copy_option::overwrite_if_exists);<br>
|
^~~~~~~~~~~<br>
make[1]: *** [Makefile:469: appdir.o] Error 1<br>
make[1]: Leaving directory
'/home/cinelerra/cinelerra-5.1/tools/makeappimagetool'<br>
make: *** [Makefile:340: all] Error 2<br>
</div>
</blockquote>
</div>
</div>
<div dir="auto"><br>
</div>
<div dir="auto">this, from short googling, looks like boost
error?</div>
<div dir="auto"><br>
</div>
<div dir="auto">do you have boost 1.85 by any chance?</div>
</div>
</blockquote>
<br>
Yes, I have the following "boost" installed<br>
<br>
<font face="Courier New, Courier, monospace">S |
Name | Type | Version | Arch
| Repository<br>
---+------------------------------------+---------+------------+--------+----------------------<br>
i | boost-devel | package | 1.85.0-1.1 |
noarch | openSUSE-Slowroll-Oss<br>
i | boost-jam | package | 1.85.0-1.1 |
noarch | openSUSE-Slowroll-Oss<br>
i | boost-license1_85_0 | package | 1.85.0-2.1 |
noarch | openSUSE-Slowroll-Oss<br>
i | boost1_85_0-jam | package | 1.85.0-2.1 |
x86_64 | openSUSE-Slowroll-Oss<br>
i | libboost_headers1_85_0-devel | package | 1.85.0-2.1 |
x86_64 | openSUSE-Slowroll-Oss<br>
i | libboost_iostreams1_85_0 | package | 1.85.0-2.1 |
x86_64 | openSUSE-Slowroll-Oss<br>
i | libboost_iostreams1_85_0-x86-64-v3 | package | 1.85.0-2.1 |
x86_64 | openSUSE-Slowroll-Oss<br>
i | libboost_locale1_85_0 | package | 1.85.0-2.1 |
x86_64 | openSUSE-Slowroll-Oss<br>
i | libboost_locale1_85_0-x86-64-v3 | package | 1.85.0-2.1 |
x86_64 | openSUSE-Slowroll-Oss<br>
i | libboost_thread1_85_0 | package | 1.85.0-2.1 |
x86_64 | openSUSE-Slowroll-Oss<br>
i | libboost_thread1_85_0-x86-64-v3 | package | 1.85.0-2.1 |
x86_64 | openSUSE-Slowroll-Oss<br>
<br>
<br>
</font>
<blockquote type="cite"
cite="mid:CA+rFky4bKZ16-0iqhVouu=rK3TU=e5_ehyheCmb21M0MH8K2Mw@mail.gmail.com">
<div dir="auto">
<div dir="auto"><br>
</div>
<div dir="auto">I found similar looking issue with fixed there</div>
<div dir="auto"><br>
</div>
<div dir="auto"><a
href="https://github.com/monero-project/monero/issues/9304"
moz-do-not-send="true" class="moz-txt-link-freetext">https://github.com/monero-project/monero/issues/9304</a><br>
</div>
<div dir="auto"><br>
</div>
<div dir="auto">but for now I thinkwe better to concentrate on
running cingg's main configure, as opposed to makeappimagetool
configure.</div>
</div>
</blockquote>
<br>
I tried 5) make again, but still got the similar errors ....<br>
<br>
To clear up, because I'm a bit confused at the moment:<br>
Are we trying to install Cingg "unbundled, dynamic linked,
single-user" to be able to use the system ffmpeg and libs?<br>
If so, don't we need to edit the configure file then?<br>
<br>
<br>
<br>
<blockquote type="cite"
cite="mid:CA+rFky4bKZ16-0iqhVouu=rK3TU=e5_ehyheCmb21M0MH8K2Mw@mail.gmail.com">
<div dir="auto">
<div dir="auto"><br>
</div>
<div dir="auto"><br>
</div>
<div dir="auto"><br>
</div>
<div dir="auto">
<div class="gmail_quote">
<blockquote class="gmail_quote"
style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div> <br>
6)<br>
# make install<br>
g++ -DHAVE_CONFIG_H -I. -g -O2
-DBOOST_NO_CXX11_SCOPED_ENUMS -Dcimg_display=0
-Dcimg_use_jpeg=1 -Dcimg_use_png=1 -MT appdir.o -MD -MP
-MF .deps/appdir.Tpo -c -o appdir.o appdir.cpp<br>
appdir.cpp: In static member function ‘static bool
linuxdeploy::core::appdir::AppDir::PrivateData::copyFile(const
boost::filesystem::path&, boost::filesystem::path,
boost::filesystem::perms, bool)’:<br>
appdir.cpp:164:57: error: ‘bf::copy_option’ has not been
declared<br>
164 | bf::copy_file(from,
to, bf::copy_option::overwrite_if_exists);<br>
|
^~~~~~~~~~~<br>
make: *** [Makefile:469: appdir.o] Error 1<br>
<br>
<br>
<br>
<br>
<blockquote type="cite">
<div dir="ltr">
<div class="gmail_quote">
<blockquote class="gmail_quote"
style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div> <br>
<br>
<blockquote type="cite">
<div dir="ltr">
<div class="gmail_quote">
<div> </div>
<blockquote class="gmail_quote"
style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div> <br>
Experiences with the latter?<br>
<br>
---------<br>
Refer to extracted sections from the
CinGG manual Chapter 1 -
Installation below:<br>
<br>
If you prefer to not have to take
the time to build CINELERRA-GG
Infinity yourself,<br>
there are pre-built dynamic or
static binaries for various versions
of Ubuntu, Mint,<br>
Suse, Fedora, Debian ........<br>
<br>
The pkgs directory contains the
standard packaged application for
various distros.<br>
This will install a dynamic system
version for users who prefer to have
the binaries<br>
in the system area<br>
---------<br>
<br>
Notes about Building from Git in
your Customized Environment<br>
<br>
Getting a build to work in a custom
environment is not easy. If you have
already installed libraries which
are normally in the thirdparty
build, getting them to be recognized
means you have to install the devel
version so the header files which
match the library interfaces exist.
If you want to build using only the
thirdparty libraries installed in
your system, just include
"–without-thirdparty" to your
configure script. For example:<br>
<br>
./confgure --with-single-user
--disable-static-build
--without-thirdparty<br>
<br>
Below is the list of thirdparty
builds, but this list may have
changed over time.<br>
<br>
Table 1.1: List of thirdparty builds
<br>
<blockquote><font
face="Courier New, Courier, monospace">a52dec yes</font><br>
<font
face="Courier New, Courier, monospace">djbfft yes</font><br>
<font
face="Courier New, Courier, monospace">ffmpeg yes</font><br>
<font
face="Courier New, Courier, monospace">fftw auto</font><br>
<font
face="Courier New, Courier, monospace">flac auto</font><br>
<font
face="Courier New, Courier, monospace">giflib yes</font><br>
<font
face="Courier New, Courier, monospace">ilmbase auto</font><br>
<font
face="Courier New, Courier, monospace">lame auto</font><br>
<font
face="Courier New, Courier, monospace">libavc1394 auto</font><br>
<font
face="Courier New, Courier, monospace">libraw1394 auto</font><br>
<font
face="Courier New, Courier, monospace">libiec61883 auto</font><br>
<font
face="Courier New, Courier, monospace">libdv auto<br>
..........<br>
</font></blockquote>
The yes means force build and auto
means probe and use the system
version if the build operation is
not static. To get your customized
build to work, you need to change
the probe options for the
conflicting libraries from yes to
auto, or even rework the <a
href="http://configure.ac"
target="_blank" rel="noreferrer"
moz-do-not-send="true">configure.ac</a>
script. There may be several
libraries which need special
treatment.<br>
<br>
An example of a problem you might
encounter with your customized
installation is with a52dec which
has probes line
(CHECK_LIB/CHECK_HEADERS) in <a
href="http://configure.ac"
target="_blank" rel="noreferrer"
moz-do-not-send="true">configure.ac</a>,
but djbfft does not. In this case,
djbfft is only built because a52dec
is built, so if your system has
a52dec, set a52dec to auto and see
if that problem is solved by
retrying the build with:<br>
<br>
<font
face="Courier New, Courier, monospace">./confgure --with-single-user
-enable-a52dec=auto .</font><br>
<br>
With persistence, you can get
results, but it may take several
tries to stabilize the build. If you
need help, email the log and
config.log, which is usually
sufficient to determine why a build
failed.<br>
<br>
If you have already installed the
libfdk_aac development package on
your computer because you prefer
this version over the default aac,
you will have to do the following to
get this alternative operational.
The libfdk_aac library is not a part
of CINELERRA-GG by default because
it is not license free.<br>
<br>
<font
face="Courier New, Courier, monospace">export FFMPEG_EXTRA_CFG="
--enable-libfdk-aac
--enable-nonfree"<br>
export EXTRA_LIBS=" -lfdk-aac"<br>
for f in `grep -lw aac
cinelerra-5.1/ffmpeg/audio/*`; do<br>
sed -e
's/\<aac\>/libfdk_aac/' -i
$f<br>
done</font><br>
<br>
<br>
<br>
<br>
</div>
-- <br>
Cin mailing list<br>
<a
href="mailto:Cin@lists.cinelerra-gg.org" target="_blank"
rel="noreferrer"
moz-do-not-send="true"
class="moz-txt-link-freetext">Cin@lists.cinelerra-gg.org</a><br>
<a
href="https://lists.cinelerra-gg.org/mailman/listinfo/cin"
rel="noreferrer noreferrer"
target="_blank"
moz-do-not-send="true"
class="moz-txt-link-freetext">https://lists.cinelerra-gg.org/mailman/listinfo/cin</a><br>
</blockquote>
</div>
</div>
</blockquote>
<br>
</div>
</blockquote>
</div>
</div>
</blockquote>
<br>
</div>
</blockquote>
</div>
</div>
</div>
</blockquote>
<br>
</body>
</html>