From e1a4f423714c3c15038acd57bccbb1901507f198 Mon Sep 17 00:00:00 2001 From: Andrey Volk Date: Mon, 17 Jul 2017 19:24:26 +0300 Subject: [PATCH] FS-10504: [Build-System] Move iLBC from tree to download on windows. --- .gitignore | 1 + Freeswitch.2015.sln | 17 +- libs/ilbc/.update | 1 - libs/ilbc/AUTHORS | 2 - libs/ilbc/COPYING | 3 - libs/ilbc/ChangeLog | 3 - libs/ilbc/INSTALL | 182 --- libs/ilbc/Makefile.am | 90 -- libs/ilbc/NEWS | 1 - libs/ilbc/README | 4 - libs/ilbc/config/.empty | 0 libs/ilbc/configure.ac | 289 ---- libs/ilbc/configure.gnu | 4 - libs/ilbc/debian/changelog | 6 - libs/ilbc/debian/compat | 1 - libs/ilbc/debian/control | 35 - libs/ilbc/debian/copyright | 10 - libs/ilbc/debian/libilbc-dev.install | 4 - libs/ilbc/debian/libilbc-doc.install | 1 - libs/ilbc/debian/libilbc.install | 2 - libs/ilbc/debian/rules | 106 -- libs/ilbc/debian/watch | 7 - libs/ilbc/doc/Makefile.am | 29 - libs/ilbc/doc/css.css | 564 -------- libs/ilbc/doc/libilbc-doxygen | 1229 ----------------- libs/ilbc/doc/wrapper.xsl | 5 - libs/ilbc/gips_iLBClicense.pdf | Bin 108196 -> 0 bytes libs/ilbc/ilbc.spec | 65 - libs/ilbc/ilbc.spec.in | 65 - libs/ilbc/libilbc.2008.vcproj | 489 ------- libs/ilbc/libilbc.2010.vcxproj.filters | 162 --- libs/ilbc/libilbc.vcproj | 357 ----- libs/ilbc/localtests/Makefile.am | 39 - libs/ilbc/localtests/clean.chn | Bin 15002 -> 0 bytes libs/ilbc/localtests/iLBC.INP | Bin 151840 -> 0 bytes libs/ilbc/localtests/iLBC_20ms.BIT | Bin 18012 -> 0 bytes libs/ilbc/localtests/iLBC_20ms_clean.OUT | Bin 151680 -> 0 bytes libs/ilbc/localtests/iLBC_20ms_tlm05.OUT | Bin 151680 -> 0 bytes libs/ilbc/localtests/iLBC_30ms.BIT | Bin 15800 -> 0 bytes libs/ilbc/localtests/iLBC_30ms_clean.OUT | Bin 151680 -> 0 bytes libs/ilbc/localtests/iLBC_30ms_tlm05.OUT | Bin 151680 -> 0 bytes libs/ilbc/localtests/iLBC_test.txt | 10 - libs/ilbc/localtests/short_nb_voice.wav | Bin 192044 -> 0 bytes libs/ilbc/localtests/tlm05.chn | Bin 47480 -> 0 bytes libs/ilbc/src/FrameClassify.c | 131 -- libs/ilbc/src/FrameClassify.h | 27 - libs/ilbc/src/LPCdecode.c | 149 -- libs/ilbc/src/LPCdecode.h | 39 - libs/ilbc/src/LPCencode.c | 229 --- libs/ilbc/src/LPCencode.h | 31 - libs/ilbc/src/Makefile.am | 138 -- libs/ilbc/src/StateConstructW.c | 82 -- libs/ilbc/src/StateConstructW.h | 30 - libs/ilbc/src/StateSearchW.c | 179 --- libs/ilbc/src/StateSearchW.h | 42 - libs/ilbc/src/anaFilter.c | 76 - libs/ilbc/src/anaFilter.h | 29 - libs/ilbc/src/constants.c | 770 ----------- libs/ilbc/src/constants.h | 76 - libs/ilbc/src/createCB.c | 241 ---- libs/ilbc/src/createCB.h | 51 - libs/ilbc/src/doCPLC.c | 236 ---- libs/ilbc/src/doCPLC.h | 31 - libs/ilbc/src/enhancer.c | 686 --------- libs/ilbc/src/enhancer.h | 31 - libs/ilbc/src/filter.c | 166 --- libs/ilbc/src/filter.h | 66 - libs/ilbc/src/gainquant.c | 111 -- libs/ilbc/src/gainquant.h | 34 - libs/ilbc/src/getCBvec.c | 169 --- libs/ilbc/src/getCBvec.h | 29 - libs/ilbc/src/helpfun.c | 334 ----- libs/ilbc/src/helpfun.h | 80 -- libs/ilbc/src/hpInput.c | 70 - libs/ilbc/src/hpInput.h | 28 - libs/ilbc/src/hpOutput.c | 70 - libs/ilbc/src/hpOutput.h | 28 - libs/ilbc/src/iCBConstruct.c | 117 -- libs/ilbc/src/iCBConstruct.h | 35 - libs/ilbc/src/iCBSearch.c | 478 ------- libs/ilbc/src/iCBSearch.h | 35 - libs/ilbc/src/iLBC_decode.c | 646 --------- libs/ilbc/src/iLBC_define.h | 107 -- libs/ilbc/src/iLBC_encode.c | 520 ------- libs/ilbc/src/ilbc.h.in | 37 - libs/ilbc/src/ilbc/ilbc.h | 159 --- libs/ilbc/src/ilbc/version.h | 37 - libs/ilbc/src/ilbc/version.h.in | 37 - libs/ilbc/src/libilbc.dsp | 197 --- libs/ilbc/src/libilbc.sln | 29 - libs/ilbc/src/lsf.c | 269 ---- libs/ilbc/src/lsf.h | 29 - libs/ilbc/src/msvc/gettimeofday.c | 14 - libs/ilbc/src/msvc/ilbc.def | 304 ---- libs/ilbc/src/msvc/inttypes.h | 91 -- libs/ilbc/src/msvc/msvcproj.foot | 7 - libs/ilbc/src/msvc/msvcproj.head | 92 -- libs/ilbc/src/msvc/sys/time.h | 1 - libs/ilbc/src/msvc/tgmath.h | 84 -- libs/ilbc/src/msvc/unistd.h | 31 - libs/ilbc/src/msvc/vc8proj.foot | 11 - libs/ilbc/src/msvc/vc8proj.head | 180 --- libs/ilbc/src/packing.c | 170 --- libs/ilbc/src/packing.h | 59 - libs/ilbc/src/syntFilter.c | 77 -- libs/ilbc/src/syntFilter.h | 28 - libs/ilbc/tests/Makefile.am | 36 - libs/ilbc/tests/ilbc_tests.c | 351 ----- libs/ilbc/tests/regression_tests.sh | 108 -- libs/ilbc/wrapper.xsl | 5 - libs/win32/Download iLBC.2015.vcxproj | 82 ++ libs/{ => win32}/ilbc/libilbc.2015.vcxproj | 350 ++--- src/mod/codecs/mod_ilbc/mod_ilbc.2015.vcxproj | 11 +- w32/ilbc-version.props | 17 + w32/ilbc.props | 15 + 115 files changed, 309 insertions(+), 12819 deletions(-) delete mode 100644 libs/ilbc/.update delete mode 100644 libs/ilbc/AUTHORS delete mode 100644 libs/ilbc/COPYING delete mode 100644 libs/ilbc/ChangeLog delete mode 100644 libs/ilbc/INSTALL delete mode 100644 libs/ilbc/Makefile.am delete mode 100644 libs/ilbc/NEWS delete mode 100644 libs/ilbc/README delete mode 100644 libs/ilbc/config/.empty delete mode 100644 libs/ilbc/configure.ac delete mode 100644 libs/ilbc/configure.gnu delete mode 100644 libs/ilbc/debian/changelog delete mode 100644 libs/ilbc/debian/compat delete mode 100644 libs/ilbc/debian/control delete mode 100644 libs/ilbc/debian/copyright delete mode 100644 libs/ilbc/debian/libilbc-dev.install delete mode 100644 libs/ilbc/debian/libilbc-doc.install delete mode 100644 libs/ilbc/debian/libilbc.install delete mode 100644 libs/ilbc/debian/rules delete mode 100644 libs/ilbc/debian/watch delete mode 100644 libs/ilbc/doc/Makefile.am delete mode 100644 libs/ilbc/doc/css.css delete mode 100644 libs/ilbc/doc/libilbc-doxygen delete mode 100644 libs/ilbc/doc/wrapper.xsl delete mode 100644 libs/ilbc/gips_iLBClicense.pdf delete mode 100644 libs/ilbc/ilbc.spec delete mode 100644 libs/ilbc/ilbc.spec.in delete mode 100644 libs/ilbc/libilbc.2008.vcproj delete mode 100644 libs/ilbc/libilbc.2010.vcxproj.filters delete mode 100644 libs/ilbc/libilbc.vcproj delete mode 100644 libs/ilbc/localtests/Makefile.am delete mode 100644 libs/ilbc/localtests/clean.chn delete mode 100644 libs/ilbc/localtests/iLBC.INP delete mode 100644 libs/ilbc/localtests/iLBC_20ms.BIT delete mode 100644 libs/ilbc/localtests/iLBC_20ms_clean.OUT delete mode 100644 libs/ilbc/localtests/iLBC_20ms_tlm05.OUT delete mode 100644 libs/ilbc/localtests/iLBC_30ms.BIT delete mode 100644 libs/ilbc/localtests/iLBC_30ms_clean.OUT delete mode 100644 libs/ilbc/localtests/iLBC_30ms_tlm05.OUT delete mode 100644 libs/ilbc/localtests/iLBC_test.txt delete mode 100644 libs/ilbc/localtests/short_nb_voice.wav delete mode 100644 libs/ilbc/localtests/tlm05.chn delete mode 100644 libs/ilbc/src/FrameClassify.c delete mode 100644 libs/ilbc/src/FrameClassify.h delete mode 100644 libs/ilbc/src/LPCdecode.c delete mode 100644 libs/ilbc/src/LPCdecode.h delete mode 100644 libs/ilbc/src/LPCencode.c delete mode 100644 libs/ilbc/src/LPCencode.h delete mode 100644 libs/ilbc/src/Makefile.am delete mode 100644 libs/ilbc/src/StateConstructW.c delete mode 100644 libs/ilbc/src/StateConstructW.h delete mode 100644 libs/ilbc/src/StateSearchW.c delete mode 100644 libs/ilbc/src/StateSearchW.h delete mode 100644 libs/ilbc/src/anaFilter.c delete mode 100644 libs/ilbc/src/anaFilter.h delete mode 100644 libs/ilbc/src/constants.c delete mode 100644 libs/ilbc/src/constants.h delete mode 100644 libs/ilbc/src/createCB.c delete mode 100644 libs/ilbc/src/createCB.h delete mode 100644 libs/ilbc/src/doCPLC.c delete mode 100644 libs/ilbc/src/doCPLC.h delete mode 100644 libs/ilbc/src/enhancer.c delete mode 100644 libs/ilbc/src/enhancer.h delete mode 100644 libs/ilbc/src/filter.c delete mode 100644 libs/ilbc/src/filter.h delete mode 100644 libs/ilbc/src/gainquant.c delete mode 100644 libs/ilbc/src/gainquant.h delete mode 100644 libs/ilbc/src/getCBvec.c delete mode 100644 libs/ilbc/src/getCBvec.h delete mode 100644 libs/ilbc/src/helpfun.c delete mode 100644 libs/ilbc/src/helpfun.h delete mode 100644 libs/ilbc/src/hpInput.c delete mode 100644 libs/ilbc/src/hpInput.h delete mode 100644 libs/ilbc/src/hpOutput.c delete mode 100644 libs/ilbc/src/hpOutput.h delete mode 100644 libs/ilbc/src/iCBConstruct.c delete mode 100644 libs/ilbc/src/iCBConstruct.h delete mode 100644 libs/ilbc/src/iCBSearch.c delete mode 100644 libs/ilbc/src/iCBSearch.h delete mode 100644 libs/ilbc/src/iLBC_decode.c delete mode 100644 libs/ilbc/src/iLBC_define.h delete mode 100644 libs/ilbc/src/iLBC_encode.c delete mode 100644 libs/ilbc/src/ilbc.h.in delete mode 100644 libs/ilbc/src/ilbc/ilbc.h delete mode 100644 libs/ilbc/src/ilbc/version.h delete mode 100644 libs/ilbc/src/ilbc/version.h.in delete mode 100644 libs/ilbc/src/libilbc.dsp delete mode 100644 libs/ilbc/src/libilbc.sln delete mode 100644 libs/ilbc/src/lsf.c delete mode 100644 libs/ilbc/src/lsf.h delete mode 100644 libs/ilbc/src/msvc/gettimeofday.c delete mode 100644 libs/ilbc/src/msvc/ilbc.def delete mode 100644 libs/ilbc/src/msvc/inttypes.h delete mode 100644 libs/ilbc/src/msvc/msvcproj.foot delete mode 100644 libs/ilbc/src/msvc/msvcproj.head delete mode 100644 libs/ilbc/src/msvc/sys/time.h delete mode 100644 libs/ilbc/src/msvc/tgmath.h delete mode 100644 libs/ilbc/src/msvc/unistd.h delete mode 100644 libs/ilbc/src/msvc/vc8proj.foot delete mode 100644 libs/ilbc/src/msvc/vc8proj.head delete mode 100644 libs/ilbc/src/packing.c delete mode 100644 libs/ilbc/src/packing.h delete mode 100644 libs/ilbc/src/syntFilter.c delete mode 100644 libs/ilbc/src/syntFilter.h delete mode 100644 libs/ilbc/tests/Makefile.am delete mode 100644 libs/ilbc/tests/ilbc_tests.c delete mode 100755 libs/ilbc/tests/regression_tests.sh delete mode 100644 libs/ilbc/wrapper.xsl create mode 100644 libs/win32/Download iLBC.2015.vcxproj rename libs/{ => win32}/ilbc/libilbc.2015.vcxproj (66%) create mode 100644 w32/ilbc-version.props create mode 100644 w32/ilbc.props diff --git a/.gitignore b/.gitignore index befd13115b..5907ddc8ac 100644 --- a/.gitignore +++ b/.gitignore @@ -250,3 +250,4 @@ libs/PaxHeaders.1693/ libs/lua-*/ libs/g722_1-*/ +libs/ilbc-*/ diff --git a/Freeswitch.2015.sln b/Freeswitch.2015.sln index 8685d8ca70..24aedd061a 100644 --- a/Freeswitch.2015.sln +++ b/Freeswitch.2015.sln @@ -393,7 +393,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libspeex", "libs\win32\spee EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libspeexdsp", "libs\win32\speex\libspeexdsp.2015.vcxproj", "{03207781-0D1C-4DB3-A71D-45C608F28DBD}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libilbc", "libs\ilbc\libilbc.2015.vcxproj", "{9A5DDF08-C88C-4A35-B7F6-D605228446BD}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libilbc", "libs\win32\ilbc\libilbc.2015.vcxproj", "{9A5DDF08-C88C-4A35-B7F6-D605228446BD}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_opal", "src\mod\endpoints\mod_opal\mod_opal.2015.vcxproj", "{05C9FB27-480E-4D53-B3B7-6338E2526666}" EndProject @@ -655,6 +655,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download lua", "libs\win32\ EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download g722_1", "libs\win32\Download g722_1.2015.vcxproj", "{36603FE1-253F-4C2C-AAB6-12927A626135}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download iLBC", "libs\win32\Download iLBC.2015.vcxproj", "{53AADA60-DF12-46FF-BF94-566BBF849336}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution All|Win32 = All|Win32 @@ -2949,6 +2951,18 @@ Global {36603FE1-253F-4C2C-AAB6-12927A626135}.Release|Win32.Build.0 = Release|Win32 {36603FE1-253F-4C2C-AAB6-12927A626135}.Release|x64.ActiveCfg = Release|Win32 {36603FE1-253F-4C2C-AAB6-12927A626135}.Release|x64.Build.0 = Release|Win32 + {53AADA60-DF12-46FF-BF94-566BBF849336}.All|Win32.ActiveCfg = Release|Win32 + {53AADA60-DF12-46FF-BF94-566BBF849336}.All|Win32.Build.0 = Release|Win32 + {53AADA60-DF12-46FF-BF94-566BBF849336}.All|x64.ActiveCfg = Release|Win32 + {53AADA60-DF12-46FF-BF94-566BBF849336}.All|x64.Build.0 = Release|Win32 + {53AADA60-DF12-46FF-BF94-566BBF849336}.Debug|Win32.ActiveCfg = Debug|Win32 + {53AADA60-DF12-46FF-BF94-566BBF849336}.Debug|Win32.Build.0 = Debug|Win32 + {53AADA60-DF12-46FF-BF94-566BBF849336}.Debug|x64.ActiveCfg = Debug|Win32 + {53AADA60-DF12-46FF-BF94-566BBF849336}.Debug|x64.Build.0 = Debug|Win32 + {53AADA60-DF12-46FF-BF94-566BBF849336}.Release|Win32.ActiveCfg = Release|Win32 + {53AADA60-DF12-46FF-BF94-566BBF849336}.Release|Win32.Build.0 = Release|Win32 + {53AADA60-DF12-46FF-BF94-566BBF849336}.Release|x64.ActiveCfg = Release|Win32 + {53AADA60-DF12-46FF-BF94-566BBF849336}.Release|x64.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -3183,5 +3197,6 @@ Global {4F990563-6DFB-45C3-B083-1938C6D7FFA4} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B} {45CD36EE-0AF3-4387-8790-4F11E928299D} = {C120A020-773F-4EA3-923F-B67AF28B750D} {36603FE1-253F-4C2C-AAB6-12927A626135} = {C120A020-773F-4EA3-923F-B67AF28B750D} + {53AADA60-DF12-46FF-BF94-566BBF849336} = {C120A020-773F-4EA3-923F-B67AF28B750D} EndGlobalSection EndGlobal diff --git a/libs/ilbc/.update b/libs/ilbc/.update deleted file mode 100644 index 69f8dda174..0000000000 --- a/libs/ilbc/.update +++ /dev/null @@ -1 +0,0 @@ -Tue Feb 17 10:22:09 CST 2009 diff --git a/libs/ilbc/AUTHORS b/libs/ilbc/AUTHORS deleted file mode 100644 index e7f97120d8..0000000000 --- a/libs/ilbc/AUTHORS +++ /dev/null @@ -1,2 +0,0 @@ -Adapted by Steve Underwood from the source code -supplied in RFC3???. diff --git a/libs/ilbc/COPYING b/libs/ilbc/COPYING deleted file mode 100644 index 4a886e188b..0000000000 --- a/libs/ilbc/COPYING +++ /dev/null @@ -1,3 +0,0 @@ -The license conditions for the original iLBC codec may be found in the file - gips_iLBClicense.pdf -No additional license conditions are claimed over this implementation. diff --git a/libs/ilbc/ChangeLog b/libs/ilbc/ChangeLog deleted file mode 100644 index 441e53844e..0000000000 --- a/libs/ilbc/ChangeLog +++ /dev/null @@ -1,3 +0,0 @@ -08.02.14 - 0.0.1 - Steve Underwood - - The first version. - diff --git a/libs/ilbc/INSTALL b/libs/ilbc/INSTALL deleted file mode 100644 index ef77c3a46f..0000000000 --- a/libs/ilbc/INSTALL +++ /dev/null @@ -1,182 +0,0 @@ -Basic Installation -================== - - These are generic installation instructions. - - The `configure' shell script attempts to guess correct values for -various system-dependent variables used during compilation. It uses -those values to create a `Makefile' in each directory of the package. -It may also create one or more `.h' files containing system-dependent -definitions. Finally, it creates a shell script `config.status' that -you can run in the future to recreate the current configuration, a file -`config.cache' that saves the results of its tests to speed up -reconfiguring, and a file `config.log' containing compiler output -(useful mainly for debugging `configure'). - - If you need to do unusual things to compile the package, please try -to figure out how `configure' could check whether to do them, and mail -diffs or instructions to the address given in the `README' so they can -be considered for the next release. If at some point `config.cache' -contains results you don't want to keep, you may remove or edit it. - - The file `configure.ac' is used to create `configure' by a program -called `autoconf'. You only need `configure.ac' if you want to change -it or regenerate `configure' using a newer version of `autoconf'. - -The simplest way to compile this package is: - - 1. `cd' to the directory containing the package's source code and type - `./configure' to configure the package for your system. If you're - using `csh' on an old version of System V, you might need to type - `sh ./configure' instead to prevent `csh' from trying to execute - `configure' itself. - - Running `configure' takes awhile. While running, it prints some - messages telling which features it is checking for. - - 2. Type `make' to compile the package. - - 3. Optionally, type `make check' to run any self-tests that come with - the package. - - 4. Type `make install' to install the programs and any data files and - documentation. - - 5. You can remove the program binaries and object files from the - source code directory by typing `make clean'. To also remove the - files that `configure' created (so you can compile the package for - a different kind of computer), type `make distclean'. There is - also a `make maintainer-clean' target, but that is intended mainly - for the package's developers. If you use it, you may have to get - all sorts of other programs in order to regenerate files that came - with the distribution. - -Compilers and Options -===================== - - Some systems require unusual options for compilation or linking that -the `configure' script does not know about. You can give `configure' -initial values for variables by setting them in the environment. Using -a Bourne-compatible shell, you can do that on the command line like -this: - CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure - -Or on systems that have the `env' program, you can do it like this: - env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure - -Compiling For Multiple Architectures -==================================== - - You can compile the package for more than one kind of computer at the -same time, by placing the object files for each architecture in their -own directory. To do this, you must use a version of `make' that -supports the `VPATH' variable, such as GNU `make'. `cd' to the -directory where you want the object files and executables to go and run -the `configure' script. `configure' automatically checks for the -source code in the directory that `configure' is in and in `..'. - - If you have to use a `make' that does not supports the `VPATH' -variable, you have to compile the package for one architecture at a time -in the source code directory. After you have installed the package for -one architecture, use `make distclean' before reconfiguring for another -architecture. - -Installation Names -================== - - By default, `make install' will install the package's files in -`/usr/local/bin', `/usr/local/man', etc. You can specify an -installation prefix other than `/usr/local' by giving `configure' the -option `--prefix=PATH'. - - You can specify separate installation prefixes for -architecture-specific files and architecture-independent files. If you -give `configure' the option `--exec-prefix=PATH', the package will use -PATH as the prefix for installing programs and libraries. -Documentation and other data files will still use the regular prefix. - - In addition, if you use an unusual directory layout you can give -options like `--bindir=PATH' to specify different values for particular -kinds of files. Run `configure --help' for a list of the directories -you can set and what kinds of files go in them. - - If the package supports it, you can cause programs to be installed -with an extra prefix or suffix on their names by giving `configure' the -option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. - -Optional Features -================= - - Some packages pay attention to `--enable-FEATURE' options to -`configure', where FEATURE indicates an optional part of the package. -They may also pay attention to `--with-PACKAGE' options, where PACKAGE -is something like `gnu-as' or `x' (for the X Window System). The -`README' should mention any `--enable-' and `--with-' options that the -package recognizes. - - For packages that use the X Window System, `configure' can usually -find the X include and library files automatically, but if it doesn't, -you can use the `configure' options `--x-includes=DIR' and -`--x-libraries=DIR' to specify their locations. - -Specifying the System Type -========================== - - There may be some features `configure' can not figure out -automatically, but needs to determine by the type of host the package -will run on. Usually `configure' can figure that out, but if it prints -a message saying it can not guess the host type, give it the -`--host=TYPE' option. TYPE can either be a short name for the system -type, such as `sun4', or a canonical name with three fields: - CPU-COMPANY-SYSTEM - -See the file `config.sub' for the possible values of each field. If -`config.sub' isn't included in this package, then this package doesn't -need to know the host type. - - If you are building compiler tools for cross-compiling, you can also -use the `--target=TYPE' option to select the type of system they will -produce code for and the `--build=TYPE' option to select the type of -system on which you are compiling the package. - -Sharing Defaults -================ - - If you want to set default values for `configure' scripts to share, -you can create a site shell script called `config.site' that gives -default values for variables like `CC', `cache_file', and `prefix'. -`configure' looks for `PREFIX/share/config.site' if it exists, then -`PREFIX/etc/config.site' if it exists. Or, you can set the -`CONFIG_SITE' environment variable to the location of the site script. -A warning: not all `configure' scripts look for a site script. - -Operation Controls -================== - - `configure' recognizes the following options to control how it -operates. - -`--cache-file=FILE' - Use and save the results of the tests in FILE instead of - `./config.cache'. Set FILE to `/dev/null' to disable caching, for - debugging `configure'. - -`--help' - Print a summary of the options to `configure', and exit. - -`--quiet' -`--silent' -`-q' - Do not print messages saying which checks are being made. To - suppress all normal output, redirect it to `/dev/null' (any error - messages will still be shown). - -`--srcdir=DIR' - Look for the package's source code in directory DIR. Usually - `configure' can determine that directory automatically. - -`--version' - Print the version of Autoconf used to generate the `configure' - script, and exit. - -`configure' also accepts some other, not widely useful, options. diff --git a/libs/ilbc/Makefile.am b/libs/ilbc/Makefile.am deleted file mode 100644 index 419a7aaf5b..0000000000 --- a/libs/ilbc/Makefile.am +++ /dev/null @@ -1,90 +0,0 @@ -## -## iLBC - a library for the iLBC codec -## -## Makefile.am -- Process this file with automake to produce Makefile.in -## -## This program is free software; you can redistribute it and/or modify -## it under the terms of the Lesser GNU General Public License version 2.1, as -## published by the Free Software Foundation. -## -## This program is distributed in the hope that it will be useful, -## but WITHOUT ANY WARRANTY; without even the implied warranty of -## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -## GNU General Public License for more details. -## -## You should have received a copy of the GNU General Public License -## along with this program; if not, write to the Free Software -## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -## -## $Id: Makefile.am,v 1.1.1.1 2008/02/15 12:15:55 steveu Exp $ - -AM_CFLAGS = $(COMP_VENDOR_CFLAGS) - -noinst_SCRIPTS = ilbc.spec - -MAINTAINERCLEANFILES = Makefile.in - -EXTRA_DIST = ilbc.spec \ - wrapper.xsl \ - gips_iLBClicense.pdf \ - libilbc.vcproj \ - doc/libilbc-doxygen \ - src/ilbc/version.h.in \ - src/libilbc.dsp \ - src/libilbc.sln \ - src/msvc/gettimeofday.c \ - src/msvc/inttypes.h \ - src/msvc/tgmath.h \ - src/msvc/unistd.h \ - src/msvc/sys/time.h \ - src/msvc/ilbc.def \ - src/msvc/msvcproj.head \ - src/msvc/msvcproj.foot \ - src/msvc/vc8proj.head \ - src/msvc/vc8proj.foot \ - debian/changelog \ - debian/compat \ - debian/control \ - debian/copyright \ - debian/libilbc.install \ - debian/libilbc-dev.install \ - debian/libilbc-doc.install \ - debian/rules \ - debian/watch - -if COND_DOC - MAYBE_DOC=doc -endif -if COND_TESTS - MAYBE_TESTS=tests -endif -SUBDIRS = src $(MAYBE_DOC) $(MAYBE_TESTS) - -DIST_SUBDIRS = src doc tests localtests - -faq: faq.xml - cd faq ; xsltproc ../wrapper.xsl ../faq.xml - -rpm: rpm-build - -rpm-build: - $(MAKE) -$(MAKEFLAGS) bump.rpm.release - $(MAKE) -$(MAKEFLAGS) dist - rm -rf rpm/BUILD/* - rm -f rpm/RPMS/*/* - rm -f rpm/SOURCES/* - rm -f rpm/SPECS/* - rm -f rpm/SRPMS/* - rpm -ta --sign @PACKAGE@-@VERSION@.tar.gz - -bump.rpm.release: ilbc.spec - VERSION="x"; \ - test -f $(srcdir)/rpm.release && . $(srcdir)/rpm.release; \ - NEXT_RELEASE=0; \ - test "$$VERSION" = "@VERSION@" && NEXT_RELEASE="$$RELEASE"; \ - RELEASE=`expr $$NEXT_RELEASE + 1`; \ - echo "VERSION=@VERSION@" >$(srcdir)/rpm.release; \ - echo "RELEASE=$$RELEASE" >>$(srcdir)/rpm.release; \ - sed 's/^Release: .*/Release: '$$RELEASE'/' \ - ilbc.spec.new; \ - mv ilbc.spec.new ilbc.spec diff --git a/libs/ilbc/NEWS b/libs/ilbc/NEWS deleted file mode 100644 index 0d09503644..0000000000 --- a/libs/ilbc/NEWS +++ /dev/null @@ -1 +0,0 @@ -No news is good news! \ No newline at end of file diff --git a/libs/ilbc/README b/libs/ilbc/README deleted file mode 100644 index db6017b305..0000000000 --- a/libs/ilbc/README +++ /dev/null @@ -1,4 +0,0 @@ -VoIPcodecs 0.0.1 - A set of commonly used, unencumbered, codecs for VoIP ------------------------------------------------------------------------- - -Steve Underwood diff --git a/libs/ilbc/config/.empty b/libs/ilbc/config/.empty deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/libs/ilbc/configure.ac b/libs/ilbc/configure.ac deleted file mode 100644 index b3f7c5f77c..0000000000 --- a/libs/ilbc/configure.ac +++ /dev/null @@ -1,289 +0,0 @@ -# -# iLBC - a library for the iLBC codec -# -# configure.ac -- Process this file with autoconf to produce configure -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License version 2, as -# published by the Free Software Foundation. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -# -# $Id: configure.ac,v 1.1.1.1 2008/02/15 12:15:54 steveu Exp $ - -# @start 1 - -AC_INIT([ilbc], [0.0.1]) - -CFLAGS="$CFLAGS $CONFIGURE_CFLAGS" -CXXFLAGS="$CXXFLAGS $CONFIGURE_CXXFLAGS" -LDFLAGS="$LDFLAGS $CONFIGURE_LDFLAGS" - -AC_DEFUN([AX_COMPILER_VENDOR], -[ -AC_CACHE_CHECK([for _AC_LANG compiler vendor], ax_cv_[]_AC_LANG_ABBREV[]_compiler_vendor, - [ax_cv_[]_AC_LANG_ABBREV[]_compiler_vendor=unknown - # note: don't check for GCC first, since some other compilers define __GNUC__ - for ventest in intel:__ICC,__ECC,__INTEL_COMPILER ibm:__xlc__,__xlC__,__IBMC__,__IBMCPP__ gnu:__GNUC__ sun:__SUNPRO_C,__SUNPRO_CC hp:__HP_cc,__HP_aCC dec:__DECC,__DECCXX,__DECC_VER,__DECCXX_VER borland:__BORLANDC__,__TURBOC__ comeau:__COMO__ cray:_CRAYC kai:__KCC lcc:__LCC__ metrowerks:__MWERKS__ sgi:__sgi,sgi microsoft:_MSC_VER watcom:__WATCOMC__ portland:__PGI; do - vencpp="defined("`echo $ventest | cut -d: -f2 | sed 's/,/) || defined(/g'`")" - AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[ -#if !($vencpp) - thisisanerror; -#endif -])], [ax_cv_]_AC_LANG_ABBREV[_compiler_vendor=`echo $ventest | cut -d: -f1`; break]) - done - ]) -]) - -ILBC_LT_CURRENT=0 -ILBC_LT_REVISION=2 -ILBC_LT_AGE=0 - -AC_SUBST(ILBC_LT_CURRENT) -AC_SUBST(ILBC_LT_REVISION) -AC_SUBST(ILBC_LT_AGE) - -AC_CONFIG_SRCDIR([src/iLBC_encode.c]) -AC_CONFIG_AUX_DIR(config) -AC_CONFIG_HEADERS([src/config.h:config-h.in]) -AM_INIT_AUTOMAKE - -AC_CANONICAL_HOST -AC_CANONICAL_BUILD -AC_PROG_CC -AC_PROG_CXX -AC_PROG_GCC_TRADITIONAL -AC_PROG_LIBTOOL -AC_PROG_INSTALL -AC_LANG([C]) - -AX_COMPILER_VENDOR - -if test "${build}" != "${host}" -then - # If we are doing a Canadian Cross, in which the host and build systems - # are not the same, we set reasonable default values for the tools. - - CC=${CC-${host_alias}-gcc} - CFLAGS=${CFLAGS-"-g -O2"} - CXX=${CXX-${host_alias}-c++} - CXXFLAGS=${CXXFLAGS-"-g -O2"} - CC_FOR_BUILD=${CC_FOR_BUILD-gcc} -else - # Set reasonable default values for some tools even if not Canadian. - # Of course, these are different reasonable default values, originally - # specified directly in the Makefile. - # We don't export, so that autoconf can do its job. - # Note that all these settings are above the fragment inclusion point - # in Makefile.in, so can still be overridden by fragments. - # This is all going to change when we autoconfiscate... - CC_FOR_BUILD="\$(CC)" - AC_PROG_CC - - # We must set the default linker to the linker used by gcc for the correct - # operation of libtool. If LD is not defined and we are using gcc, try to - # set the LD default to the ld used by gcc. - if test -z "$LD" - then - if test "$GCC" = yes - then - case $build in - *-*-mingw*) - gcc_prog_ld=`$CC -print-prog-name=ld 2>&1 | tr -d '\015'` ;; - *) - gcc_prog_ld=`$CC -print-prog-name=ld 2>&1` ;; - esac - case $gcc_prog_ld in - # Accept absolute paths. - [[\\/]* | [A-Za-z]:[\\/]*)] - LD="$gcc_prog_ld" ;; - esac - fi - fi - - CXX=${CXX-"c++"} - CFLAGS=${CFLAGS-"-g -O2"} - CXXFLAGS=${CXXFLAGS-"-g -O2"} -fi - -AC_C_CONST -AC_C_INLINE -AC_C_VOLATILE - -AC_CHECK_TYPES(long long) -AC_CHECK_TYPES(long double) - -AC_TYPE_SIGNAL - -AC_ARG_ENABLE(doc, [ --enable-doc Build the documentation]) -AC_ARG_ENABLE(tests, [ --enable-tests Build the test programs]) -AC_ARG_ENABLE(mmx, [ --enable-mmx Enable MMX support]) -AC_ARG_ENABLE(sse, [ --enable-sse Enable SSE support]) -AC_ARG_ENABLE(fixed_point, [ --enable-fixed-point Enable fixed point support]) - -AC_FUNC_ERROR_AT_LINE -AC_FUNC_VPRINTF -AC_FUNC_MALLOC -AC_FUNC_MEMCMP -AC_FUNC_REALLOC -AC_FUNC_SELECT_ARGTYPES - -AC_CHECK_FUNCS([memmove]) -AC_CHECK_FUNCS([memset]) -AC_CHECK_FUNCS([select]) -AC_CHECK_FUNCS([strcasecmp]) -AC_CHECK_FUNCS([strchr]) -AC_CHECK_FUNCS([strdup]) -AC_CHECK_FUNCS([strerror]) -AC_CHECK_FUNCS([strstr]) -AC_CHECK_FUNCS([strtol]) -AC_CHECK_FUNCS([gettimeofday]) - -AC_HEADER_STDC -AC_HEADER_SYS_WAIT -AC_HEADER_TIME - -# Check for header files. -AC_CHECK_HEADERS([socket.h]) -AC_CHECK_HEADERS([inttypes.h], [INSERT_INTTYPES_HEADER="#include "]) -AC_CHECK_HEADERS([stdint.h], [INSERT_STDINT_HEADER="#include "]) -AC_CHECK_HEADERS([unistd.h]) -AC_CHECK_HEADERS([stdlib.h]) -AC_CHECK_HEADERS([string.h]) -AC_CHECK_HEADERS([strings.h]) -AC_CHECK_HEADERS([malloc.h]) -AC_CHECK_HEADERS([tgmath.h], [INSERT_TGMATH_HEADER="#include "]) -AC_CHECK_HEADERS([math.h], [INSERT_MATH_HEADER="#include "]) -AC_CHECK_HEADERS([float.h]) -AC_CHECK_HEADERS([fcntl.h]) -AC_CHECK_HEADERS([sys/time.h]) -AC_CHECK_HEADERS([sys/select.h]) -AC_CHECK_HEADERS([sys/ioctl.h]) -AC_CHECK_HEADERS([sys/fcntl.h]) -AC_CHECK_HEADERS([audiofile.h]) -if test "${build}" = "${host}" -then - AC_CHECK_HEADERS([X11/X.h]) -fi - -AC_LANG([C++]) - -if test "${build}" = "${host}" -then - case "${host}" in - x86_64-*) - AC_CHECK_FILE([${prefix}/lib64], libdir='$(exec_prefix)/lib64') - ;; - esac -fi - -AC_LANG([C]) - -if test "${build}" = "${host}" -then - case "${host}" in - x86_64-*) - # X86_64 Linux machines may have both 64 bit and 32 bit libraries. We need to choose the right set - AC_CHECK_FILE([/usr/X11R6/lib64], [TESTLIBS="$TESTLIBS -L/usr/X11R6/lib64"], AC_CHECK_FILE([/usr/X11R6/lib], [TESTLIBS="$TESTLIBS -L/usr/X11R6/lib"])) - ;; - esac -fi - -# Checks for libraries. -AC_CHECK_LIB([m], [cos]) -AC_CHECK_LIB([m], [pow]) -AC_CHECK_LIB([m], [sqrt]) -if test -n "$enable_tests" ; then - AC_LANG([C++]) - AC_LANG([C]) - AC_CHECK_LIB([audiofile], [afOpenFile], TESTLIBS="$TESTLIBS -laudiofile", AC_MSG_ERROR("Can't make tests without libaudiofile (does your system require a libaudiofile-devel package?)")) - AC_CHECK_LIB([fftw3], [fftw_plan_dft_1d], TESTLIBS="$TESTLIBS -lfftw3") - AC_CHECK_LIB([fftw], [fftw_create_plan], TESTLIBS="$TESTLIBS -lfftw") -fi - -AC_ARG_ENABLE([enable_64], [AS_HELP_STRING([--enable-64], [Enable 64bit compilation])], [enable_64="$enableval"], [enable_64="no"]) - -case "${ax_cv_c_compiler_vendor}" in -gnu) - COMP_VENDOR_CFLAGS="-std=gnu99 -ffast-math -Wall -Wunused-variable -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes" - if test "$enable_sse" = "yes" ; then - COMP_VENDOR_CFLAGS="-msse $COMP_VENDOR_CFLAGS" - fi - if test "$enable_mmx" = "yes" ; then - COMP_VENDOR_CFLAGS="-mmmx $COMP_VENDOR_CFLAGS" - fi - ;; -sun) - COMP_VENDOR_CFLAGS="-xc99=all -mt -xCC -D__FUNCTION__=__func__ -xvpara" - if test "$enable_64" = "yes" ; then - COMP_VENDOR_CFLAGS="-m64 $COMP_VENDOR_CFLAGS" - fi - ;; -*) - COMP_VENDOR_CFLAGS="-std=c99 -Wall -Wunused-variable -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes" - ;; -esac - -COMP_VENDOR_CFLAGS="-DNDEBUG $COMP_VENDOR_CFLAGS" - -AM_CONDITIONAL([COND_DOC], [test "$enable_doc" = yes]) -AM_CONDITIONAL([COND_TESTS], [test "$enable_tests" = yes]) -AM_CONDITIONAL([COND_MMX], [test "$enable_mmx" = yes]) -AM_CONDITIONAL([COND_SSE], [test "$enable_sse" = yes]) -if test "$enable_fixed_point" = "yes" ; then - AC_DEFINE([ILBC_USE_FIXED_POINT], [1], [Enable fixed point processing, where possible, instead of floating point]) - ILBC_USE_FIXED_POINT="#define ILBC_USE_FIXED_POINT 1" -else -# -# So far we deal with the embedded ARM, Blackfin, MIPS, TI DSP and XScale processors as -# things which lack fast hardware floating point. -# -# Other candidates would be the small embedded Power PCs. -# - case $basic_machine in - arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] \ - | bfin \ - | mips | mipsbe | mipseb | mipsel | mipsle \ - | tic54x | c54x* | tic55x | c55x* | tic6x | c6x* \ - | xscale | xscalee[bl] \ - | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ - | bfin-* \ - | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ - | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ - | xscale-* | xscalee[bl]-* ) - AC_DEFINE([ILBC_USE_FIXED_POINT], [1], [Enable fixed point processing, where possible, instead of floating point]) - ILBC_USE_FIXED_POINT="#define ILBC_USE_FIXED_POINT 1" - ;; - *) - ILBC_USE_FIXED_POINT="#undef ILBC_USE_FIXED_POINT" - ;; - esac -fi - -AC_SUBST(CC_FOR_BUILD) -AC_SUBST(COMP_VENDOR_CFLAGS) -AC_SUBST(TESTLIBS) -AC_SUBST(ILBC_USE_FIXED_POINT) -AC_SUBST(INSERT_INTTYPES_HEADER) -AC_SUBST(INSERT_STDINT_HEADER) -AC_SUBST(INSERT_TGMATH_HEADER) -AC_SUBST(INSERT_MATH_HEADER) - -AC_CONFIG_FILES([Makefile - doc/Makefile - localtests/Makefile - src/Makefile - src/ilbc.h - tests/Makefile - ilbc.spec]) - -AC_OUTPUT - -# @end 1 diff --git a/libs/ilbc/configure.gnu b/libs/ilbc/configure.gnu deleted file mode 100644 index 194fca1f63..0000000000 --- a/libs/ilbc/configure.gnu +++ /dev/null @@ -1,4 +0,0 @@ -#! /bin/sh -srcpath=$(dirname $0) -$srcpath/configure "$@" --with-pic --disable-shared - diff --git a/libs/ilbc/debian/changelog b/libs/ilbc/debian/changelog deleted file mode 100644 index ff80f6ad07..0000000000 --- a/libs/ilbc/debian/changelog +++ /dev/null @@ -1,6 +0,0 @@ -ilbc (0.0.1) unstable; urgency=low - - [ Steve Underwood ] - * Begun - - -- Steve Underwood Thu, 15 Feb 2008 09:53:06 +0300 diff --git a/libs/ilbc/debian/compat b/libs/ilbc/debian/compat deleted file mode 100644 index b8626c4cff..0000000000 --- a/libs/ilbc/debian/compat +++ /dev/null @@ -1 +0,0 @@ -4 diff --git a/libs/ilbc/debian/control b/libs/ilbc/debian/control deleted file mode 100644 index 74becca036..0000000000 --- a/libs/ilbc/debian/control +++ /dev/null @@ -1,35 +0,0 @@ -Source: ilbc -Section: libs -Priority: optional -Maintainer: Debian VoIP Team -Uploaders: Jose Carlos Garcia Sogo , Kilian Krause , Santiago Garcia Mantinan , Mark Purcell , Tzafrir Cohen , Santiago Ruano Rincón -Build-Depends: debhelper (>= 4.0.0), dpatch, doxygen, autotools-dev -Standards-Version: 3.7.2 -XS-Vcs-Svn: svn://svn.debian.org/pkg-voip/ -XS-Vcs-Browser: http://svn.debian.org/wsvn/pkg-voip/ - -Package: libilbc -Architecture: any -Depends: ${shlibs:Depends} -Conflicts: libilbc0, libilbc1, libilbc2 -Description: Telephony signal processing library - This package contains the iLBC low bit rate speech codec. - . - This package contains the shared library. - -Package: libilbc-dev -Section: libdevel -Architecture: any -Depends: libilbc3 (= ${Source-Version}) -Description: Telephony signal processing library - This package contains the iLBC low bit rate speech codec. - . - This package contains the static library and development headers. - . - Homepage: http://www.soft-switch.org/ - -Package: libilbc-doc -Section: doc -Architecture: all -Description: Documentation for the ilbc signal processing library - This package contains the iLBC low bit rate speech codec. diff --git a/libs/ilbc/debian/copyright b/libs/ilbc/debian/copyright deleted file mode 100644 index 0ee7324589..0000000000 --- a/libs/ilbc/debian/copyright +++ /dev/null @@ -1,10 +0,0 @@ -This package was debianized by Steve Underwood on -Thu, 15 Feb 2008 15:22:58 +0100. - -It was downloaded from http://soft-switch.org/downloads/voipcodecs/ - -Copyright: The Internet Society and Steve Underwood - -License: - -Global IP Sound iLBC Public License, v2.0 diff --git a/libs/ilbc/debian/libilbc-dev.install b/libs/ilbc/debian/libilbc-dev.install deleted file mode 100644 index 8ea73c9c80..0000000000 --- a/libs/ilbc/debian/libilbc-dev.install +++ /dev/null @@ -1,4 +0,0 @@ -debian/tmp/usr/include -debian/tmp/usr/lib/libilbc.so -debian/tmp/usr/lib/libilbc.la -debian/tmp/usr/lib/libilbc.a diff --git a/libs/ilbc/debian/libilbc-doc.install b/libs/ilbc/debian/libilbc-doc.install deleted file mode 100644 index d2ce944965..0000000000 --- a/libs/ilbc/debian/libilbc-doc.install +++ /dev/null @@ -1 +0,0 @@ -doc/api/html usr/share/doc/libilbc-doc/api/ diff --git a/libs/ilbc/debian/libilbc.install b/libs/ilbc/debian/libilbc.install deleted file mode 100644 index b0ed90b2dc..0000000000 --- a/libs/ilbc/debian/libilbc.install +++ /dev/null @@ -1,2 +0,0 @@ -debian/tmp/usr/lib/libilbc.so.0.* -debian/tmp/usr/lib/libilbc.so.0 diff --git a/libs/ilbc/debian/rules b/libs/ilbc/debian/rules deleted file mode 100644 index e47ee44051..0000000000 --- a/libs/ilbc/debian/rules +++ /dev/null @@ -1,106 +0,0 @@ -#!/usr/bin/make -f - -# Uncomment this to turn on verbose mode. -#export DH_VERBOSE=1 - -DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) -DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) - -DEBVERSION:=$(shell head -n 1 debian/changelog \ - | sed -e 's/^[^(]*(\([^)]*\)).*/\1/') -ORIGTARVER:=$(shell echo $(DEBVERSION) | sed -e 's/^.*://' -e 's/-[0-9.]*$$//')# -e 's/.dfsg$$//' -e 's/~//') - -UPVERSION:=$(shell echo $(ORIGTARVER) | tr -d '~') - -FILENAME := ilbc_$(ORIGTARVER).orig.tar.gz -FULLNAME := ilbc-$(UPVERSION) -URL := http://soft-switch.org/downloads/voipcodecs/ilbc-$(UPVERSION).tgz - -CFLAGS = -Wall -g - -ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) - CFLAGS += -O0 -else - CFLAGS += -O2 -endif - -include /usr/share/dpatch/dpatch.make - - -autotools: patch-stamp - ln -s /usr/share/misc/config.sub config.sub - ln -s /usr/share/misc/config.guess config.guess - touch autotools - -config.status: autotools configure - dh_testdir - CFLAGS="$(CFLAGS)" ./configure \ - --host=$(DEB_HOST_GNU_TYPE) \ - --build=$(DEB_BUILD_GNU_TYPE) \ - --prefix=/usr \ - --mandir=\$${prefix}/share/man \ - --infodir=\$${prefix}/share/info \ - --enable-doc - -build: build-stamp - -build-stamp: config.status - dh_testdir - $(MAKE) - touch build-stamp - -clean: clean-patched unpatch -clean-patched: - dh_testdir - dh_testroot - rm -f build-stamp autotools - -$(MAKE) distclean - - -$(RM) -f config.sub - -$(RM) -f config.guess - - dh_clean - -install: build-stamp - dh_testdir - dh_testroot - dh_clean -k - $(MAKE) install DESTDIR=$(CURDIR)/debian/tmp - -binary-indep: build-stamp install - dh_testdir -i - dh_testroot -i - dh_installchangelogs -i ChangeLog - dh_installdocs -i DueDiligence - dh_install -i - dh_compress -i - dh_fixperms -i - dh_installdeb -i - dh_gencontrol -i - dh_md5sums -i - dh_builddeb -i - -binary-arch: build-stamp install - dh_testdir -a - dh_testroot -a - dh_installchangelogs -a ChangeLog - dh_installdocs -a DueDiligence - dh_install -a - dh_strip -a - dh_compress -a - dh_fixperms -a - dh_makeshlibs -a - dh_installdeb -a - dh_shlibdeps -a - dh_gencontrol -a - dh_md5sums -a - dh_builddeb -a - -get-orig-source: - -@@dh_testdir - @@[ -d ../tarballs/. ]||mkdir -p ../tarballs - @@echo Downloading $(FILENAME) from $(URL) ... - @@wget -N -nv -T10 -t3 -O ../tarballs/$(FILENAME) $(URL) - -binary: binary-indep binary-arch -.PHONY: build clean binary-indep binary-arch binary install patch unpatch diff --git a/libs/ilbc/debian/watch b/libs/ilbc/debian/watch deleted file mode 100644 index 6cfe3e0200..0000000000 --- a/libs/ilbc/debian/watch +++ /dev/null @@ -1,7 +0,0 @@ -# See uscan(1) for format - -# Compulsory line, this is a version 3 file -version=3 - -# -http://soft-switch.org/downloads/voipcodecs/ ilbc-(.*)\.tgz debian svn-upgrade diff --git a/libs/ilbc/doc/Makefile.am b/libs/ilbc/doc/Makefile.am deleted file mode 100644 index e1b95b796b..0000000000 --- a/libs/ilbc/doc/Makefile.am +++ /dev/null @@ -1,29 +0,0 @@ -## -## iLBC - a library for the iLBC codec -## -## Makefile.am -- Process this file with automake to produce Makefile.in -## -## This program is free software; you can redistribute it and/or modify -## it under the terms of the GNU General Public License version 2, as -## published by the Free Software Foundation. -## -## This program is distributed in the hope that it will be useful, -## but WITHOUT ANY WARRANTY; without even the implied warranty of -## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -## GNU General Public License for more details. -## -## You should have received a copy of the GNU General Public License -## along with this program; if not, write to the Free Software -## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -## -## $Id: Makefile.am,v 1.1.1.1 2008/02/15 12:15:55 steveu Exp $ - -MAINTAINERCLEANFILES = Makefile.in - -EXTRA_DIST = css.css \ - wrapper.xsl - -all: doxydocs - -doxydocs: - doxygen libilbc-doxygen diff --git a/libs/ilbc/doc/css.css b/libs/ilbc/doc/css.css deleted file mode 100644 index 2f07200bdc..0000000000 --- a/libs/ilbc/doc/css.css +++ /dev/null @@ -1,564 +0,0 @@ -body { - background-image: url("../images/weave.jpg"); - font-family: Verdana, Arial, Helvetica, Sans-serif; - color: black; - margin-right: 20px; - margin-left: 20px; -} - -h1 { - text-align: center; -} - -h2 { - font-family: Verdana, Arial, Helvetica, Sans-serif; - border-color: #c00000; - color : black; - margin-top: 0.8em; - border-style: solid; - border-width: 0px 0px 3px 0.5em; - line-height : 130%; -} - -h3 { - font-family: Verdana, Arial, Helvetica, Sans-serif; - border-color: #f02020; - color : black; - border-width: 0px 0px 2px 0.5em; - border-style: solid; - margin-right: 20%; - line-height : 130%; -} -caption { - font-weight: bold -} -a.qindex {} -a.qindexRef {} -a.el { - text-decoration: none; - font-weight: bold -} -a.elRef { - font-weight: bold -} -a.code { - text-decoration: none; - font-weight: normal; - color: #4444ee -} -a.codeRef { - font-weight: normal; - color: #4444ee -} -a:hover { - text-decoration: none; - background-color: #f2f2ff -} -dl.el { - margin-left: -1cm -} -div.fragment { - width: 100%; - border: none; - background-color: #eeeeee -} -div.ah { - background-color: black; - font-weight: bold; - color: #ffffff; - margin-bottom: 3px; - margin-top: 3px -} - -td { - font-family: Verdana, Arial, Helvetica, Sans-serif; - font-weight: bold; -} - -.navheader { - font-family: Verdana, Arial, Helvetica, Sans-serif; - background-color: #B2B2ff; - font-weight: bold; -} - -.navfooter { - font-family: Verdana, Arial, Helvetica, Sans-serif; - background-color: #B2B2ff; - font-weight: bold; -} - -table.menu { - background-color: #000066; - font-weight: bold; - text-align: center; - width: 100%; -} - -tr.menu { - background-color: #ccffff; - font-weight: bold; - text-align: center; -} -td.menu { - background-color: #f2e0d0; - font-weight: bold; - text-align: center; -} - -td.md { - background-color: #f2f2ff; - font-weight: bold; -} -td.mdname1 { - background-color: #f2f2ff; - font-weight: bold; - color: #602020; -} -td.mdname { - background-color: #f2f2ff; - font-weight: bold; - color: #602020; - width: 600px; -} -div.groupHeader { - margin-left: 16px; - margin-top: 12px; - margin-bottom: 6px; - font-weight: bold -} -div.groupText { - margin-left: 16px; - font-style: italic; - font-size: smaller -} -td.indexkey { - font-family: Verdana, Arial, Helvetica, Sans-serif; - background-color: #eeeeff; - font-weight: bold; - padding-right : 10px; - padding-top : 2px; - padding-left : 10px; - padding-bottom : 2px; - margin-left : 0px; - margin-right : 0px; - margin-top : 2px; - margin-bottom : 2px -} -td.indexvalue { - font-family: Verdana, Arial, Helvetica, Sans-serif; - background-color: #eeeeff; - font-style: italic; - padding-right : 10px; - padding-top : 2px; - padding-left : 10px; - padding-bottom : 2px; - margin-left : 0px; - margin-right : 0px; - margin-top : 2px; - margin-bottom : 2px -} -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 -} -em { - color: #990000; - background-color: transparent; -} -h1,h2,h3,h4,h5,h6,p,center,td,th,ul,dl,div { - font-family: Geneva, Arial, Helvetica, sans-serif; -} -body,td { - font-size: 90%; -} -h1 { - text-align: center; - font-size: 160%; -} -h2 { - font-size: 120%; -} -h3 { - font-size: 100%; -} -caption { - font-weight: bold -} -div.qindex { - width: 100%; - background-color: #eeeeff; - border: 1px solid #b0b0b0; - text-align: center; - margin: 2px; - padding: 2px; - line-height: 140%; -} -div.nav { - width: 100%; - background-color: #eeeeff; - border: 1px solid #b0b0b0; - text-align: center; - margin: 2px; - padding: 2px; - line-height: 140%; -} -div.navtab { - background-color: #eeeeff; - border: 1px solid #b0b0b0; - text-align: center; - margin: 2px; - margin-right: 15px; - padding: 2px; -} -td.navtab { - font-size: 70%; -} -a.qindex { - text-decoration: none; - font-weight: bold; - color: #1a419d; -} -a.qindex:visited { - text-decoration: none; - font-weight: bold; - color: #1a419d -} -a.qindex:hover { - text-decoration: none; - background-color: #ddddff; -} -a.qindexHL { - text-decoration: none; - font-weight: bold; - background-color: #6666cc; - color: #ffffff; - border: 1px double #9295C2; -} -a.qindexHL:hover { - text-decoration: none; - background-color: #6666cc; - color: #ffffff; -} -a.qindexHL:visited { - text-decoration: none; - background-color: #6666cc; - color: #ffffff -} -a.el { - text-decoration: none; - font-weight: bold -} -a.elRef { - font-weight: bold -} -a.code:link { - text-decoration: none; - font-weight: normal; - color: #0000FF -} -a.code:visited { - text-decoration: none; - font-weight: normal; - color: #0000FF -} -a.codeRef:link { - font-weight: normal; - color: #0000FF -} -a.codeRef:visited { - font-weight: normal; - color: #0000FF -} -a:hover { - text-decoration: none; - background-color: #f2f2ff -} -dl.el { - margin-left: -1cm -} -.fragment { - font-family: Fixed, monospace; - font-size: 95%; -} -pre.fragment { - border: 1px solid #CCCCCC; - background-color: #f5f5f5; - margin-top: 4px; - margin-bottom: 4px; - margin-left: 2px; - margin-right: 8px; - padding-left: 6px; - padding-right: 6px; - padding-top: 4px; - padding-bottom: 4px; -} -div.ah { - background-color: black; - font-weight: bold; - color: #ffffff; - margin-bottom: 3px; - margin-top: 3px -} -td.md { - background-color: #F4F4FB; - font-weight: bold; -} -td.mdPrefix { - background-color: #F4F4FB; - color: #606060; - font-size: 80%; -} -td.mdname1 { - background-color: #F4F4FB; - font-weight: bold; - color: #602020; -} -td.mdname { - background-color: #F4F4FB; - font-weight: bold; - color: #602020; - width: 600px; -} -div.groupHeader { - margin-left: 16px; - margin-top: 12px; - margin-bottom: 6px; - font-weight: bold; -} -div.groupText { - margin-left: 16px; - font-style: italic; - font-size: 90% -} -td.indexkey { - background-color: #eeeeff; - font-weight: bold; - padding-right : 10px; - padding-top : 2px; - padding-left : 10px; - padding-bottom : 2px; - margin-left : 0px; - margin-right : 0px; - margin-top : 2px; - margin-bottom : 2px; - border: 1px solid #CCCCCC; -} -td.indexvalue { - background-color: #eeeeff; - font-style: italic; - padding-right : 10px; - padding-top : 2px; - padding-left : 10px; - padding-bottom : 2px; - margin-left : 0px; - margin-right : 0px; - margin-top : 2px; - margin-bottom : 2px; - border: 1px solid #CCCCCC; -} -tr.memlist { - background-color: #f0f0f0; -} -p.formulaDsp { - text-align: center; -} -img.formulaDsp { -} -img.formulaInl { - vertical-align: middle; -} -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 -} -.mdTable { - border: 1px solid #868686; - background-color: #F4F4FB; -} -.mdRow { - padding: 8px 10px; -} -.mdescLeft { - padding: 0px 8px 4px 8px; - font-size: 80%; - font-style: italic; - background-color: #FAFAFA; - border-top: 1px none #E0E0E0; - border-right: 1px none #E0E0E0; - border-bottom: 1px none #E0E0E0; - border-left: 1px none #E0E0E0; - margin: 0px; -} -.mdescRight { - padding: 0px 8px 4px 8px; - font-size: 80%; - font-style: italic; - background-color: #FAFAFA; - border-top: 1px none #E0E0E0; - border-right: 1px none #E0E0E0; - border-bottom: 1px none #E0E0E0; - border-left: 1px none #E0E0E0; - margin: 0px; -} -.memItemLeft { - padding: 1px 0px 0px 8px; - margin: 4px; - border-top-width: 1px; - border-right-width: 1px; - border-bottom-width: 1px; - border-left-width: 1px; - border-top-color: #E0E0E0; - border-right-color: #E0E0E0; - border-bottom-color: #E0E0E0; - border-left-color: #E0E0E0; - border-top-style: solid; - border-right-style: none; - border-bottom-style: none; - border-left-style: none; - background-color: #FAFAFA; - font-size: 80%; -} -.memItemRight { - padding: 1px 8px 0px 8px; - margin: 4px; - border-top-width: 1px; - border-right-width: 1px; - border-bottom-width: 1px; - border-left-width: 1px; - border-top-color: #E0E0E0; - border-right-color: #E0E0E0; - border-bottom-color: #E0E0E0; - border-left-color: #E0E0E0; - border-top-style: solid; - border-right-style: none; - border-bottom-style: none; - border-left-style: none; - background-color: #FAFAFA; - font-size: 80%; -} -.memTemplItemLeft { - padding: 1px 0px 0px 8px; - margin: 4px; - border-top-width: 1px; - border-right-width: 1px; - border-bottom-width: 1px; - border-left-width: 1px; - border-top-color: #E0E0E0; - border-right-color: #E0E0E0; - border-bottom-color: #E0E0E0; - border-left-color: #E0E0E0; - border-top-style: none; - border-right-style: none; - border-bottom-style: none; - border-left-style: none; - background-color: #FAFAFA; - font-size: 80%; -} -.memTemplItemRight { - padding: 1px 8px 0px 8px; - margin: 4px; - border-top-width: 1px; - border-right-width: 1px; - border-bottom-width: 1px; - border-left-width: 1px; - border-top-color: #E0E0E0; - border-right-color: #E0E0E0; - border-bottom-color: #E0E0E0; - border-left-color: #E0E0E0; - border-top-style: none; - border-right-style: none; - border-bottom-style: none; - border-left-style: none; - background-color: #FAFAFA; - font-size: 80%; -} -.memTemplParams { - padding: 1px 0px 0px 8px; - margin: 4px; - border-top-width: 1px; - border-right-width: 1px; - border-bottom-width: 1px; - border-left-width: 1px; - border-top-color: #E0E0E0; - border-right-color: #E0E0E0; - border-bottom-color: #E0E0E0; - border-left-color: #E0E0E0; - border-top-style: solid; - border-right-style: none; - border-bottom-style: none; - border-left-style: none; - color: #606060; - background-color: #FAFAFA; - font-size: 80%; -} -.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: #eeeeff; -} -td.tiny { - font-size: 75%; -} -a { - color: #252e78; -} -a:visited { - color: #3d2185; -} -.dirtab { - padding: 4px; - border-collapse: collapse; - border: 1px solid #b0b0b0; -} -th.dirtab { - background: #eeeeff; - font-weight: bold; -} -hr { - height: 1px; - border: none; - border-top: 1px solid black; -} diff --git a/libs/ilbc/doc/libilbc-doxygen b/libs/ilbc/doc/libilbc-doxygen deleted file mode 100644 index 99d7fd7448..0000000000 --- a/libs/ilbc/doc/libilbc-doxygen +++ /dev/null @@ -1,1229 +0,0 @@ -# Doxyfile 1.4.4 - -# This file describes the settings to be used by the documentation system -# doxygen (www.doxygen.org) for a project -# -# All text after a hash (#) is considered a comment and will be ignored -# The format is: -# TAG = value [value, ...] -# For lists items can also be appended using: -# TAG += value [value, ...] -# Values that contain spaces should be placed between quotes (" ") - -#--------------------------------------------------------------------------- -# Project related configuration options -#--------------------------------------------------------------------------- - -# The PROJECT_NAME tag is a single word (or a sequence of words surrounded -# by quotes) that should identify the project. - -PROJECT_NAME = libvoipcodecs - -# The PROJECT_NUMBER tag can be used to enter a project or revision number. -# This could be handy for archiving the generated documentation or -# if some version control system is used. - -PROJECT_NUMBER = 0.0.1 - -# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) -# base path where the generated documentation will be put. -# If a relative path is entered, it will be relative to the location -# where doxygen was started. If left blank the current directory will be used. - -OUTPUT_DIRECTORY = api - -# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create -# 4096 sub-directories (in 2 levels) under the output directory of each output -# format and will distribute the generated files over these directories. -# Enabling this option can be useful when feeding doxygen a huge amount of -# source files, where putting all generated files in the same directory would -# otherwise cause performance problems for the file system. - -CREATE_SUBDIRS = NO - -# The OUTPUT_LANGUAGE tag is used to specify the language in which all -# documentation generated by doxygen is written. Doxygen will use this -# information to generate all constant output in the proper language. -# The default language is English, other supported languages are: -# Brazilian, Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish, -# Dutch, Finnish, French, German, Greek, Hungarian, Italian, Japanese, -# Japanese-en (Japanese with English messages), Korean, Korean-en, Norwegian, -# Polish, Portuguese, Romanian, Russian, Serbian, Slovak, Slovene, Spanish, -# Swedish, and Ukrainian. - -OUTPUT_LANGUAGE = English - -# This tag can be used to specify the encoding used in the generated output. -# The encoding is not always determined by the language that is chosen, -# but also whether or not the output is meant for Windows or non-Windows users. -# In case there is a difference, setting the USE_WINDOWS_ENCODING tag to YES -# forces the Windows encoding (this is the default for the Windows binary), -# whereas setting the tag to NO uses a Unix-style encoding (the default for -# all platforms other than Windows). - -USE_WINDOWS_ENCODING = YES - -# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will -# include brief member descriptions after the members that are listed in -# the file and class documentation (similar to JavaDoc). -# Set to NO to disable this. - -BRIEF_MEMBER_DESC = YES - -# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend -# the brief description of a member or function before the detailed description. -# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the -# brief descriptions will be completely suppressed. - -REPEAT_BRIEF = YES - -# This tag implements a quasi-intelligent brief description abbreviator -# that is used to form the text in various listings. Each string -# in this list, if found as the leading text of the brief description, will be -# stripped from the text and the result after processing the whole list, is -# used as the annotated text. Otherwise, the brief description is used as-is. -# If left blank, the following values are used ("$name" is automatically -# replaced with the name of the entity): "The $name class" "The $name widget" -# "The $name file" "is" "provides" "specifies" "contains" -# "represents" "a" "an" "the" - -ABBREVIATE_BRIEF = - -# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then -# Doxygen will generate a detailed section even if there is only a brief -# description. - -ALWAYS_DETAILED_SEC = NO - -# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all -# inherited members of a class in the documentation of that class as if those -# members were ordinary class members. Constructors, destructors and assignment -# operators of the base classes will not be shown. - -INLINE_INHERITED_MEMB = NO - -# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full -# path before files name in the file list and in the header files. If set -# to NO the shortest path that makes the file name unique will be used. - -FULL_PATH_NAMES = NO - -# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag -# can be used to strip a user-defined part of the path. Stripping is -# only done if one of the specified strings matches the left-hand part of -# the path. The tag can be used to show relative paths in the file list. -# If left blank the directory from which doxygen is run is used as the -# path to strip. - -STRIP_FROM_PATH = - -# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of -# the path mentioned in the documentation of a class, which tells -# the reader which header file to include in order to use a class. -# If left blank only the name of the header file containing the class -# definition is used. Otherwise one should specify the include paths that -# are normally passed to the compiler using the -I flag. - -STRIP_FROM_INC_PATH = - -# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter -# (but less readable) file names. This can be useful is your file systems -# doesn't support long names like on DOS, Mac, or CD-ROM. - -SHORT_NAMES = NO - -# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen -# will interpret the first line (until the first dot) of a JavaDoc-style -# comment as the brief description. If set to NO, the JavaDoc -# comments will behave just like the Qt-style comments (thus requiring an -# explicit @brief command for a brief description. - -JAVADOC_AUTOBRIEF = NO - -# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen -# treat a multi-line C++ special comment block (i.e. a block of //! or /// -# comments) as a brief description. This used to be the default behaviour. -# The new default is to treat a multi-line C++ comment block as a detailed -# description. Set this tag to YES if you prefer the old behaviour instead. - -MULTILINE_CPP_IS_BRIEF = NO - -# If the DETAILS_AT_TOP tag is set to YES then Doxygen -# will output the detailed description near the top, like JavaDoc. -# If set to NO, the detailed description appears after the member -# documentation. - -DETAILS_AT_TOP = NO - -# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented -# member inherits the documentation from any documented member that it -# re-implements. - -INHERIT_DOCS = YES - -# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC -# tag is set to YES, then doxygen will reuse the documentation of the first -# member in the group (if any) for the other members of the group. By default -# all members of a group must be documented explicitly. - -DISTRIBUTE_GROUP_DOC = NO - -# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce -# a new page for each member. If set to NO, the documentation of a member will -# be part of the file/class/namespace that contains it. - -SEPARATE_MEMBER_PAGES = NO - -# The TAB_SIZE tag can be used to set the number of spaces in a tab. -# Doxygen uses this value to replace tabs by spaces in code fragments. - -TAB_SIZE = 8 - -# This tag can be used to specify a number of aliases that acts -# as commands in the documentation. An alias has the form "name=value". -# For example adding "sideeffect=\par Side Effects:\n" will allow you to -# put the command \sideeffect (or @sideeffect) in the documentation, which -# will result in a user-defined paragraph with heading "Side Effects:". -# You can put \n's in the value part of an alias to insert newlines. - -ALIASES = - -# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C -# sources only. Doxygen will then generate output that is more tailored for C. -# For instance, some of the names that are used will be different. The list -# of all members will be omitted, etc. - -OPTIMIZE_OUTPUT_FOR_C = NO - -# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java sources -# only. Doxygen will then generate output that is more tailored for Java. -# For instance, namespaces will be presented as packages, qualified scopes -# will look different, etc. - -OPTIMIZE_OUTPUT_JAVA = NO - -# Set the SUBGROUPING tag to YES (the default) to allow class member groups of -# the same type (for instance a group of public functions) to be put as a -# subgroup of that type (e.g. under the Public Functions section). Set it to -# NO to prevent subgrouping. Alternatively, this can be done per class using -# the \nosubgrouping command. - -SUBGROUPING = YES - -#--------------------------------------------------------------------------- -# Build related configuration options -#--------------------------------------------------------------------------- - -# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in -# documentation are documented, even if no documentation was available. -# Private class members and static file members will be hidden unless -# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES - -EXTRACT_ALL = NO - -# If the EXTRACT_PRIVATE tag is set to YES all private members of a class -# will be included in the documentation. - -EXTRACT_PRIVATE = NO - -# If the EXTRACT_STATIC tag is set to YES all static members of a file -# will be included in the documentation. - -EXTRACT_STATIC = NO - -# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) -# defined locally in source files will be included in the documentation. -# If set to NO only classes defined in header files are included. - -EXTRACT_LOCAL_CLASSES = YES - -# This flag is only useful for Objective-C code. When set to YES local -# methods, which are defined in the implementation section but not in -# the interface are included in the documentation. -# If set to NO (the default) only methods in the interface are included. - -EXTRACT_LOCAL_METHODS = NO - -# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all -# undocumented members of documented classes, files or namespaces. -# If set to NO (the default) these members will be included in the -# various overviews, but no documentation section is generated. -# This option has no effect if EXTRACT_ALL is enabled. - -HIDE_UNDOC_MEMBERS = NO - -# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all -# undocumented classes that are normally visible in the class hierarchy. -# If set to NO (the default) these classes will be included in the various -# overviews. This option has no effect if EXTRACT_ALL is enabled. - -HIDE_UNDOC_CLASSES = NO - -# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all -# friend (class|struct|union) declarations. -# If set to NO (the default) these declarations will be included in the -# documentation. - -HIDE_FRIEND_COMPOUNDS = NO - -# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any -# documentation blocks found inside the body of a function. -# If set to NO (the default) these blocks will be appended to the -# function's detailed documentation block. - -HIDE_IN_BODY_DOCS = NO - -# The INTERNAL_DOCS tag determines if documentation -# that is typed after a \internal command is included. If the tag is set -# to NO (the default) then the documentation will be excluded. -# Set it to YES to include the internal documentation. - -INTERNAL_DOCS = NO - -# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate -# file names in lower-case letters. If set to YES upper-case letters are also -# allowed. This is useful if you have classes or files whose names only differ -# in case and if your file system supports case sensitive file names. Windows -# and Mac users are advised to set this option to NO. - -CASE_SENSE_NAMES = YES - -# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen -# will show members with their full class and namespace scopes in the -# documentation. If set to YES the scope will be hidden. - -HIDE_SCOPE_NAMES = NO - -# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen -# will put a list of the files that are included by a file in the documentation -# of that file. - -SHOW_INCLUDE_FILES = YES - -# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] -# is inserted in the documentation for inline members. - -INLINE_INFO = YES - -# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen -# will sort the (detailed) documentation of file and class members -# alphabetically by member name. If set to NO the members will appear in -# declaration order. - -SORT_MEMBER_DOCS = YES - -# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the -# brief documentation of file, namespace and class members alphabetically -# by member name. If set to NO (the default) the members will appear in -# declaration order. - -SORT_BRIEF_DOCS = NO - -# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be -# sorted by fully-qualified names, including namespaces. If set to -# NO (the default), the class list will be sorted only by class name, -# not including the namespace part. -# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. -# Note: This option applies only to the class list, not to the -# alphabetical list. - -SORT_BY_SCOPE_NAME = NO - -# The GENERATE_TODOLIST tag can be used to enable (YES) or -# disable (NO) the todo list. This list is created by putting \todo -# commands in the documentation. - -GENERATE_TODOLIST = YES - -# The GENERATE_TESTLIST tag can be used to enable (YES) or -# disable (NO) the test list. This list is created by putting \test -# commands in the documentation. - -GENERATE_TESTLIST = YES - -# The GENERATE_BUGLIST tag can be used to enable (YES) or -# disable (NO) the bug list. This list is created by putting \bug -# commands in the documentation. - -GENERATE_BUGLIST = YES - -# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or -# disable (NO) the deprecated list. This list is created by putting -# \deprecated commands in the documentation. - -GENERATE_DEPRECATEDLIST= YES - -# The ENABLED_SECTIONS tag can be used to enable conditional -# documentation sections, marked by \if sectionname ... \endif. - -ENABLED_SECTIONS = - -# The MAX_INITIALIZER_LINES tag determines the maximum number of lines -# the initial value of a variable or define consists of for it to appear in -# the documentation. If the initializer consists of more lines than specified -# here it will be hidden. Use a value of 0 to hide initializers completely. -# The appearance of the initializer of individual variables and defines in the -# documentation can be controlled using \showinitializer or \hideinitializer -# command in the documentation regardless of this setting. - -MAX_INITIALIZER_LINES = 30 - -# Set the SHOW_USED_FILES tag to NO to disable the list of files generated -# at the bottom of the documentation of classes and structs. If set to YES the -# list will mention the files that were used to generate the documentation. - -SHOW_USED_FILES = YES - -# If the sources in your project are distributed over multiple directories -# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy -# in the documentation. The default is YES. - -SHOW_DIRECTORIES = YES - -# The FILE_VERSION_FILTER tag can be used to specify a program or script that -# doxygen should invoke to get the current version for each file (typically from the -# version control system). Doxygen will invoke the program by executing (via -# popen()) the command , where is the value of -# the FILE_VERSION_FILTER tag, and is the name of an input file -# provided by doxygen. Whatever the progam writes to standard output -# is used as the file version. See the manual for examples. - -FILE_VERSION_FILTER = - -#--------------------------------------------------------------------------- -# configuration options related to warning and progress messages -#--------------------------------------------------------------------------- - -# The QUIET tag can be used to turn on/off the messages that are generated -# by doxygen. Possible values are YES and NO. If left blank NO is used. - -QUIET = NO - -# The WARNINGS tag can be used to turn on/off the warning messages that are -# generated by doxygen. Possible values are YES and NO. If left blank -# NO is used. - -WARNINGS = YES - -# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings -# for undocumented members. If EXTRACT_ALL is set to YES then this flag will -# automatically be disabled. - -WARN_IF_UNDOCUMENTED = YES - -# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for -# potential errors in the documentation, such as not documenting some -# parameters in a documented function, or documenting parameters that -# don't exist or using markup commands wrongly. - -WARN_IF_DOC_ERROR = YES - -# This WARN_NO_PARAMDOC option can be abled to get warnings for -# functions that are documented, but have no documentation for their parameters -# or return value. If set to NO (the default) doxygen will only warn about -# wrong or incomplete parameter documentation, but not about the absence of -# documentation. - -WARN_NO_PARAMDOC = NO - -# The WARN_FORMAT tag determines the format of the warning messages that -# doxygen can produce. The string should contain the $file, $line, and $text -# tags, which will be replaced by the file and line number from which the -# warning originated and the warning text. Optionally the format may contain -# $version, which will be replaced by the version of the file (if it could -# be obtained via FILE_VERSION_FILTER) - -WARN_FORMAT = - -# The WARN_LOGFILE tag can be used to specify a file to which warning -# and error messages should be written. If left blank the output is written -# to stderr. - -WARN_LOGFILE = - -#--------------------------------------------------------------------------- -# configuration options related to the input files -#--------------------------------------------------------------------------- - -# The INPUT tag can be used to specify the files and/or directories that contain -# documented source files. You may enter file names like "myfile.cpp" or -# directories like "/usr/src/myproject". Separate the files or directories -# with spaces. - -INPUT = .. - -# If the value of the INPUT tag contains directories, you can use the -# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp -# and *.h) to filter out the source-files in the directories. If left -# blank the following patterns are tested: -# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx -# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm - -FILE_PATTERNS = *.c \ - *.h - -# The RECURSIVE tag can be used to turn specify whether or not subdirectories -# should be searched for input files as well. Possible values are YES and NO. -# If left blank NO is used. - -RECURSIVE = YES - -# The EXCLUDE tag can be used to specify files and/or directories that should -# excluded from the INPUT source files. This way you can easily exclude a -# subdirectory from a directory tree whose root is specified with the INPUT tag. - -EXCLUDE = - -# The EXCLUDE_SYMLINKS tag can be used select whether or not files or -# directories that are symbolic links (a Unix filesystem feature) are excluded -# from the input. - -EXCLUDE_SYMLINKS = NO - -# If the value of the INPUT tag contains directories, you can use the -# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude -# certain files from those directories. Note that the wildcards are matched -# against the file with absolute path, so to exclude all test directories -# for example use the pattern */test/* - -EXCLUDE_PATTERNS = - -# The EXAMPLE_PATH tag can be used to specify one or more files or -# directories that contain example code fragments that are included (see -# the \include command). - -EXAMPLE_PATH = - -# If the value of the EXAMPLE_PATH tag contains directories, you can use the -# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp -# and *.h) to filter out the source-files in the directories. If left -# blank all files are included. - -EXAMPLE_PATTERNS = - -# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be -# searched for input files to be used with the \include or \dontinclude -# commands irrespective of the value of the RECURSIVE tag. -# Possible values are YES and NO. If left blank NO is used. - -EXAMPLE_RECURSIVE = NO - -# The IMAGE_PATH tag can be used to specify one or more files or -# directories that contain image that are included in the documentation (see -# the \image command). - -IMAGE_PATH = - -# The INPUT_FILTER tag can be used to specify a program that doxygen should -# invoke to filter for each input file. Doxygen will invoke the filter program -# by executing (via popen()) the command , where -# is the value of the INPUT_FILTER tag, and is the name of an -# input file. Doxygen will then use the output that the filter program writes -# to standard output. If FILTER_PATTERNS is specified, this tag will be -# ignored. - -INPUT_FILTER = - -# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern -# basis. Doxygen will compare the file name with each pattern and apply the -# filter if there is a match. The filters are a list of the form: -# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further -# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER -# is applied to all files. - -FILTER_PATTERNS = - -# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using -# INPUT_FILTER) will be used to filter the input files when producing source -# files to browse (i.e. when SOURCE_BROWSER is set to YES). - -FILTER_SOURCE_FILES = NO - -#--------------------------------------------------------------------------- -# configuration options related to source browsing -#--------------------------------------------------------------------------- - -# If the SOURCE_BROWSER tag is set to YES then a list of source files will -# be generated. Documented entities will be cross-referenced with these sources. -# Note: To get rid of all source code in the generated output, make sure also -# VERBATIM_HEADERS is set to NO. - -SOURCE_BROWSER = NO - -# Setting the INLINE_SOURCES tag to YES will include the body -# of functions and classes directly in the documentation. - -INLINE_SOURCES = NO - -# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct -# doxygen to hide any special comment blocks from generated source code -# fragments. Normal C and C++ comments will always remain visible. - -STRIP_CODE_COMMENTS = NO - -# If the REFERENCED_BY_RELATION tag is set to YES (the default) -# then for each documented function all documented -# functions referencing it will be listed. - -REFERENCED_BY_RELATION = YES - -# If the REFERENCES_RELATION tag is set to YES (the default) -# then for each documented function all documented entities -# called/used by that function will be listed. - -REFERENCES_RELATION = YES - -# If the USE_HTAGS tag is set to YES then the references to source code -# will point to the HTML generated by the htags(1) tool instead of doxygen -# built-in source browser. The htags tool is part of GNU's global source -# tagging system (see http://www.gnu.org/software/global/global.html). You -# will need version 4.8.6 or higher. - -USE_HTAGS = NO - -# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen -# will generate a verbatim copy of the header file for each class for -# which an include is specified. Set to NO to disable this. - -VERBATIM_HEADERS = YES - -#--------------------------------------------------------------------------- -# configuration options related to the alphabetical class index -#--------------------------------------------------------------------------- - -# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index -# of all compounds will be generated. Enable this if the project -# contains a lot of classes, structs, unions or interfaces. - -ALPHABETICAL_INDEX = YES - -# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then -# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns -# in which this list will be split (can be a number in the range [1..20]) - -COLS_IN_ALPHA_INDEX = 2 - -# In case all classes in a project start with a common prefix, all -# classes will be put under the same header in the alphabetical index. -# The IGNORE_PREFIX tag can be used to specify one or more prefixes that -# should be ignored while generating the index headers. - -IGNORE_PREFIX = - -#--------------------------------------------------------------------------- -# configuration options related to the HTML output -#--------------------------------------------------------------------------- - -# If the GENERATE_HTML tag is set to YES (the default) Doxygen will -# generate HTML output. - -GENERATE_HTML = YES - -# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `html' will be used as the default path. - -HTML_OUTPUT = - -# The HTML_FILE_EXTENSION tag can be used to specify the file extension for -# each generated HTML page (for example: .htm,.php,.asp). If it is left blank -# doxygen will generate files with .html extension. - -HTML_FILE_EXTENSION = .html - -# The HTML_HEADER tag can be used to specify a personal HTML header for -# each generated HTML page. If it is left blank doxygen will generate a -# standard header. - -HTML_HEADER = - -# The HTML_FOOTER tag can be used to specify a personal HTML footer for -# each generated HTML page. If it is left blank doxygen will generate a -# standard footer. - -HTML_FOOTER = - -# The HTML_STYLESHEET tag can be used to specify a user-defined cascading -# style sheet that is used by each HTML page. It can be used to -# fine-tune the look of the HTML output. If the tag is left blank doxygen -# will generate a default style sheet. Note that doxygen will try to copy -# the style sheet file to the HTML output directory, so don't put your own -# stylesheet in the HTML output directory as well, or it will be erased! - -HTML_STYLESHEET = css.css - -# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, -# files or namespaces will be aligned in HTML using tables. If set to -# NO a bullet list will be used. - -HTML_ALIGN_MEMBERS = YES - -# If the GENERATE_HTMLHELP tag is set to YES, additional index files -# will be generated that can be used as input for tools like the -# Microsoft HTML help workshop to generate a compressed HTML help file (.chm) -# of the generated HTML documentation. - -GENERATE_HTMLHELP = NO - -# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can -# be used to specify the file name of the resulting .chm file. You -# can add a path in front of the file if the result should not be -# written to the html output directory. - -CHM_FILE = - -# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can -# be used to specify the location (absolute path including file name) of -# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run -# the HTML help compiler on the generated index.hhp. - -HHC_LOCATION = - -# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag -# controls if a separate .chi index file is generated (YES) or that -# it should be included in the master .chm file (NO). - -GENERATE_CHI = NO - -# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag -# controls whether a binary table of contents is generated (YES) or a -# normal table of contents (NO) in the .chm file. - -BINARY_TOC = NO - -# The TOC_EXPAND flag can be set to YES to add extra items for group members -# to the contents of the HTML help documentation and to the tree view. - -TOC_EXPAND = NO - -# The DISABLE_INDEX tag can be used to turn on/off the condensed index at -# top of each HTML page. The value NO (the default) enables the index and -# the value YES disables it. - -DISABLE_INDEX = NO - -# This tag can be used to set the number of enum values (range [1..20]) -# that doxygen will group on one line in the generated HTML documentation. - -ENUM_VALUES_PER_LINE = 4 - -# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be -# generated containing a tree-like index structure (just like the one that -# is generated for HTML Help). For this to work a browser that supports -# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, -# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are -# probably better off using the HTML help feature. - -GENERATE_TREEVIEW = YES - -# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be -# used to set the initial width (in pixels) of the frame in which the tree -# is shown. - -TREEVIEW_WIDTH = 250 - -#--------------------------------------------------------------------------- -# configuration options related to the LaTeX output -#--------------------------------------------------------------------------- - -# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will -# generate Latex output. - -GENERATE_LATEX = NO - -# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `latex' will be used as the default path. - -LATEX_OUTPUT = - -# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be -# invoked. If left blank `latex' will be used as the default command name. - -LATEX_CMD_NAME = latex - -# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to -# generate index for LaTeX. If left blank `makeindex' will be used as the -# default command name. - -MAKEINDEX_CMD_NAME = makeindex - -# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact -# LaTeX documents. This may be useful for small projects and may help to -# save some trees in general. - -COMPACT_LATEX = NO - -# The PAPER_TYPE tag can be used to set the paper type that is used -# by the printer. Possible values are: a4, a4wide, letter, legal and -# executive. If left blank a4wide will be used. - -PAPER_TYPE = a4wide - -# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX -# packages that should be included in the LaTeX output. - -EXTRA_PACKAGES = - -# The LATEX_HEADER tag can be used to specify a personal LaTeX header for -# the generated latex document. The header should contain everything until -# the first chapter. If it is left blank doxygen will generate a -# standard header. Notice: only use this tag if you know what you are doing! - -LATEX_HEADER = - -# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated -# is prepared for conversion to pdf (using ps2pdf). The pdf file will -# contain links (just like the HTML output) instead of page references -# This makes the output suitable for online browsing using a pdf viewer. - -PDF_HYPERLINKS = NO - -# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of -# plain latex in the generated Makefile. Set this option to YES to get a -# higher quality PDF documentation. - -USE_PDFLATEX = NO - -# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. -# command to the generated LaTeX files. This will instruct LaTeX to keep -# running if errors occur, instead of asking the user for help. -# This option is also used when generating formulas in HTML. - -LATEX_BATCHMODE = NO - -# If LATEX_HIDE_INDICES is set to YES then doxygen will not -# include the index chapters (such as File Index, Compound Index, etc.) -# in the output. - -LATEX_HIDE_INDICES = NO - -#--------------------------------------------------------------------------- -# configuration options related to the RTF output -#--------------------------------------------------------------------------- - -# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output -# The RTF output is optimized for Word 97 and may not look very pretty with -# other RTF readers or editors. - -GENERATE_RTF = NO - -# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `rtf' will be used as the default path. - -RTF_OUTPUT = - -# If the COMPACT_RTF tag is set to YES Doxygen generates more compact -# RTF documents. This may be useful for small projects and may help to -# save some trees in general. - -COMPACT_RTF = NO - -# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated -# will contain hyperlink fields. The RTF file will -# contain links (just like the HTML output) instead of page references. -# This makes the output suitable for online browsing using WORD or other -# programs which support those fields. -# Note: wordpad (write) and others do not support links. - -RTF_HYPERLINKS = NO - -# Load stylesheet definitions from file. Syntax is similar to doxygen's -# config file, i.e. a series of assignments. You only have to provide -# replacements, missing definitions are set to their default value. - -RTF_STYLESHEET_FILE = - -# Set optional variables used in the generation of an rtf document. -# Syntax is similar to doxygen's config file. - -RTF_EXTENSIONS_FILE = - -#--------------------------------------------------------------------------- -# configuration options related to the man page output -#--------------------------------------------------------------------------- - -# If the GENERATE_MAN tag is set to YES (the default) Doxygen will -# generate man pages - -GENERATE_MAN = NO - -# The MAN_OUTPUT tag is used to specify where the man pages will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `man' will be used as the default path. - -MAN_OUTPUT = - -# The MAN_EXTENSION tag determines the extension that is added to -# the generated man pages (default is the subroutine's section .3) - -MAN_EXTENSION = - -# If the MAN_LINKS tag is set to YES and Doxygen generates man output, -# then it will generate one additional man file for each entity -# documented in the real man page(s). These additional files -# only source the real man page, but without them the man command -# would be unable to find the correct page. The default is NO. - -MAN_LINKS = NO - -#--------------------------------------------------------------------------- -# configuration options related to the XML output -#--------------------------------------------------------------------------- - -# If the GENERATE_XML tag is set to YES Doxygen will -# generate an XML file that captures the structure of -# the code including all documentation. - -GENERATE_XML = NO - -# The XML_OUTPUT tag is used to specify where the XML pages will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `xml' will be used as the default path. - -XML_OUTPUT = xml - -# The XML_SCHEMA tag can be used to specify an XML schema, -# which can be used by a validating XML parser to check the -# syntax of the XML files. - -XML_SCHEMA = - -# The XML_DTD tag can be used to specify an XML DTD, -# which can be used by a validating XML parser to check the -# syntax of the XML files. - -XML_DTD = - -# If the XML_PROGRAMLISTING tag is set to YES Doxygen will -# dump the program listings (including syntax highlighting -# and cross-referencing information) to the XML output. Note that -# enabling this will significantly increase the size of the XML output. - -XML_PROGRAMLISTING = YES - -#--------------------------------------------------------------------------- -# configuration options for the AutoGen Definitions output -#--------------------------------------------------------------------------- - -# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will -# generate an AutoGen Definitions (see autogen.sf.net) file -# that captures the structure of the code including all -# documentation. Note that this feature is still experimental -# and incomplete at the moment. - -GENERATE_AUTOGEN_DEF = NO - -#--------------------------------------------------------------------------- -# configuration options related to the Perl module output -#--------------------------------------------------------------------------- - -# If the GENERATE_PERLMOD tag is set to YES Doxygen will -# generate a Perl module file that captures the structure of -# the code including all documentation. Note that this -# feature is still experimental and incomplete at the -# moment. - -GENERATE_PERLMOD = NO - -# If the PERLMOD_LATEX tag is set to YES Doxygen will generate -# the necessary Makefile rules, Perl scripts and LaTeX code to be able -# to generate PDF and DVI output from the Perl module output. - -PERLMOD_LATEX = NO - -# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be -# nicely formatted so it can be parsed by a human reader. This is useful -# if you want to understand what is going on. On the other hand, if this -# tag is set to NO the size of the Perl module output will be much smaller -# and Perl will parse it just the same. - -PERLMOD_PRETTY = YES - -# The names of the make variables in the generated doxyrules.make file -# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. -# This is useful so different doxyrules.make files included by the same -# Makefile don't overwrite each other's variables. - -PERLMOD_MAKEVAR_PREFIX = - -#--------------------------------------------------------------------------- -# Configuration options related to the preprocessor -#--------------------------------------------------------------------------- - -# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will -# evaluate all C-preprocessor directives found in the sources and include -# files. - -ENABLE_PREPROCESSING = YES - -# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro -# names in the source code. If set to NO (the default) only conditional -# compilation will be performed. Macro expansion can be done in a controlled -# way by setting EXPAND_ONLY_PREDEF to YES. - -MACRO_EXPANSION = NO - -# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES -# then the macro expansion is limited to the macros specified with the -# PREDEFINED and EXPAND_AS_PREDEFINED tags. - -EXPAND_ONLY_PREDEF = NO - -# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files -# in the INCLUDE_PATH (see below) will be search if a #include is found. - -SEARCH_INCLUDES = YES - -# The INCLUDE_PATH tag can be used to specify one or more directories that -# contain include files that are not input files but should be processed by -# the preprocessor. - -INCLUDE_PATH = - -# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard -# patterns (like *.h and *.hpp) to filter out the header-files in the -# directories. If left blank, the patterns specified with FILE_PATTERNS will -# be used. - -INCLUDE_FILE_PATTERNS = - -# The PREDEFINED tag can be used to specify one or more macro names that -# are defined before the preprocessor is started (similar to the -D option of -# gcc). The argument of the tag is a list of macros of the form: name -# or name=definition (no spaces). If the definition and the = are -# omitted =1 is assumed. To prevent a macro definition from being -# undefined via #undef or recursively expanded use the := operator -# instead of the = operator. - -PREDEFINED = - -# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then -# this tag can be used to specify a list of macro names that should be expanded. -# The macro definition that is found in the sources will be used. -# Use the PREDEFINED tag if you want to use a different macro definition. - -EXPAND_AS_DEFINED = - -# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then -# doxygen's preprocessor will remove all function-like macros that are alone -# on a line, have an all uppercase name, and do not end with a semicolon. Such -# function macros are typically used for boiler-plate code, and will confuse -# the parser if not removed. - -SKIP_FUNCTION_MACROS = YES - -#--------------------------------------------------------------------------- -# Configuration::additions related to external references -#--------------------------------------------------------------------------- - -# The TAGFILES option can be used to specify one or more tagfiles. -# Optionally an initial location of the external documentation -# can be added for each tagfile. The format of a tag file without -# this location is as follows: -# TAGFILES = file1 file2 ... -# Adding location for the tag files is done as follows: -# TAGFILES = file1=loc1 "file2 = loc2" ... -# where "loc1" and "loc2" can be relative or absolute paths or -# URLs. If a location is present for each tag, the installdox tool -# does not have to be run to correct the links. -# Note that each tag file must have a unique name -# (where the name does NOT include the path) -# If a tag file is not located in the directory in which doxygen -# is run, you must also specify the path to the tagfile here. - -TAGFILES = - -# When a file name is specified after GENERATE_TAGFILE, doxygen will create -# a tag file that is based on the input files it reads. - -GENERATE_TAGFILE = - -# If the ALLEXTERNALS tag is set to YES all external classes will be listed -# in the class index. If set to NO only the inherited external classes -# will be listed. - -ALLEXTERNALS = NO - -# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed -# in the modules index. If set to NO, only the current project's groups will -# be listed. - -EXTERNAL_GROUPS = YES - -# The PERL_PATH should be the absolute path and name of the perl script -# interpreter (i.e. the result of `which perl'). - -PERL_PATH = /usr/bin/perl - -#--------------------------------------------------------------------------- -# Configuration options related to the dot tool -#--------------------------------------------------------------------------- - -# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will -# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base -# or super classes. Setting the tag to NO turns the diagrams off. Note that -# this option is superseded by the HAVE_DOT option below. This is only a -# fallback. It is recommended to install and use dot, since it yields more -# powerful graphs. - -CLASS_DIAGRAMS = YES - -# If set to YES, the inheritance and collaboration graphs will hide -# inheritance and usage relations if the target is undocumented -# or is not a class. - -HIDE_UNDOC_RELATIONS = YES - -# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is -# available from the path. This tool is part of Graphviz, a graph visualization -# toolkit from AT&T and Lucent Bell Labs. The other options in this section -# have no effect if this option is set to NO (the default) - -HAVE_DOT = NO - -# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen -# will generate a graph for each documented class showing the direct and -# indirect inheritance relations. Setting this tag to YES will force the -# the CLASS_DIAGRAMS tag to NO. - -CLASS_GRAPH = YES - -# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen -# will generate a graph for each documented class showing the direct and -# indirect implementation dependencies (inheritance, containment, and -# class references variables) of the class with other documented classes. - -COLLABORATION_GRAPH = YES - -# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen -# will generate a graph for groups, showing the direct groups dependencies - -GROUP_GRAPHS = YES - -# If the UML_LOOK tag is set to YES doxygen will generate inheritance and -# collaboration diagrams in a style similar to the OMG's Unified Modeling -# Language. - -UML_LOOK = NO - -# If set to YES, the inheritance and collaboration graphs will show the -# relations between templates and their instances. - -TEMPLATE_RELATIONS = YES - -# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT -# tags are set to YES then doxygen will generate a graph for each documented -# file showing the direct and indirect include dependencies of the file with -# other documented files. - -INCLUDE_GRAPH = YES - -# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and -# HAVE_DOT tags are set to YES then doxygen will generate a graph for each -# documented header file showing the documented files that directly or -# indirectly include this file. - -INCLUDED_BY_GRAPH = YES - -# If the CALL_GRAPH and HAVE_DOT tags are set to YES then doxygen will -# generate a call dependency graph for every global function or class method. -# Note that enabling this option will significantly increase the time of a run. -# So in most cases it will be better to enable call graphs for selected -# functions only using the \callgraph command. - -CALL_GRAPH = NO - -# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen -# will graphical hierarchy of all classes instead of a textual one. - -GRAPHICAL_HIERARCHY = YES - -# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES -# then doxygen will show the dependencies a directory has on other directories -# in a graphical way. The dependency relations are determined by the #include -# relations between the files in the directories. - -DIRECTORY_GRAPH = YES - -# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images -# generated by dot. Possible values are png, jpg, or gif -# If left blank png will be used. - -DOT_IMAGE_FORMAT = png - -# The tag DOT_PATH can be used to specify the path where the dot tool can be -# found. If left blank, it is assumed the dot tool can be found in the path. - -DOT_PATH = - -# The DOTFILE_DIRS tag can be used to specify one or more directories that -# contain dot files that are included in the documentation (see the -# \dotfile command). - -DOTFILE_DIRS = - -# The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width -# (in pixels) of the graphs generated by dot. If a graph becomes larger than -# this value, doxygen will try to truncate the graph, so that it fits within -# the specified constraint. Beware that most browsers cannot cope with very -# large images. - -MAX_DOT_GRAPH_WIDTH = 1024 - -# The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height -# (in pixels) of the graphs generated by dot. If a graph becomes larger than -# this value, doxygen will try to truncate the graph, so that it fits within -# the specified constraint. Beware that most browsers cannot cope with very -# large images. - -MAX_DOT_GRAPH_HEIGHT = 1024 - -# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the -# graphs generated by dot. A depth value of 3 means that only nodes reachable -# from the root by following a path via at most 3 edges will be shown. Nodes -# that lay further from the root node will be omitted. Note that setting this -# option to 1 or 2 may greatly reduce the computation time needed for large -# code bases. Also note that a graph may be further truncated if the graph's -# image dimensions are not sufficient to fit the graph (see MAX_DOT_GRAPH_WIDTH -# and MAX_DOT_GRAPH_HEIGHT). If 0 is used for the depth value (the default), -# the graph is not depth-constrained. - -MAX_DOT_GRAPH_DEPTH = 0 - -# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent -# background. This is disabled by default, which results in a white background. -# Warning: Depending on the platform used, enabling this option may lead to -# badly anti-aliased labels on the edges of a graph (i.e. they become hard to -# read). - -DOT_TRANSPARENT = NO - -# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output -# files in one run (i.e. multiple -o and -T options on the command line). This -# makes dot run faster, but since only newer versions of dot (>1.8.10) -# support this, this feature is disabled by default. - -DOT_MULTI_TARGETS = NO - -# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will -# generate a legend page explaining the meaning of the various boxes and -# arrows in the dot generated graphs. - -GENERATE_LEGEND = YES - -# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will -# remove the intermediate dot files that are used to generate -# the various graphs. - -DOT_CLEANUP = YES - -#--------------------------------------------------------------------------- -# Configuration::additions related to the search engine -#--------------------------------------------------------------------------- - -# The SEARCHENGINE tag specifies whether or not a search engine should be -# used. If set to NO the values of all tags below this one will be ignored. - -SEARCHENGINE = NO diff --git a/libs/ilbc/doc/wrapper.xsl b/libs/ilbc/doc/wrapper.xsl deleted file mode 100644 index 89e314d781..0000000000 --- a/libs/ilbc/doc/wrapper.xsl +++ /dev/null @@ -1,5 +0,0 @@ - - - css.css - \ No newline at end of file diff --git a/libs/ilbc/gips_iLBClicense.pdf b/libs/ilbc/gips_iLBClicense.pdf deleted file mode 100644 index 16b298e420a853b2881616a8faff62ef07902a16..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 108196 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 ik_0jA3<8gkb&OI7 0.0.1 -- First pass diff --git a/libs/ilbc/ilbc.spec.in b/libs/ilbc/ilbc.spec.in deleted file mode 100644 index 8e728b7214..0000000000 --- a/libs/ilbc/ilbc.spec.in +++ /dev/null @@ -1,65 +0,0 @@ -Summary: iLBC is a library for the iLBC low bit rate speech codec. -Name: @PACKAGE@ -Version: @VERSION@ -Release: 1 -License: Global IP Sound iLBC Public License, v2.0 -Group: System Environment/Libraries -URL: http://www.soft-switch.org/voipcodecs -BuildRoot: %{_tmppath}/%{name}-%{version}-root -Source: http://www.soft-switch.org/downloads/voipcodecs/@PACKAGE@-@VERSION@.tar.gz -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) - -Docdir: %{_prefix}/doc - -BuildRequires: audiofile-devel -BuildRequires: doxygen - -%description -iLBC is a library for the iLBC low bit rate speech codec. - -%package devel -Summary: iLBC development files -Group: Development/Libraries -Requires: ilbc = %{version} -PreReq: /sbin/install-info - -%description devel -iLBC development files. - -%prep -%setup -q - -%build -%configure --enable-doc --disable-static --disable-rpath -make - -%install -rm -rf %{buildroot} -make install DESTDIR=%{buildroot} -rm %{buildroot}%{_libdir}/libilbc.la - -%clean -rm -rf %{buildroot} - -%files -%defattr(-,root,root,-) -%doc ChangeLog AUTHORS COPYING NEWS README - -%{_libdir}/libilbc.so.* - -%{_datadir}/ilbc - -%files devel -%defattr(-,root,root,-) -%doc doc/api -%{_includedir}/ilbc.h -%{_includedir}/ilbc -%{_libdir}/libilbc.so - -%post -p /sbin/ldconfig - -%postun -p /sbin/ldconfig - -%changelog -* Thu Feb 7 2008 Steve Underwood 0.0.1 -- First pass diff --git a/libs/ilbc/libilbc.2008.vcproj b/libs/ilbc/libilbc.2008.vcproj deleted file mode 100644 index 89aed0e92b..0000000000 --- a/libs/ilbc/libilbc.2008.vcproj +++ /dev/null @@ -1,489 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/libs/ilbc/libilbc.2010.vcxproj.filters b/libs/ilbc/libilbc.2010.vcxproj.filters deleted file mode 100644 index adc872f47a..0000000000 --- a/libs/ilbc/libilbc.2010.vcxproj.filters +++ /dev/null @@ -1,162 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hpp;hxx;hm;inl;inc;xsd - - - {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav - - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - \ No newline at end of file diff --git a/libs/ilbc/libilbc.vcproj b/libs/ilbc/libilbc.vcproj deleted file mode 100644 index 39e5c92ace..0000000000 --- a/libs/ilbc/libilbc.vcproj +++ /dev/null @@ -1,357 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/libs/ilbc/localtests/Makefile.am b/libs/ilbc/localtests/Makefile.am deleted file mode 100644 index 915eeeeeef..0000000000 --- a/libs/ilbc/localtests/Makefile.am +++ /dev/null @@ -1,39 +0,0 @@ -## -## VoIPcodecs - a series of DSP components for telephony -## -## Makefile.am -- Process this file with automake to produce Makefile.in -## -## This program is free software; you can redistribute it and/or modify -## it under the terms of the GNU General Public License version 2, as -## published by the Free Software Foundation. -## -## This program is distributed in the hope that it will be useful, -## but WITHOUT ANY WARRANTY; without even the implied warranty of -## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -## GNU General Public License for more details. -## -## You should have received a copy of the GNU General Public License -## along with this program; if not, write to the Free Software -## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -## -## $Id: Makefile.am,v 1.1.1.1 2008/02/15 12:15:55 steveu Exp $ - -SUBDIRS = - -DIST_SUBDIRS = - -EXTRA_DIST = clean.chn \ - iLBC.INP \ - iLBC_20ms.BIT \ - iLBC_20ms_clean.OUT \ - iLBC_20ms_tlm05.OUT \ - iLBC_30ms.BIT \ - iLBC_30ms_clean.OUT \ - iLBC_30ms_tlm05.OUT \ - iLBC_test.txt \ - short_nb_voice.wav \ - tlm05.chn - -all: - -clean: diff --git a/libs/ilbc/localtests/clean.chn b/libs/ilbc/localtests/clean.chn deleted file mode 100644 index 1dc0e077a55ec179a0aeb2289f4c10349296759a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15002 zcmeIufeZiu00OY`mrfyo?*?y*0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj lFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DQZV_*|y9ZmoM diff --git a/libs/ilbc/localtests/iLBC.INP b/libs/ilbc/localtests/iLBC.INP deleted file mode 100644 index 7baaa7f27cb254bf09984091aae473eb74e71c8c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 151840 zcmaI8cbpVO)Gl1r-IHf?0+zVsoHIy91PmZql$=Bm1Vun4XAlq&L*zx(}jncuRr9jZ>QQ|CP0LJBD*`#=9U`+tA_&xQZLFBszg z@lS;3`2Q{_y7m8_mHl6{D)_Ga?~jV#^g|yt{P~|VMZf=t*8d@Y;D7~yOFhe{fY^;$y?d&K&qS@#Dh(|Mw3abKtx^e67Yb z+|QW=4Y~|TzbusbGFN(JhI}p4WU73O&s}*>UXwTFS^R$h*R*8SS#4IH)nt|NNnuH> z6syQ$SOR_$@x2&x<6A^n4yL5pI4c0{oEb8Rv2&yka}oWzEWlqL%<0GcLHzcBf;?Pn z!?l^Xj-+qJl|CG|U|bjeieT|93cnTRhfEm$_e%w`q!G<9A1=)AfIR4*H7o%QG|&|$ zeu^|CWdPspEDod6QIeNEEDg>Apo>04rx(;XAg98xb&$lYm@x=$f|#Ao+Q3IPXb)l( z8pnr`_3%6zXrOt5lH{ym<_OF|(xIPdNGlriCt>D9Xw8e!Nb{!5f>Z+F*pG1~j`+gk zkpSq(|P$aegg$p}j~ z0oUX}`h}p@5gv`M&_JUtEIS?NbX@I+JZz9>0JCZsi9uIn;VSO2;z$URvSKVJ?sVcP zS*#7;0%2LH_?;P+RUu{~8z*W=hhB_lffW4UxoAX^CRu_hW5d=J4gE*pm=j#t!`u*O zMPraQRZu}k$R@n7r69)7gB8EPn7;713hvTye*`trzDx=&)cG z@?p|DF2{8=K6#6dJIHyU$4E#;;h-M`3BRSJw^mi=oEb>+t?k9@r z8W+yfUm@_Dg)zvQh}FOojlAnCj);!#W? z&6C~HaUbL&p^2i8zP(H3`g?2bw5y(5w_s{m_jK*IRM6$Wlz{23N!ZS!e(=l6_MQCa)k$UC?R>k;RU& z1NcUkAuv)9*F-`tQLF@FGp#Ld+)-q?q(h1dxCGy5Z1MzJ2QopA2U;Y_1QGFa!{6v? z(vlr!BBLAnzN*-!wX*fgo zCSc~Etbo;=?4md;4SklvOnyixfmOiRuR)cDG07eaj?!d2D+daTL(VL` z;^%>f;-Ehswm>n{!K%OyL*PJRsj#M0`2^OKA@3l(wL{KM zP)MF}o#VVk%QSyJ?D2wN?SV_8_Y zETEtqj>O|LST2$E!?fL$7iC>Gn7s+^a{sqJz2GBLo)1gC5ZcXxgjMiJD*~-Dxw06m z21=V^bjC6uuQ*Ug5#j+xpq!E73E8;~I!}U5Nr$vT#Y59CAU9g;ABER$%6f8O(PYmW ztAVS@2i>@jfp;~m<>EL_nmLL)2jbgVc@Q>Q7o$Cu&*XJko^^z*vY_w(U{1%R8 zL%Vgt`Z|TV+p&6KS_6=7Dab@Z>nf9LU4YjBbYsR+m>9nz5C)d`!RI9ZBSf?mj? z70~X4wbH6uf|UXPl(`Zul<$$Plz`3C`sl?-B{5qjtdmBftRNGzOTyU<%&&mQ67Xlr zMH6As0(W~cmLHk-1Njuvq1DxZm1JZ5V)&3hP!zF-Gi_Q;C^CicI~{YmpaEJj{J1X~ znz4h*0CZ1zpa)k(LNDbJkDh>M$|ZF95c-IQuTd6ef)6zuUA*9*A|iv1a-f$0w8Yp; z%tBt`gvaH`(yTdVy9K%$W7I;7QveHX2>u@7j=I<(yp+Go8)1*VEiZ%nMCgxlisFbS z2I4|}NcJwcjR{-XHE7iV8zuksVZJy>)&bcThquJCi=d%AX3oXv6xHs^Q?T+_c<=*I z6%Xrvq)Q7+-Z#o7CaN0*?J7SQTFd>&)`G`SfvZ3EgK zfkG#^<>2VCtOP%L4GX9R*(QK14>TLYnt`%3nT(^Eh$sivo;T2q`782biTg=6C>FX&uPN??_mj4_8?+S9#193XfF>zpsJn4mf@T zt7>Iv?FxL$g;5lC1{OtrKzlqp?9wC8KsU`HkJGre7VIu1>|O4#{nH(3hyx7vbO9EV zgtIY-9Rj<~T+m4Iu@G{k$dU#7sS6&C$&;9~EBjmSl{HvvXp?9q?|25=rW~gbd{>4} zb7fUfo&>88;>w4xjOy$;_$CjgY^ejJbPpQgh#$$Y-F>hjmHi_x;P;!XD*GC;9Edy8 zVCB!k_Z18KT`F`}36wZt4HU~tfQJ$oF$0pT4V$3#`ZO$~HmFXA78|eu>^i8nK?(*& zzbO-;uic=h7w-NKM`E!C*JS@fu1&%5P54D5>x5ArfisRVU*SwL?BgkDOlEI`ipv-y z2J_m$Kdp)>>>g}42G?GZS7jrdQQ0nN;!XI-D`=}aR`neDHmEy|>vCWn)p5r^pe`D= zWra;~$c!>l7i_>Q--qS=EvsPtqTe@V3#?t2Fv2_RPq|grfnC^Gdr(i_(HBzAgO>cT z#M6*;Nd5#(w`8QJXmI>QHfH_U39MpH=qnwPptT|!@xvRowY!)h8D}EdYEaA|B|qe; zfXYHhCI}i+*eS>)3GwF?=F5h3>OxLu;7fhseW{?VIvWiQ{D6qo6x!VZ4F({iCgAaG zINDWbcd!a4vjfn0MOa8JjP(!VOA}CD22nc~GgIt&0b8WVmydfL>>MnxB=lk+A1aS~ zZ$Rp?80j{=q8wt{PFO-|)(Ezjg1cTqh7F;!$8sU~`x0Yyfz|#k+rb8D=SUgf1H{S4 zkd*`elP!13w$SDpxfu2y&o09zQ^0pLdkebX2E8@MtXE*wc6J|{CutQT4i#fP5PkfR zO+I2_Z&=RPu)WEk;STs>?1g*}kzhN{e+Zgy%c+?CSFC1Tp^@#Fk+JEJeLH9(9a+I+ zc?5cT1H2rPTXD@Ba)qg4P>2VFZmN_nlHbERC1s>7^p7k;7#om+e%N}e5>o2Ry zN%(uE91ctP9#P;e9687CV6-&hVPEmi@|IZ7>T=|fn5P5(jm640aK3Za9i!pV~OQ+Y!?kfnJic3f1D<++8| zlRL#|c9Y+hx#mC_ue@Ms<}@*d=knjgA#)vDqzq@r%(rC^We4vrbh8+5qzsmG%-eFB zvX!NpL9v!E;0@$A;seMDYqJ<4f8~?8P0kgcurK&XwoSyyo6L*6_@sC&75*_RA*aGp zpCcB11J9X=_&7&ShKEM6&k+NA!#h4i9<>57U@rI=3h!Se+rZm@Vf*DE*_XY?UF<3} z)q#J`D#223usVE)+$;j}0+;M-kuJvZZ+V)iAcnC^ybfzCO2|IEJvYP<@ge(?7h@a6 zIQbOTS6e<2O_+_lSsA%ae!zYLO&`eL<5FA|5>!XQT!8Q%PD8$I{rl z;OPtSv>P#KAtFT|tYr%jbKHn)Yq4*uiWsegbFOi$Gy7HE!m88>YtAls#0*5t&7fo^ z`xR^QFIYpL!h=lFO>Sp-h$#ofPMO2DvmEhMe8dFSkdXLXo@G5*W4TA}VPCMH5IcTl zo8gPi0*??d2qS1QDhasQL$UFP8s_+N>XM3k{rx^wu!Hs4VxfSL{=nAqK$G zZ_7nuhRnhmGEuIS-@s-T$-&40enpm13;Nu~-jpQ~N6YbBa-(=DKj(W`RoO+JV9ETL zv>{gg$F9o0$k)Ean62b`jQNASARO#1UWJViqh)U%U`^#kv6A)Rn<3eX(B@v5E)rQq zo(&6mCgb^976V`Wi^cKpT`G$}SSR$doG4bKdh{_jFLM*;X?VnaI=Mc8k;Gs zvMkSF73EE_oDJmrq3KllC7;C7#Wbn2U91Nr^f`-xlzjsA6l5&zV0WuvhkIbL4Ul7` zA$O<@-ljmaJ>VB-A$^H6b+Ia~mY=c*$SHbb&6$r}Ws>{_zR(Z+o<){05!QVa5}AWM z;D_*P*bs940r^S_JC2pu!rsArr;&3!#_E{}i+wI>CwfXAL(VZ2`SZ_M3kM*VStq|o zo;MBW)?g*(DvD@-rtXN~Q7VZIk!?6=Tj3f22o^Y($wCAKz9Z4msMVu=REF4`d_*FxPIZ;oaFVjP)xrqOUOb0^B(jc?rdkrjX2S`6p(l%xyL@ zqkhO>|3v1NfFr4Li);wnxrOZFeanSjA z%)J*o`C5=kF6hrjUJ)7ITULQ4o?&b!_<&D9tB2s-wK3N{XsjKy@DE~oN5r55@c$HK zZ!eI2WXKZ#EPvAyA_7vlnKwg)FD{F%;s=ra*c@yhpO~mZy$jhoB zKm8k8YYK|4f}_&lJtV(HemxO)t^&>PfY&qfF!b33x#3}~Pd$<0{Eb;VK)P2Uua1b~ zH(@bByS$XE{|OYDd^zXr5*2JP!%xhd=;EWH+upeYGDP+gSFMe8M-C~ zqvXIdA7N|>8NYxh)P&BDB13Ni86C!vnvmXW`4?o=4gPl+E8%S(5E?Iy- z+NIt>PTUN6?wRm@h#`9ofzw3Ha2FOC30i1pOSN&@SK5(vmIbY}H*Si2_d51B)j-`5 zT-zA-{2X4;9M`78f64Nmz_t{~TtX{U@3KKo7TAM|6^$b*J%xo92R*s4k8;rb4P4z6 zGQ9y?C#lI25=)K|=dWKGQJ2A>KdX(h-n9sE+alxn_IVWsN8 zbHve-IPxEk(H{C1WI>(VAT&igtqPb^hwi8fmw|PZ_RE(c?`U{E^?=>j-B9Hr2(6WZ z4ZMZ~otX1JBvBO-Eb53-W&0)OFAh(72%WXWxrgwgiWu!SVtf>&6a_DMiJfB|NcjqE zsTO#-4QZ7Hw^VVa>i-Q$sWxVO0y~MsUc`?0p8@NL0Cz7zH+kK4NTfKf&BeVD(D!xR zT{f(Z*O`% zIn102X;ub@8DU+-fP&K)iz@kf(1is$wZbx@!C6W0dK+;&2D!;C_(WAm{x*I$g#PY> z{z|ar0AgJde6|o4>_eO>3HrT|Ayvny7W*P>$J7t?f^Ov6kZ=J!O~9V-fwl^;$>(8> zG1yKt;vhqOa)9qr(2t535Q`)9kGe@z$Dm5yCES|@y$2wbOn4LZH)3!-NshWQ)JGvZ zrw$i&*mY1%RcVq4b)8}`eleVjf*woaFHhJXCAdt5zm$a}JmA}o^@MaE37&3));P%b zAtX$>S{AexkK-3GJN3^VgN|Z2k_n59g8jvVnmAZ*ad507R+PlOS+H4wAL6DA&Ui2j zjgkdg$#%W40IE|{g}{VeT2MPmL&R4R=QChg3~`pKzEo$W9vGnnJQ$H`4li+UG_*>Z zq)JpeX0zd26g-onxq&NOsG>L_T_0?PEaow;A&Yx~Q62c520Ap@R5U1{IxhA0sp=%b zIq^z0)mZSA9=_9#?<6Pck5jFj`k6Ky$;P}SDG%t0Kh2cBqO;oima{D(r_kHB>cD0@c(JC#`0Kc82&^21jUy($ErhiU>78 zeGmbzb0ML4NS=XW3;2qKq^U}8h22meOh9+kGo!ddm2CsQ>VS_@t;7+&hWf|?Gt%8j zkQl|Zir^v$S=Pi6s(zHmInrPfxK2gn)L}V3j1i41T-c#dEy5a()ns=C&?q4U{5VdM zqUt&IM@r&uTC1pULueAhRAfVjZct41r z+(&ZtBVN#*UdSpH9ze(xIzpHRs?<}Yq*a9%KV(0&eo@6V3$iTgosv$;#;E&F zl#ulZoX^2=;)d*+Mz(`Sk`~o@Y5kxs7-4W?AlaDkT(m|~AA#1I5bh`bsiW`1h&D)o zy6M#2A&NcFHhn0DQqQNT14}(^>Ou(cO7=s2PLdD#7j?>MG?IBy-;@v(9Ons_Lbwkn zzSC^fai!XNQRkYXFm+Z*rqt)w!3)J^Lc>tcPhw;>tTFmdaf>=Sp0Iuig+W>(`~hJi zsIN@jX6mkzhN&}79bBrCQ-6*+!*s@mt7+XLL=4sV4OoW@|5K;l0{W@zL~_Un_p~pe zo-y@Uh(nNvf7DT+j<^>RBcGs=$f9WVrmA-&{vuivpbzRsl8?sYn2IyBeo&{1x;h5N z31S4IoBH&GFQTys;Xslv!ZeX~iDt5P>S6ovKS_s134r3F5sAkrXg3NUH@KjVHuYI) zMWJpz;f<&ROIo6PX%!=h5l{4+^h(i`FcgH>AW6|$Kom+?3q>Uw*@`wUmQ1rVP&e0l7wv-P_ zs8bpPs>rX35Kn|&$bpX$KCTGqMY$BM0Mrc>7+;6n2}@Ump&+CJX^HSkBwH6E9wDR% ztwC#@3;H5z-MEG{PQ7@dljbHw5qT}?o?;7GDs?K!p9`_7<$x9+XvxK$MLHm!NE3u_ zqX>No2{S z2fEINIjk6!ygM3lAX_9_XeFY1g5mKAbw@LiX31M9&nHA&QJzEkr|W2EMfgDKUK8Fi z2rbZhMb<{KhH|8$$WyduBaIUkg`k_zCloD<<_%8{DhcO7C>FxU#NqEE+$vcn#okzG zkGzzk5k+(2jA$dR6d*>Czmp#o;BUfu&^i-DMoORDu-B50_`-A0ID`nLzPu5(KMmg# zF(x4@$PR2+=?LAUVs7&92uO@F6%Tl#_&~>Vu{(MOFN}oLDbA5*h#p#j31?Uc+j$9@ z$HOAyKwAJ^4%)c}kqN{ilOc^~U>#0Eo_JOlcSJcWtq)HyRvze}p1(wf z8i6^AgIC(+N8ldXEozvVc3wV={t8sOki$_&t}gZt&rwS%jkAQ=h{Y!o5-0~tA}mM& ztdQ*Q6*wY2Qu2RVrzvjb;fL}bk{ux?2qQ`;Q7bHs)(Ps^ z(t1a6i}Xb+7g-<00K(8kU_`P7vOrqF2~k5)!U*e_e40FmY?wTe@>BA1iW7urBV-+| zy+jY?=5ZL`4gP4gC+uNS-b_|Oc`fBKgwdgOs|ZU-^bih?EP(K-MVP4~%x(_!a8o|T z&Ls<+QCulNUUv_2x{rO-LF|cNWBxSQ)^E^596Q8b@;=HTR#JX0XRyY zSg{)wk385OQ0Ll%itj6E^BC^S2W|VnNhw&;dQ^teL0v6a#Rb%) zeBdVzdx$xhdjKkB6HrH+g>O|^8(8#b&}agxk5*WJee6-6OR9pdN6&4GoGGix)~Fvc zxmL830nr=%jCtt%`cN6Ijq$!@kI_E}qMG{zb)BBojW$RHD z=*s4TN|kLwuj3qQ1GnI(1*r8kLp8BKdx6^DB={Hgx3{Ch>O_BHrTiLWx==N2B1cID zoV>%{2Vc3U{fvfhR%S=}b5;^b-89}@S*(1i>{BWzdwFT)Bv0lg`9ARTGv-{3&SW0C zG%Lk3bnJ!-W<1mP>%q|Xp_RcU!4E@6g0+HOLrX(3#uvsg{fapXRr>PEBISVA!S*|>C6&s^d-LH-WvsfXAXHiGG|iO-&qOR zxE=QVkhLkbZ#vJsRj`hC2@a9Yh`~`gNz3CukN%+a)e;}X){U*%g08z!mE&GUt#-b0FLBSec4gy2hQE5Cc)l;IIEsW{c@AW)$gt(q z&fS}?zHXY`ENf!EC-g8dl5Mn=aizySiT)=#w?yNlmhqcnm%C>~t#=+k+>I7z^ig`6 zFKF~ueY}G9m2HV@M&vce&-T_4R_7M$o2;L1=qCa_^JjQJFVyl!7L3d3n%gyRzvt)N zI8V2ne?99xKl>_%PKCPia+XYIWK{8pUD5vd`LWYtDn;eHF1tUo^->fDXlBISsYETR;x{ z2AsiuIh)l)EZocvu*Ik~1<@Dl&X>s-_-j2XKszOMU>nIN=zbkWx6Y8)c}>Q79wKWw zz6-HTh{aep)3MeLL#Jb*v?Bs{NAH1S1^H3VkhKl^}hn?Q6L5)I`2dm!UnYMTj<6{vFYgN)sXRW4SGfw z5ZMRu;h1$iYQVRE-k6UOK0)uL7rF;0u(I|=XR$PTv32-RISswM2y|9=qi0r}b;DY7 zg)N6P4+2ABL6m-gdT|T%_5Nj#L>ktp@AwbmlK2W0_Ki#x1Njf^k|<BxG!B&6Xjd1C-wMQaRn>FZ?Yu!!VXHJpXg+t zicGc}qx>#L@L6ml^db2*tb%c36Z)XSEUhG=uAC-5<$dK<)(}$tg?}LD@HXag)SwWgf0C4f!oMtI3AS1y&766rJ0YQM?hnvc*4zFP_#RqFR!*h5YcFUZMUh*_^ ziMXlk03X9-OTL}iu$I50+?5^7U3`(8r*0BgSRX!upB7Wl&pXF0tcH0&+h^Vc1|w2g z!MdAGOkh`eOLMgHhFL{2R|M@HdnauwfsX&)qn%{@8h#AHTVSc1M#-` zp*qv7Y)pdBT;eOumxzOjmNM)QV;8fk<+vs)nV%{zq|+?mJB(pkX{FG-pnj#=WQ=lJ zZz8KHhs_k#FTR(%)Ryv|QC-=InD)XPuLpQ#{#rQrc>CCJ)zvnt|33hx8dN*OjE@#KY^rwmaJAiLZtda~APq23zVW_#?NE{WQ5mI4Ho zFxfG&j?EIoL!-^6EQ60zzBE4=k=7-SO!sE@6Kofjy4OUEcUN;2IC|LU+y2s)@+#;lC$W#r9@uuw z()a4k3co3A9r&*BbpGPp{`o(82jo}F8Ib=`;eudmvC-%xCtH7YK5*@D|LkfXRV#Y7 ztA?|)&23$3jo@v~cG4nFqrbk&e6H}|X+-qB{+W1?(Pom>NBD#iUC)jcBHe&2T3{+ZHI3^RA? zhmD7!yr4}yR!iD9+M^w7BBn%kh)8rU*G?+Kc^SQa8K*Oc-(VGVSrl|~f z_K4i$EbAH_8;qS0z2BK++vEDhc|oZqtD1k9uUJjv?~qS!R|eVY*=J~@?Hyd5?2Rmb z>|ly1UPBG$`hP1}7N`*Dkl!Z%sCS|FcHSqRr=B$h%|bDun!%^~O8&EBmh-8tqH{si zchSjFUpfD=4|WxIo>JSfU&I1=iCfIpW*_#6($n^b)=$}M{n)xgvs+#4jCq^4k`s-3 zp`C%Z^jmrt-?2i~uli>DHhAC2ZC5zOJG*e7ekhP_G*c=npIW=yXIV?RGFf`j<;27@OP9XwTD_#J*hlErvHU<069RqTx~|koot@oNS|P2>IZc_ zlpK6Nlp35Hoa`GI?4WN5l=1KLXBlrB4zo1NVt*?Ow9hS*ZD%a+TOZjsTaQ>4TQ6ER zS!`-q9;X#o`|)i`W9*4?c~h+TD_M6${l8^x(F{A|c_<&gmZwB@`L1vqV_9qC6MdWT zgoM6S-;G?XwehA=-<)ke6dAH5c1~A$gmN67^tBS9wbPnt^Ilogs!QTR)>I{y2a;_!K*$Br`))5#2>Js~~cXv%nanh_6|Jc}jK=y+k+O#Jn#$ z$)zGw973j3lkE{VbQXZ; z?{Q*v^%)J2w@#8CWTs>IBJm}Vi*JFuFNFn|%s3$E#v;q{0GT&h9H3ehKY>a>J=R=# zY0gJ>c-;6+-7Rj*uUR*7Qt1z5V^=;3$V5Vo_Tb-$n@p2i&5pdD`4zv(`-%E8!2dLV z1omQ(yr*0??Z6IQ0E*U+oU9-FQ*=PK^B5?wJFFPrBiHkdq9L2Zi_0lMbW9O56|b1b z*6`}$xwI)$Bc-Z*Ltf;E#5TSjnavh{1*otFVuUEENAlKk zrP%{{-vM@-O_84{3F>q6Ab&&r$-80qY@iRww15WRq*nl0P$ z#pYk4F?*oz6+2`xxk5cacv+oS!Ep7LbGMEs1Nh&{bmS@Z`5*dcY6^d3T#-wSZEP=FV6<1_ zl`cjVHcrgsl`MsP3?y<~4m4}98KQu1RPX5J*=M{VD-rrZkUXaIZ_OHJhStr}7`eTw zjIy^-C#q+)ZLF%O5olf5T91V74KSDU9P_HSn{_fKz@yW^Pg^n1OtNK|Um8`d>8!eC zru6tL@*SaD`g_)?N?kota~XH}2<0RFyb{SKnJPb^C(Co%3bjx@&88bY#bqojS)H#@>~y zd6asN5a zON(Z*y8aXh&GE=X?(x}tAs@(FqHa3Ie9696nqc3OE#KueSZC#-(E*t0MeG`XQ(RES z@;TVKYybwWsWQXp#nVvTJs}3Lj_`YnC<{EYT|P38z;A2F7vfJD0S`z+J#QN3{0;~d zA%+7R+Ex}Q_r)IUcxSMB%4Dvxk$e#Asq98>)s4le?{XI^f&Jw@AmES4oqQ_la(6f~ zW3f)&4@dv{MmI6tsAK=7~>e2$1 z{n|I0+j2~`Yj3Mob&HaqTmkA-gCDu%J+rf^n(Otu!G-#%(6(TLKFGf;uqDtd_#jw2 zur_cyG)Hf2ek0HF1j|6{7Td3mNzQ(bPaPxeKI=5=Sgo!)SZT?wvjuF4G+4T_OC1PH z8LvE4X7TduhS5}a86WFIgAe>C{Ck3~;LyMw{||w$gDI$boeg}ePmmRPL#4Mm(V`;5 zxo8`O(&{s7g!P=dkblV2vGe;65%G6EL@}{rKFqEmJ+B z{-I@}Zr4$L#ee4iVXt$9{lVWxov^)(7i+K={z{C&&g?hQTn-e!m;*&s(L@|DQ4hV4N}*7?n-KylMV|^)nrN)4hBpFW?guuQEh!rM^-csso{kk?I|#w9-zw#H;cf zsH7gmZhIt9vrc&y)rJG&s8}pMz&y{yZE;@2$)jSsXauzUui}C*ML!vd-Pyaqa8|+tog*@89Yx6<;9o~hT%!2PZ*mdtiO>;1IRJBpB--xQ^D%6X|;+ctU zK+ZkDZuk`H9n|qx(8q`anyMK37zc3fN7(ET*&lo4iJ0jV+_47u$kRAO&)qqplR-d@ zjz=AM1^Wzm*N;F)FZL<0&+WrCb?WOf>Lb+4 zq`qA-cz$Wra4P{7TN^v*YN$y!!<@D7S5tf=6ba$D%A=Z3J?4DW=~Gc1xPldZoBR&D z{DY`R+(j+q1dtS2sM%(QYti%!S|l)1DHyQ~>b|uwR&~skjNX9;3h9Yi>S0kAp$tBR zPN8>25DJ7kB-D){><1wQsIyBQ1?t2}TtR(gI#2IWpgTgi&W}#aRqSgY<99l)rR%(? z<4{kX`o;8Yx*gmW!%UHwGYK_j9sMAB7LU$Ep^_92>fHDp3%X0LKzjue1y=TP91gMin>k2CG`%8 z6Y3`ua**CsQW~F9kV#3%Ef#mslhit9rLhSeLQhO)qQgP+q+$LSz$U&11=PnbLZDGc zh@M!do+nX9I6vw-7vVbS4HxueHFcl}VM;g$>Y&n7lhjL%0q@k+BU)l{j{3|IIA%f{ z)G;D1(?Jh)%n70NJWK<#fJdip)_gwT|5b9dfn_sB&RP;ugBJ2}skZ=+X%tY8I zl1MV5U?UrJ+7G0}Vx5AbX*XIKBUd`a?7db+rj8Mg3DJ z&JosuFd?rn7Cp~T-C{GW147miQiJ4F^u_|h2+;G>)EA`Ar;4g&F62Z#bm|?yhNV#V zGXXP^=g`x1HQ_H+p?52;FhL3RrU|D)&zuw9gKUv-uhg9I6_t=>WZ=qX~!VT|<(N4&@a%0V;qP7y)@(lf~_@;on){tr;$IE|f4GG;FiO*=5I zfSKrLKSXS6jO*fo;f=(Yb#Z4~tYuI5AFMCBy-~6RKZKb6 zubhq;xfMH&HQ>21o+c~L6kwN&;Ry#rZW8AZohT#u9?q+$j+KT zbISyA8P)Gm*vYI%_3t$=g+61BGDmDht#qMzfd};4vV@w3y6C@hjKv)}1o|GQlq@V( z*v#8Kh_^K8=UA@WYO7#5sdD9{Wt26_a@XkQ_n5kUm|Wx^j_0VR@+qM$!Naz*YJant zepZi`yN#ZKoM57wV%w&y3a&A(S^F!s_(iRmBeRGF#R<1Le%7*&ZP&?%d z|4B6wxp-NJ%NS~VPoi@o9)_mttpj`1D#~Q-sO=lx*J?ng7uBytQ}IAW zmyOk?ftCEA+@L;I1dCN}na%kPel~>8C!Qa=A-f>A`bDX$43HLNG!t2E;gYYEOJaq& z$LP!|YJ<%l$^ibkETyG~Tx_bSWg2|0u}c3$Ex|kSPI891S=*vr6d#J)azCG^4H5R> zO1%@W!)7WA0;|na){%I^Zw4D^erJ1^uN2q;irIV{pQ*nQ?5|G5&a*wwHXZia>KDca znai`4M)Hq9C8M0hLPh;3G}LUOJXe~A z`slkfo6=r1(1Y?_Z3>$hSYUiDCSWiACH%Cy64YiZ{S?U~Y)dQ!;+*Jg9j;E{XXQ7_ zK&xAIVu^dk7AiS%o~Xe7Q+o5G=;?eH+F|4x%>u=ZnS5rTrm;Mv2inO8W^rFxcF9;` zJQnTrZ`d=fi*Zc;qPcjAy|0?7Y<29h4;EuA%-TOx{&7@tl(X-%{A*oj>tTJRR_1%eUb)A}3I1VD zHFNY)q4~ZO{-|IdUqoJ=f-U~^LT5oiZbr^?|2p3j&-A+27c_(wa^xONp2Dx3)HzHR>ACBzdN_Cub z&9#4Kf8Ra~KlPk;cb}NfF-_f@oXuRV9Zj^hdcR;_V}$>vw`O6_{0#-G3wC?H@E-Sm z;f?WjPw)Twhn&jUd6^$&f8=W>zfu#G<@UlDZ$iDe@1m1pjz(W~HnZ)r^wa)T2ixyC zx2vP<@$Tx;lVcl3yot`^UdLNnRdYsR>B3RIK;D|X3VDli8+g|gjLI)rI5uy1=GdI& zo?fpGzgXhgrN2Uy8e^>+T`#FqF>h40hYk?DJ~&*i_DKPLZS-eu3KoDn&PGse7Vkg+mg|(sOEhW+{W_;nS6VcuBwQW?y)A&CVGwp`5-kD}8 zVQ_CpPXk|>0$WCt^t8-(3)lHtLgQv>Lp=t&(k${z=Y~oYTGs1zJ|# z>t~)Ng}ZzMGMBv^nbWY~RmSerLAe*?TrHqDwYpJiiJbUyk+UL}M_q`X;5?#K*4A2T zYFk(t^^R+zYq8bgTopSj{wG&St&{b8`&9mG!6eVrf>VBX?)vm2nT~?hg)cqJ(hq0e z$T^?0H{;!$o}qQJt96Ji($+WTOq@G%Pvox=v)w)rTNr1}l7Z{NjmrLrpsSnq+Wt}W z4^i2!1bY*Eqlkr$@3d{U@9lrtCfYZs@7lLUMmYoa^|rQ_1J=oGKyZ6#L*TBjzCVyx z=soBkS$Mi&jCWzd-NO3bG|!aWJNY~PLj!I6V~j}t)Y8nk+4j)>+UTGeYK};6Q8b}RxXQv?3U5R-;wW?)q)jeW#mu)=#>l0p=-9+eC<~P9~j@u$HA=t z`ffG5D)IUeUn#YhG822}MrLJ458J!uJpGb-z;YJ5>Zg{~E}zy|JE?Bc-nVa3&KO-y zm(f?O<`eu60u!u#MXK4zF!^0;6LCGz%($$MS9Y7n^IKV;s7HfWEW3bRdP|)Zycasl z#~EF1*NjIwU2LsgQRXK`4c;gcJw1POb&&EQzw1w8le7nFRl{v=5T%e?{wu5V*x+?J zQaP?J)fe-6>bs6fEGg8;vNedEpBe3&XuGQ{)VGML%I3&DMwR?-_LZ)h#!U09e+2v6 zo#Kns1D1VeWxOhHgZ`UO1u_`ql9i)=AsqJAvc&34F^ zBnJn2gQzGT}%3*HBZrvfS@UFp!YJ}xeR!{xe z*s0jWkGfmitn@cs=5cclKh1~hpW=DgdU#&=mQo#c(!ts)eHOc~2K6=UN6}8X$A^VF zDHguLY-z4i{NfMZ$LPnRE#HJ@nhPygl@rD#5tK7*4PbL0iHP!2&j(JF=8T*YB>MJ%9HMs`p#PyezjlHs% zy32HmD_B_vX+x3IK9GyW0;QEWhW>s$%2WPRmJkw*wLyf0uCYCB^fseWcW zKfz{;>1?j@yhxBd$x6p`96Op_P{}8(z+T$hz`*&ZgK(*;t^f^xAsr%-@m9)T!-=GWf z7xsAR;x14mc|@$C9u z>_I2UPxwBu0I0%>sE_;=e(w1wo+k~!=6;4Ovry5zj=s_fk<6!Hm)8^;UdGDenfi9< z?fioZK}BGFHUekx5&SA1xIrB?GJ1aUUF=8~Zp3QxZ8rv=GBrAY|+t@c-@sw~XcG9t^htb<=N@M3-26VOqR;UDa zugx(=KcIx@X`f8|-x#~hVt5Lho*)t!?*yKUqi65d09W-JxXnXdpPogEfy6DSY@EkF zkTCf4PPBYbtYYtLU>{u$zkB1aWKek>n4(gsIJ7`_?LEvwb(W5}ik?wR1@DB`rzcmQ z0>6A4``vi#uAgAeOE?!1{=X6suT3%6ZM>)97Nna1glk7gXlb&LE2b|OMVl^?k7gD9S z6;_0fUID#B@8mHci{iNd3F<3HQEz+%tNjC-=?j|a-FGh_<0#k`;rzX@<40JF3vh2W zSWp>Qb`8w?9JJksh6sV&0#Cnx2-+V&8g)_EplVYw=;i|S>4W?T-yIA6GK_E!2&HSV zm6AC20J?dOap|o@*RZpqXP2Gf3S(x~vzQ|eKmy)K^B{Tgqtp=zBCHIm|}=|sXd%fs5~`LP1%JQE$} zqws>&;E(Y9giyZ^jO`bgXEtJ0aoz+00>)(qWbaqGh3+XIIzwlN*!i?jmm{zZUn;WFTTs{ zpnY$&Q~IIXxrkpjuK>MtjV%L8E*0P~co{Vm;lh4N+Uo1dEt$>C<#@kpvL9HzT zBacT<^G*0q9pHL4Vul;2mo%_nz>;p?FWrb7d!ba`Z0oI`B#hdYluvAKjngz}O9g<*X11a-sN0EW(>Z zq7VzJ!V0s{NvH?p-bd_5UV*#$WuQi9q3)&v*%zw&dVGdE zH$ppu(ffE8IM7CHrtArvLSww`X`>9{9YnX$&ut9JuEX1CqJbLx0rj|{tU6cG`?-ag zTEOGS;LUy0P{&*?>m&Z3NB83i#`5C*Q5UhMOI+0eot6^N?b~>tOd{I^Ou-9OLr;l9 z@cshtZz;#>;9DPzIG+u~O7<~(i2UhotSu69{7{yIZKgmIv)FD?9(wr&k^Ku)xo!NB zR+qK6)?l?!!+RtMk$GEuV>*C7jpcJuzx)wv;4|eB-nVs>oe{;^hw>oMtMmlGK*(h! zqGB>upN|k%+9Gazi_WGK&*vv26Kug|A@*E`md65-aS^<%fUX9>2BJ}EU4VGAhE__T zLHEe+qK<&w0{6AjmMR_<4g&UXw6>pnj6vcj{*_XoERaLZUB)$L)oRHY)Vj`_rR4(t z5S_pzpebhpKcE3mP=`O3hwz@RGFT_y7NgJ^oM9}{2jjVbDa@&8=}sqFk0S&HPLp#~ZQ6Ksv?H&upO9 zR2AhG`wjiQpT#Lz0oKV-f$f2=V`+XEdh7A;CChxLl+^)P0JBR|- z--^ddYM7^i*nGwBD=YbC^bwD0SC>v2KfLWjSL(OB7JpBByITrvBitPv+|H&vZi zG9DYFnaU?S?um)9)U8nDOLX>fF-B-rd(}a+^?@rT)F1BeFy2%Ioc^lde^N7`-!lV9C@kaPR1SCLJ3_APj~TB{zm*Pg_jDCJ^C zn_E@So;=mwx3o%P>*NN-DxQt#qFsuQwbaVoe<|-|t&5*{uO}`^{-gAfghh#6N{*`) zQ)af_GGl34gWPDV!>!3{!L_1_b!zMa_lUgWk23BKcu*>Ba_Wo+^6G`uF+8vHjgenB z^q0)?ANFkzwXhaGId+T1Sxv_J_bL5j)+8OaPRZT)tlIP9xr1^N(&pWG zcD2FtY>&gSIAUYR+N~FtpI3H-dMlXmIzF%V)m_)_yzE}sx>$adLDk+#N-gtt;#~EW z(e_z|8(VMqvN8+)b<9qe)E5<%y1ly*%{TjWb0}*%HQLi^MaXi`c-YVD`?F& zJ6M-GN5sclztcBnCFE-bPrW;{E4gmEzek&n)aw;+V7seJ}z1% zruDf}{gc>%ma1woUte!w#>f+{ha=<%Nt2RClqr)~J$h#4*tp4g+T&W!*1pKjpRJzv zE>NZ>Osr8*>bIm*X3K)B0f+uRTcsqpeu(iW2HeM42lHsCa-f2DMt-N9ecsW5*||!_ zmFE>-oO=?HtG%k3)wh84ywvB4>!Lc{T0gQ{D9hjMMAxI613x4!O`IR~cfvby^J}-N zalm)s!M{)5^p^Du^;dY|Ea;l>u=dpo(-8~i=*yhoc>AxOF{`uNthxSbFu74H%W0}UX+v}8D zla73wTQ{z8 zlhyydzkN8`T(a4nogMjJ^8t{n82`NDtjfA}C?O|fw)Q=JRN|0~RsQVAkn$ahbruUp zlnH++Eby*N=j^@3A0=JU!_9X|WXS1|5A2fcW~l~WWwKI!ntMF^g1vKaS?-vG;qR(u z&&jRfiE*r|F>Ts_h)Gkv!s8d$z)Nk#gU-&d}5Nv}US^+DEO zYRBXUNkZ;G?!V}*CH{^XVCoe!DRhF~Ft<;ZLFy7aC$6uttuZw8Uic94s&8)A02frf zeu!RjPy3E|#(6I#7yVH?AuR7wwv@9jYj(A(qvW{iu7lPaW&cx>ldrx`dDK!`8+VOc z;PV$5TH}0tNTDa55$UBo*J=Lu@1H8TT9_?S(_(^Qaps*x`S7BWC9AZj3at_TAhfYD z-BKjl6*`3c={@S18Can0b9Km_?wp~&^n~TEONmMOm@zHeoUrBl8OH;|so%7wDelf% z_ZssG*ZTVI-Pt$4=GL+PAx_ONWPZ`WTEP(cr#{oa-#b{pmA&$fE2p}U9oiCg`*9&Z z7pfCGn~buv?zWo6bSnBE(;;za}3DUVAX)6oRoUGgYIOlyK*FZMMgq;N0MM zCt7xv{#1URB`CBtp5f+6ubqoh7U%!OJ!h5&2Mb4|?Gf$Ghsk#}j+@GqqQTH-Veui= zLSC4+a~zk&Bzgu1?$AxzG5-KLT8VVeaZbu@m31%uL+Xj|GgE0Mlal|juwlr+IrV;W zr5h_Z7!<=L9{Nx;p_{hP*vhpd=WwA%wFX7bqd#$lEL*wnzRpP(vij1JY-Rre?L zmABX4CZ%iQu$*!kTa(s&UagJq{;FP-d`mqr6+xwn^vCQ6Taqs&d!VdRy8i9 z1Jl^BE3}um$lD9)2?9J$PHkP!~VsJK#AU!|{7@ zYAKqvm+lqLu}Y-Y&>skn;x9#q0d7Wh)k4FV!^-FLt?b zb%bMAYEd|!HkZaT&A>@s1`oz_zJ@+mpr5P0bFAxc=lr~f`7yb^ zj4Ijr83$8$x{H;N%QUdvvlfb47~-YhygPG9a3?o{9%4Tmi<&!HzFF_k$4Xs1Q5V#9 z@)v(;c`qN}^1;bI%g-?UEH2jfXcjJy6PeTOA7QVe7KGO050Z*d&RtbDNz>GNvV^Ok!N#Y1xBrv4*f!q!r1_zw6oNEg#dHbu=QV-0=8f9VsYm^z64#HZ?0?Z+0M#&jiBw6^Qz^vaKxFG7wr`>z?5uhX6g~Ej$#f z2x;sgv5IXvr1bUV++cC_7PDBHE^XFl(1+Z4?lV2c{LXdY-hf3epkC6Io5UAq1>v=A zNZ1&|2Q5o#2Td z23kr+shNL|=doLJb@C*+*SkWzKDie+*kmx@Gj=lGFldJ3;(7KcST1Yy)nqT-K{t@L zWIt`jO~gpC0PKB=-CPX(g@4g*sEeQm;Aj>NVUN;f>{qTH-$Cqc9Ba75>tLau(vPBc zFhyUkPFMD-UG$k+xbiL7JkT}xx4KSB@LT;cZpLkL{hR;RMZK@2cs3x^F#T?>VBTz= zVjRmA29~i~eXoCD9>U|e9NkHWu(Q~Y>>B!=Tu1HW2P#6N^qty$IHOuX$1*L`5Auup7&!6H;@f>$Qb+vIRE{nUg z+vVOIn56x|cQ<95TA7v`216AxmU{>dKy`5cE|R9~N;Z?8p^IrM`;`5YEloe5&O8jd zh;PhCrY^Za2Gf&lVQvuDm0xM7ZF*v?Abw&mkp^JzR|l5SMSY=WX=U|Bnol_*Hw+dJ zWcWUNC;4u92YPZ{%bZ4MW0&CW=C7rOvQ5RY#?@dl{B3M48o33eKAB7Uu!Y$_uwx!g zhqF7mZ@@I&wJ@6&gpZ#^&|)8svT%)G1~OP#G35l zRemeCmEA-Kliko8#M5JJ4X!9xnjJyG$YDFM6KD$ROxsXV{tCtAM4C>v)5>f%7Z6t( z4;pM@X?`KA&<@bQtOW~uqUHbwGZuQf!}7&ov0#ay)1UAA=85$5cFV4V&YJmc^Jln1 z0^L-e`^m81w8J#fRL{6jT)3fyc5`44~k zk(f_`hszKd=noXqb;Iyz5wVk@)K6e1~Ka@3=6 z+;C~YBW*mb7_h)NHWVdIVbo=z9KD>YAfUArScVZjoJa4 zmu6}vGnG_etMJ>o5U3B%aC_-qx|MCsZ0GxuliYN$ZZ5GodR^|ao=#EaW&Lnac+DJy zMrbqiq7T5Jzo{32!etZOl>gBxGm+|GZK<{oijo>i32n1-U2&=PGo(LEgy}A{UhR>_|CGKgoSl?c8#G5ShxDX?1#-`N%fYLg_M1p;O5^?h80naO8<`mjR4QO5&2oW4#c!7&60EV zOQdYzz1TW%gH^S`+9tglu*e5WEAeFTDnCYDs3y@$sFqKZS#FHdiku>kl{h{Q_~l0C zXRV)}Lt?r1N)LgP$J1LROK%@OR_+b`szLpQ_siXcB!99zo3vsYL%lGa>{fqf)78=3 zIbD`(sYTFI|0&%`RcSfxDSu-_*zd}0ZnrXpU8e?V3)I6pGvDP6Y#M5v8TvHZTO9(X zd0AirC80bD#a%B14gD{u@7-eR&}o=0-r=6T*J6M@%|S(QjAlno@-?(IYry_4i+Qac z(1yD}UCpRJJN06~bk;Gwv|1SJ3z+C@n7436S*>>>w@`6z3Y_8*s&8j>hQMtPh-(y6 zkyJ)i`!8mpo&d~7g=(xwf#!-F(wl?b*bsX5YfLWb4IK3tYUZ_=XjBHvK!33x)zPES zji1pqCQnO2P4+P=$qpcX3mF|OdpCIN{o#_$LVY&}*kN_xO$9DQIrzj1XznWBFOka9b4Y}D?e=J}t#3U%H^P(ANPCASUmoV~!s`yrEH0BYT+ zS!xfVz3Pcd{%idyGnP)!I_RmS1gsjCcLQ#3R82ECP(A*+A8Efd(AL zIdnqJdLekWcbIv=9XkS3oWb1CDj?%vDtbda@RUZ(dSFOdc>g1$SoJ~8*8v`H2~^A# z{RV2b*YpNhE3Coj_ylN&8E7qBih!3T{2w{^3-A4n6!;kT!o2$t$d?aQ{S(l>-6mUs za4x_-e4;Cw0mzOU*I6GmQy*GqHK~f4>Rr^}A7bV3M!ydX=9(5ys$guafp2XOyk#f! zd&8iV89@p%Q3}}eb@5t5_$Van^`O(=j>>ykRJI2e;ITm87T}eqIE!>RJ={inCqrpA z0jSW3D>hMK#CS5tH|k)c!^%RGlR ztf9`+#(EpL{1^B%jMA?YJCmr!>0RgnRNCJFIRO73sFn*D+(B?$XM$65A9Zt49|^_f zBjzpiCUYp)2Z`fja1YVQNUORk`eBh8sM`cQHis?LhcMW$eM3u*_*9YVF~c$VLTV=U`; zXcRL?Ij=2Z-;gYIt$L5dGcmdscQOL*JwM28QeGRR?xrSk9%o)2I4K-3m=`2OZ>)0k zIVr7m)>y2I-e_Ny0s2$S%FEO?>LqB#-s!(<(RvN6p63E>(V@R;2(CjFcq%Mche5q* zBE1>Eny!5z;lv7sZEN(8HyDLJfrFBy4Ipmv0vf9c+8Jgc@U#8svh#%op`4)NW<8Sn?K#`(R)K$LUc z1l9Z~CSU2Qbz>swJZQxPpkj65S6__uf)f84ltABbF4f2(wDNu}0sbfPV1fSzglHfX z<_Jr1 z6-IlKh%q3H)aAD6tK=>EB6Sz}U9EzvTB43)GMNrE39JMY?s>M>Lz9u{a2D9q20e#` z>!@y5f|yxm;BFLEJAgrQ8YA;-usVuSGjmsI%WS2MF{(0n21SgeWeCOUSj2d+8d~N! z<_&ya?x`-U6b-;f*5YYa@oIlEm$pKRLM%qF=TLHXhi}P#wUj!BjHlUfhF^}{gspg9 zSo&4ZQqN&tb?H~3ZX3p2f(Jw_lvPlg{2#;m3C~kU=%0Q@UPCg*oCNR<3b^|k`qes( zGCz~O)nlSE05AF1m{(;c4iAk$XB;@TExgfagovW+w)BY<)mfbY#li%$A~ zPDVJcXum!QXTKfDajNdrrfC1EU)06g1Yleh$rbd+DZoc(Bi-UU#y<&X_eHA)&DRP% zvCp8Y*asA~FV=F>7{>9V7+sE$_bBn&G^R4?rX+i80Wg9Z*W+mnO$m!5uV#Y+*3(qtirc>FMe0w-H zO;u{RkLT5P)b{1lhT*S^M3tFWwsp};VUb)gu+=p=|F(0tqhj7n`?$QS_PP0K`TJed z-QS(ha&D&NCN)i*ms>ZaZ|T3w&#pYGM7E^|@pFUBzd_}BR^OamD!E4HS0~ZKEPbNC zhu+{n3yp+z!VhbFh|Tawn(r)>-!lJdu&>bHyu#)Q=@Wgb#KRId3(pK0FP+Renl>)G zttT{K58m|rlhZKkbf(pA@vZW$&7YiP`?&tYh@`3}PnG$#6081P^rK-G1eu>Amq+oQ@!_XrU==3*!+%^)JGc+Mh`A5TYcIy&wp9hbFKti3!-TWdzi@FPUDYa z=W4}Ojfff(IG#BxVfi;gTip!DUKyQUUur$C(4RcaY1;cTCqWcN5fc{lq1bg#Fk zWG1E;%6gEVnVkFe_}3Tm{nC3XKQCG#L<`N0suy-X>hHKghA8{PAIaJ1>r5M^wUQ@2 zlFsS1!v>c;QD~YWRQXLlh82lNyQA$69C2Q9S(sAcu0kD)+$pp=@}lK|NDPz2-fEn4 zO>P^*ihc?e%kp=Z>@|I%enePU5~a`sB}!iTt(llM;Q!%1qm+FJ;%1DjK~| zSmzJ1&v69xgNB`wl36|dyT6ZZY~+%VRmN24e4hz#EM-D}R$;Hvf7!8 zmpxGQseZuS*jBN6$!g<5^SnOaQ$vJpEZfa5IhHtfxjQN=4Vz3x=AD19x*%kA+@Cg9 zdEu$4Wt)GsywfXr2l?FeROtN36PBS&hSZl7u$hZVvvM!z*_7qNQ}WVXEN5T-Sv7}TV!a$m<&^H|eM&dGpLEtD3ZOoQ5^ zj4DZgud49DRVXS0W z%Kc97u${RmwgG7fzlAd32kICZkLy#IPg)36BZ}6Z!~w1ELwd7A_$>Y)_}c^cJ*a9} z*ebLc^8)&vr%E^VhP)|QJ=jiaBKMNo1$z5y2ZZ3=z(btDzw%S%t@;nLxu$dR+zR## zw^HaNt`W|2%h|u#RMy9~V0Vz0(E7GV{oy3EX#(_NKWk-B>!<+7#U9`dQ0k!3a1-du z?dK|S4z?3pj?Tr7>W%(fBic;0C|u>LqyBh6vdNLs{a}dHMfxDU!2Wxsd|#=co>e(G zkW|4=vlnU`zjJ-KpSdiq5}&~R!aan(d=2{_txb#55u_?+f|KBI-O1*Kq zE=JMk|Mk1i%M(kI|4{STS^DB6|8r|XEAsAyVgrg4|5jz+cVt~$xQIH)-F3&=>PHE zgR!V^oa7sr9KuxFAYs0#R75L&yts^O1dhp0@?NW`yriuDm(rTq9Bd#B4d!_i*IQ?c z{5`qda_48&PT!FsWo&S!8F$%w3t^#Ei`*F2V}CiO_09kC$xm~_#+vE12G5s}*sSJ}|WpUn4j zKihk9O|@~J^&T+%ObPh47s-#bmdam&k{~i3G6o}7#uf{E71JokI&VtOqnR(bBWaGRX3l# ztfZS>MBk(#>1#3%7{7?AS(59zc|!OHt_pism>gX#bZ_9QkBSG_IOhUKnLrmYQ=9@- z;S@5FZSR(9-{k8xe;$zUh)D#Q^YK^I!b5Nm8{>|=JA_gW@cvgk|d zVlB$mV5(ML?cpEfui(DsoMJzob1waR;-`e&DO%#))vW zmzo&wDC2V`Gvi~f*rLTcbQPCroM(#jkMc}r3BOf37&xewCcO-sxq13}p{HdVTauYY zRz;NqYKZs6_r=y7f!0>uM>UIYWGZ_^TWBYRLdcz zv%8Qw(7IS#ae=oXrsDgoQJBG;VCs3; z_kruq8Q|v{0`DC$x&F+Zj!urAiSAGL6MRW|nMEpfZECl=)P%5Mk^kzQ0+!^RndPjP z3w7tJDrVDtYanF1*ub|hzpm&uR#y@O%k)8PdGV1cUL7G_;|9Rm0a=PnXLD@iEON|u z()_*T?(lU|jo>l*RAAYczM1y&nktl3`sKxC49TwUIW5gftMhK#XCb3R+B3Cyy*-t$ zaXM`qx!TatKgqj1XO!O;GCQgV-9rjl+nHAx7LY9OOwUNeB;zXRk)Ck-=tcc^F@^H_ z0(QMIQYdFEZ9S(P)%J#bjZ8H}(n0hUkqy1sm)>)(9CA{#sF>t5?Po4qdU zVdnmfKFO^=*Zx}Ew6WF5I0P?$=X&eQ5320nzoOL9WK!R!cWS^RRDWOZ8)Fw(%(+<6q@} z8n_y430ImH&Mx+D{z2{|IX&!3?v~`0NoTUgBqn~nZkX7tZq-$EpSBP_cRp$ifO|e&4d48U}P<_X3GCUV~Fk26q?^w@parBOHtNE0< z65mD(A+t?Q3?r3O$}{YngQ^sq;-c=?-mC5juJZPp`5$uI=bX>XN-XuM?ToA~49 zZ-o~U@0dP^78f0kNf|?Z&#gxyvdyoc^!q2&7KYlYJ;y8ay16I!P5!Q?2qxQd1Ir{b z=ZyhND`PfksA-nVQMHVJ$orURW0Vk199Ws`)+|tq@5*;N`+8lznfaSAwz=}R=Fz10 zKh`CzPTfJ)75-5?C*n?6pNP>Wcb@d~YGv^20jX*qbv2|MiCJ<$+5l zDubC+@rLmjXJ`8wB8}~6SynT?widO@!bP^5P|J9f-jw6iODq-Qi4s`mn(na$+IZ6J z+w(Ksee4mL(V2N^SCVd~F*%Jql}whBw~Dv6*i1sm8`CxQjwjOBgqd!BXROOr6JA?~ zS`1u@mY^zHS9+OS3rtF9iQy*CvmyK|)6b?$d^DfRiXnGno*MUfH_I)o0dab;h(Ckb zDcH$&&)1xdp7+W-Urt7NMt%6@El!*HB{A_^=FQxjfg$G2h2ItL8xv-88QU5}a=;Vm zexZ*se;0o+tNA`Qr>!+#SSzmIccu?;ECvH;!mW zE(bH%{-$dB?ZC0%c->70DWWUh*~@>;f7lhCZOZwPQ$43`TK%L?iG7j=`P)S`E8Zuh zudQ@pQ_(2n1=rtRGnvKrP&Nf4NrW{jWS@|Ws>2+k%alp?${nar2r`A0c(o;0%;+>+ zVdsd^Au(n*f5=?PW)m8K9orFJTN%t4^>Of{bW|!9;Jszt3!O#mb#lXVOXYM+Tb;xt zolF(HO)ZaOM%wC!j48gl_yntV&z?aZvU*_h0md z`SRQ|?eTWrk&?4L^<|PJsaHw`_cYqkwBAxX;%3~KLUqH}7}EKZJp4lZ4+78Bf9Yvp z6$v!mpcq2M6#k)MvFM@ipoZFqgxa5h+BTx0{Abg8YukwL;Z@9$;s;|baidy3Fg&;+ zxY-}@?DWj^|KaQ7dY<3Z!P%`aX{nQ1GxG}mTNxc`THqw}HTr~D0h$FqB7_|l7|St{Q@?xnvt88txtpb`_7~nnube+TSk@jIxEdH{cl-F9cAk&EL;jXz zuwIe9FP<@ETUr=8nv0s78_HTP^PPlj_BVDWJThdptmfCUQGL8i-@$E~<6m$oY(1_v z-gAN(p2c`h8n=95?K zDSn&qtFfGD6>5uSYa{b|V=3cP?x^t9P=URuPa(CS|2f12r4NV#=^kkBx#@gwznix+ zuW@em%u{KFQ}<{8GsK(L3V&e)$rWeNu5<%d#}#!>-tLX|K6LNP z|LRE1Avuk6CTDNW+?U=WwQ6n!C><5?o2jMcOT?riKgISBv06$Rc8X67x_-+4)Ynsb zuMAc0N*ASl`h3x6JYcv5_wc61KMc{vt?)6E1W8Ob^uj*xHrrSH%>TxP!O?h?JVXfu z0v?0=mECJUW3QT5N?47MJd=r@;%e|_ z>40xwpqsC(d{g@&SJ6+guf=Yb;igGKgkia`T(lWGu@kZXA7tob`qxm5t0*+!f8|RE z)Ab2TTZIHxdLz8;?C*0|*k|M>=UmD4XAI6*l-VrvffL!QVkPUY&<3{iksk~7jJ_5+ z+FToZ@uQqgzaMPoOZ4;)E>XW|B6h{o*ww~K=4vL8cKBudW5H_}DokS|h3?`|!&38W zVH7RScjwm7c4UZr&v(|_)pOs~CVxV%JNrmZd~W%?ZP~wOOv%`o_c{1pNU~&DFIx+R zUWuL(S1xL`wViO3NYu=>(PjjaJ&ZR}qPhi%!Bd%WY(GQ5(#Cw&5XpDrItc5{E>maG zC${C^^EHj*#W>2d9$>Wun%-HyYwin9XMU!0uf1vR;p{ot$Fe$PCuB^_y6S>**Rb67 z$rfQf5gr+9jV&5+#qtMdV4Jfd`Ca+jALqH@{ZqQE-bbzeA991+V;F6`V@fg%5YCA2 zjD3wAO_j}mh*t5v&Og%~$s;6DKH(qjGx%1x%DGy*2RQG$mbgCH zZFqJV$3@>BErzuU#l^*9Yx9uM7U9XE{cNJClGsvo@Hc5i=DzYZ7?l21`m28f9qy=Y z(-TQAwiQ@rCeF>Kae4d&;XgR?dB}X|h>ik9xDBVto@!r(C?QI1d9ox2w*+%g8H$u2 z%hi-f<%j%CF0PzcI;akHuJ%qFj0}*Lq!KN{ZiKOIeQpHTnX8Ezt}s`D%Vhhr3uqb{ zM>;_}ya0%Ie<-=9qKZETsO%-?7!yGD_%8B;fLRB&kB!WOV(MQ?+YRocdPhz!lpm|-g&M#UxEJupV_Uf8N8hk zI*Z%`I{FbP=pp#I9Rl*;D)6&s5`c7eB<;vNau9#V!{2We@Y454U(W^p^G%(khN_R? zj~%B(DKXH#S5xXMjg-Y$o8z3cLs|u(*pq-a+UQL%e)h1R*jzRMmexad6kCEdQTXA_2m7EUQvzCE8!(Q=a2F41ueD8Jx)sqf!I(Or z)>dKc1HMv6^bvE8_QN{dZu+KLcrLjcS;U{!9;o@gE7*k`9H^4|<7i1-@5_ z`p8!D3)=H2SO7hNs60cK$Zz0ERn@ELMd5u)bgx$6fOA&ct?j~2`Iz>*)=m?V4DueT zoJ_D{%t#ve6~7H?HG#2PfX18#Lf-+(@?=s2&cl=OJ@e>7q#FD}%hOPrK=wi9SDyq? zZ|e(;`6kd8xbeeVy(zA)JTz~iIuF&iglh-|V(x$!fL%+|P9igX9sCBnX#F*yrP@s` z1x|!L^*vBZ)&h$72^#(02?j=6=+g>3 zybb|7Tcpp#^)}Hj3+%EwL-EF8w z-+^n93q@oO&g3MHzXg4MH*{{>&;u5M|8)kuk-P8#c#C%yLTlWcssB&5SOMMVBw%N~@UsVe$@=4JSm+N6?p!Q5It40o6I7E8 za2H@*0&YkmG>MzQp6LR#u7#egy~TW<1Ha`n=)b3c9_-Xw=vOhO?nYb3z=b%-WYb2% zeN|$<(DM8xIEg&dn(7T$GtdW{`ds}@I;uAS>uNO=Z<5*#t0oovom*NXx*safC1@!J zH2bo?0(_!&+Hj^F6qhZuB;@kk1DD|-GK2nsPtqW0_7~!cPU;=-jCqiE-~*=y*%V9= z%z^>v=cUj>ziVdjBc`BVKhu8J-)U9#PEgL*!M{g=lum)3Pb0&Dp06iYXa)M1Y^49v z7_3?b(Qo8CR`10zI+@87W(QQ#vw+pQkpEFauL&=(HSpP9C?A&{sO=HyU0_onA5N)D z0*!*_B&xhn^0c``r(d`XVZI^Obllj&q~oU~wlmxmTr`Qkgo2oA544HOJoOaJ@yfFr zRD-L9gFgR80*g1dn+*_j-3PSC72=j{ov``#bw>Ph+p@+pnz9 z)^Qz$bA}jerO>)oHFSAcdt1EqjKyj!EL>uHqD_J_k=o1a;k-IVV&x|CE47l|m>VqY z7T=k3EjKJ3Z3nC^%)`tsLFB%X9Cd79k^hwYiDQkuT;AzyHs?`x_iS^X)$uWZgEupn zE9a2Ae0AeTbC-}Vp>g5%P+#bqkcXB~QzL_mRiI0aQSM8;^g1v*P#*z(g_I`h1pN%y zc~0RcQ)Nqx^?+5k8f<4xUa)@Ou<3d;ZHUD9BR!{`%kvM}J-MgyrrJN{4X}@Jw)Ip+ z#NnUnC9OQEFHDBt)*16hOWTk?tQE{(EceYpK7(t=wJ~?G(l)*Fc?l!EBTq3sm+!S`TK*1TEU&={>OLNv&-%DbPufY zHuk;$5-TIF3hV&NkLYD+u@51zHsSM7P51v%T6~y{$w9ywWvojPGmUjkZ28 zMtUDS9OU)E(u%-1aDt8miyT-1=`WmNBMqe4E{GyD+(`VHt zs-K`pt)cB#$LsU8^;&x{=k^1!uBBEaV=+TjBs@ulKglbM#pS?QiKIJ7Z8DDbfd||{ zwk17{Oo{TOhSrB2PUh?VSmfJjMQA{q3_eO%WsBaC+T^874Et1WO+@lm`H7Cw;?;TV zHPx&9OI`9icxddD4}p2~T1lY4YGw4VNOlpxLKq1j!Xa=rzX-RG_u2`%4R}@@=F&f* zSijDcr?)Yt57SS9-+5HK4IV{j+@+)NKY582#vXV^S7zQJTjCNJQ7rsPQm{(6rp|$9 zM_pvraJZ+Vu@5??-N9H=nRI1JYYS;Cb6OjK^}%ZVT>{Gc`EVZJj#UB!mz)!D{df*f zl>qWYc4@oG32hR%JzurmP;<}KXM+W@M{7zN60e#G|B)_wD)L&Ml2gn+?Hie>&m=Fj z)&w#_@Cl28A+=2(kI{1w=DULX`T_jHf>gbcnCbQsWG#aS`T@)uU44gjSs{%7SK&js z5Z^TyI$(bchn_vi@ajCc4lN?#Sf{)vx#~iU z=xv!6V1z(_560Ok<`n6x9>n}MU#p4v)CWe}9%i0e14$rL;4ZM5uo&_E+Cu2Uo5LY! ziQbHqWBO?oNF6XPD}o(FNIPZ(Sc@&OpDd3#{w=)acVp)CV`i^He}Z3q6>Gk)XOdXnWj3#NE$a4Tn#7TOfD3wI$KvvPOjiM+%Lqz8SjUsv%QVZBrme7iHG z2D43@sZFKJ^rNJ+28jf9tGzHIZ@~JX30NS%0qs1feqyTAT3Qp_lcP*Ecv!S%s;PwIoOr9k=qM%{xJe9uH{LjcS)V0B%U(m|=(OZK;96i;W|DI3 zD77B?*d6938KAaM8*)RDK-G|xf-?P*dRp&A6SX>E9ELFOs9huA5|t!r+5xPbJL0v% zY8IVLs;eL2Cb3bwiuFb)a}~YMtJkFcmCIOXtkJ6LpW!=If-GZ(YM;qNbuIGld`ur? z<%E;!OcSht$FO4PWJ zcCIs16~fLypOo>8yIi>i|ZektqW&B*G${K&{0*pxe~; z%5FH)4+HOUx}FDb_RioLyJ-t$iXKhpf(Ln5RmmRuMBS?%!%Ex7{1KeOTE$ht>S}B5 zHB(Pn1V-+0)*_E$c9OBs8dOkz<4fzK!8V@9bVX*Vj{IVL!kW^RsgjE<6rTDSt%dLk4pc-vpzRcD ztHqT|*t7Q{*K|cXBTiAWrKhO!mmo`#A99Ym)K16|ddIEhw#tW*wN;L}#SfH!quXh$ ze1()(`*5}OA=)S;dYr|~R7-us?O?tKQ~74f819-jFgQb)uXlsGWB|45BeBX7^rQSt zIhPRbH>n@eewx6)wU5*k-U(fmc4|q^r9OMqkJ-~)b zRf60@rLgvoxCp)!<@jovk6s18{~T?pUQ&AUZ6zC1m+dGWX3x_`aw{$ltM#(nDXp8D zL)+?)6gR6g!{r_NPIi;Jm&}qw!0I2TjL>hhC)E{Xi8ch@mSwd*`U9u1XgEl)6m?dK_%TAxSxyz#G9IE+_C(eJXLkC>2;g z+N?eupp-=tRY#=|a&@+-;n?>XutTU1Z!U%Whf0IMb%TqDqRmFGST*v5IjkO~ZS>*l zc=}Fh2H%NSYE$|Ve)B2VkuIPI^%QL^TVC1Dh~VfZlS1&9>(2kI=ISNLXZ<`lkY)5& z>~t`94`XzTVykQ0^}3kX3h9s3t$5mcE59?vwN>!l8LZu+Ckxif^rMOdO*$C6theB` z2lPqWC~XYgtbSBev6oBNS*|jnx}-#Xuzs&w4YZ9TOxCFn-U(_;(O1oow(LOKKss6pqs$jKb{5>cy*Jit;+HKdW{kgZ@{=d#B!W_(A?@n~cqoYfnX6wGLknG9v2z6AH~g}Ptq zs$Nh&21_Xiq>a*PslD_UD*V!nJOu%(onf&uv8$!Z}$c~B|KZ*&0L*aYn|OZ(>&{gVSX#T z_n^8GHyTG-(yeDLjl&W`N}B_=7Ump78zGUM55{h3<$~h&m-g@RP4xZj-{XBN)x$_K zoo^;Q7TQ~`7_Wr(u#~pEv7Hq62uZA8?W(Ze#-6VE*6f+Nj*QkBe`HWwpv!l&z-s${FK#IIc>| z$tLcD;kfyy$a0a9;qT)vMrTIc3ttj;$U0G2&2ON4gHqs{FWptsu`z#`Gt||>9;Uw1 z|8_IhIpQzIN0zE#oum7kCWn@f_=o?--9%o_V$Znz=AMz6bJAUzg){49tx0R=9Pg=` z-w>;=p@Lm}WJ`%`6ILneO5CrJMI-&;6~d@_oe&g`X>+7K!3w@e=ivOa&NEK4qmZ|W zzRFi#KWsX~oiim`K1J-a*03%LFKX^1IJx0umD~fnkb92anTgpqGn-{6XNKog^z?AH z^>09hw!27;cS5Iz{TCJzJvXXIM4gCpp`o@dhLU1DyGxlYj|uefq&c^_T+Y={H%?c| z$ua&R#zx$FF~?LPLyDn|^7Xd1CLJjA-+I?j;CuYnieaJi%ZoyY1e>w4-g>T(5Y zNl*P#*-F$Zv==*CrrKVZ{!VjjYzj*!?d&RtsIis>a<=xJE==jAu z$G=0atpCQ(6Mr#%whahd5jr&75l(Q9*DbZpNqiCu{ek*0*d(ymThhD8J;1lnHAbz4 zblciuIid-B#5Btl%Pzwz+gQs6ZiU#2y{TQ2dIui*UfGA{r`!AF%*}0?-^Z~te~-Uw zaJhV*86~8Nt&Pn?=7;`as}y!9tbRx>i_?6<*qxh1pEA+v?%=z?2!B)WU%qHx=fDai zpUtF`phg`l)-fpNc7|2vK9(xtao)!_W7et{q$feYJK1&E`IjT!zSG{{dDW>p{ecPa z!5)MJyT#%rLzbnCt+(|cA_!Vp{x-ic?G(>|!}5)ZPzAY!^dPX<=MD__jgWgQOM)f1 zNTxLVPS_*7H2x|+Gd?v{gF9^~&p}1AMlLJ+y{WMFPjp7OTDk+yPp;=alYd1ZL@kBA zT5UEC$V4jxZwa$}Fa=DHO!o~j;wYewf5SiMg!YS^CB@4pf;W&%wo|_+&zEh&E3E;E z5Fc|*xN<@VaUx%z`uJbz04*BK{?^hJDFy1?d|&Zk$KXp(id-&`7QC+9l>_=-bvxO? z-eMBC^+FwXoe(a}=WFq+xMuuS+KYN=DDmo5$N=o!w&+pNwlI1Rq;wpC-oXrp{4&(h z&cLne9J5TD$7G-aI$Iy3^1#4HD$w|-ebvT#OSL1ahCk`$P@&q#3?iSIf00hu3=F~$ z>H>$q7#YWuAUEJAUxJwo4tXl7i94V%ZH4-wf@;-h)VxOMFQH->hkaBPy)1TV4lvv& zVQ=$0vtMfuy-t7aU-(sBz#-0dkxKVL5=zj_A4V$16zukTpHXR z9hk#Tp<*`_mAou?iao-(J_n9h1?eEaz@Mu<_Hlio7V3o>VS)EqTf7$je^OMf< zP#1ez20AzjPsPeO->#_K75K!Jz;{;0I=3El0|nk}1!?Lj&?P)WrSUt?^c5ZgzKzUI(a)WG}pK;L&r|Hl6cHS-VN zp^k=6`~^Lzl);Yh8XT)Av_2P5yR4=!0G==mN73LGI1YYi1a*k&IHTkESpz?#P+6K?e1O*?aK%Y*TPzOG#%lQQXjJ3v@E;VRs`>;SnDYPoiAX}cQs6gP0qyC;?>W3H z3(klIsp~P=)fQwg5WFW3M+<>xpA*h)JgRj%YMLVc-vF)IJABT7Rfid_mVUIq2B$(7 zssRPgj|KTDVfa~)%uxxIT@5NP3+{I~j_igbUO^&dTsO! zR0V-D_`#5EhSrS3`4onCXhAN=dwj34wZHyj#S|GSqA;; zHR{K0aGYecS{)qcGg>Sh)sUAsQwHtv8n4IVE(++2;rOm%KzRy!uz*T@B+jkClTyMT zing@kH#VHT0q0imPY~ZYi;9cNOI-;;tCG2)1&p^;e+B%u_JTnSb6Bd9EV!qZd|*Y*#To;%Uj1y}hFs@As5 zaGXm~v`J00TnxNAeYn$ZoCA_~asDcfQWWQwfTy=6K64GnDUGqDE3PpNcd#4I&H^=D z1AJ>NFf-r(`?-W(LDBD`@cCHu6c3(!g8pt{PN8jca7}3#OOD{#s{-%YQ}DB$42QoO zcw(ZEW%e4?xJ#&}55bu{KzhhRJsp*UL8uz6!+7-(TFi66UWx)~_^va+0`3^+gzZrr z>1pm~p(Vo`1xDsp(R$mC2%G(f1I5{J@hZ}9k0?6`WrrdWuNBiB`}~=MxQYT zHAgQ?%Q8QZDtH*P*K+9UkZ4_y$87$?RzmitM`a_gIwXvb_09Gi2#u=LFElNO%R0){ zi0)0|($?o?3Tw;;Mfa$38N+D93Vo==Glw`6$&`ypW#qc1?9k@ILSc%~O}p>xYkw3# z=%+lyHBKsNscoCYtyGJUK4O-5MSl-OxGyRgv!ru!XXPF8&hKdtm@3HoJcX8t=Vl@S zkW-*t6UONy0;l<#rY+nJ#pgpVwP4kY1`T=nB z3}<@Fm6Z1MH~u=X&GiLN1E`Y}A&J^Sjl`c8UWAFiBW=5uAB*BeAi3d6aQKutc8F6?7644-$RBD4Y;{_WZt@{&#< zDk;Y`fm37-)NWgWot{*yt446(i)y!(c3Obe8$#I{sGoOSG}5gA70dl=qEi<303bg7uk7S6SRg${)NsKV%RA4o778>;TrJS3@`m1 zT+cidw(}jCF7R_)NxN{Pm?lb$9HVLl>1*0*^(v~z@1Yl+2Hjc*<~O>BQe--BlfNq^ z;3)bBlz%B&SK_42Xgwn6Yt_+uGHQLdz?T10s{q%_x%jsRb60zSG?saA*{-7%lMT14Q_5c&GlP z_ty5Rcd<^Z2(~~CwUOFVe+zB$T}@M;ssr(q3Hou(iIKDzF!dm6qRlXRRAQQw#&jQj zLEF)#Q1ITTMUg}o3w}UDwj+0!+ssX4m(z4w2-yIWNhU^e7e3FzL1dEBMS2{#=U!;%tW8n_*XYhg)rP!E;{6wSGI@QwAct{w`Wm6BC4$j^%WuMXlnK7Sfb@orB zK8|5qa%Z{kRD_%BV<3lhfO*CI z`+8rm_i{JzTz58C4^c}xL#>8S*SEfrP6rtnUN`csYU*4$U|oqV3XKf?6saC94rP|~ zEa;v$vhe-lx+PVDw@Z#16%!7Wt5Ydb_M^BQdz$&I)zqwNjSf}F-&wFSc*mX`_jBR{ z|8%d{*-IJdIP55pL;AVk$O2FC$ygg{i$igp)dr~_I@Y;1dP@>cCN}c-aAum9!!si9 z=|3B9TL+CrG08YXnb`?;HKS^%e?gtxdpW=6wJGRW@NMCZaEW_wTIb52R;iZyiD$M{ z8#$9=4v0Ki_;`Mqytbiw%5~qve?)wNe~d%5|BSvFE+6e}yk<5tOUy>b9CmhDD^q_ja$C9FVi}H&){ z0%m{NNR9qoGNX7*@&970q-l=DapS!W$;1?J?$*Znvy#pSz6<SMrbhQhQX^{UYN0>-^X!A!#|yUGd4Un>TPr%s{Szqg#FRm3Ef0<6p*qF8 z^8dk2qpIMQ5B z-_7{=_(5^!l&!IS!REow!flLQcwJnvKGDC3ei9iGX%Q|i`Kzcc)m=Qfd-Lyk>|GoIRzB8Vq>JEG*zNNLnx+79I zST*!NDu1lf@?5WaeeMg6&$X$JPkqlOKAzMz@UCixzbbsG;F*$}MsF&x_mZZ?UI_IG zHV?VNyCZ!`L#quF8&gmF4PyxN(W?Q-&vg z=tzyeP%t<*zG#`gP)^X&m3L!TN@f<#Ey@Zmh_;GUD|sGw}dxT@nc` z0%h;uS?dkCozBWs1X=F3{FM@iCe3nvX|@i|$p5iuS*(n-hWN7Px)J=KsCL1q5=W#_ z`mQy|G1+~^L!ZiGEEh*qx7YM{jmPs&J{H{?>=PV; zzrt?3qm~-U;kw16i)Izq4QEAehU*4@FI-vhAh?=lXqTx4^HRUUFXLNEnKa#EI%ilW>xHh_` zsQFkb(v&XlXMG(4o#Ogyr;XPmzlGPtj@l{mc`4QGLw)+6N@j&xN77=)A_qf`;xmQ8 zqVth!+6dpJ6nE;__|H8Hl)tguv_{YBC7sg8h8l;|&{lo9yxRGq`w!PWZHzom-Y4x= zI;h*JFMd+*58FisV(w7CFN{W?T+8 z4DSiI*JnuA)v1nj$3`_pxuEn`Z>wj}wPsM0_p?}GtgqRD8Zd2@4RTn{z<%GESi=d9 zAKhIw5{^<*1>3EXj%9vq6dCbY}HhzD&_Fl8so@xWN6KlSIOd5 zSsz5!uy)v&FI!~qrlR~B^^o?mw%GBZcbWHG-20yKWYYO0x;^q^Y?^r)ROY4F%i%uJ z+-N~GA@*GKQ0QvO%;3i0`!RGdcZz>>ps)7>SB~?9;|O^#XWDr2fvJp&);5=6Upvoz zT~+!yhB-@|`yKDepHRJIr1^%`knCk;ncr#=b*U%0(xAYyRYjL z$0oJ1I?Y}eyBS>)IT2k2z1L$my(a&l$j$+-^I8jax%8%W*_ufW?CHjf##()v`Lx_q zQPrQ+4oaLnOZic)rM>6*!=pN1a?F*wSryS<`dSl=O|iA%Ww9Kig+4TPHN2ZzSlgmq zqH97sLPoHce%)!u#e6@+HE|U=Lhe_+7aV7$mU@?PR%`}7cQNCNo@g|Z`h)2Wc6_MT zmPg6A)Fx^l`>gJcb&Rbu`%`Np%}NBD`B^RFyrw>eJ^PM4+4(}8- z4c48J&myuu*IZ$^BM(bX29HK2$2Lc1m+UT{AL*p5iMtSY$JH0S>waA4z(5amvh~|~ zQ!>4DHKUOQ;nv1yN*C=PC6i1mW3|by7o3@L6|0ri2`j@*t3dxI7BQws>*S&28t-R! zm4C-l_C7h-j-s)z)HX?j%@T6(m$7;nMbSWPv5{fDZ)clzjR)pt^u5;hDl^{dLgtkV zXTKq2skGoS;ok-$7Z-RwQ;(mOYyWn8% zrzzy=IcQZTf5S3#y}r_FGCtHmBdsIfBJa|2?$E8tgnyiSX+GFhE*9>Y=)tdJLtV<< zHi27YfAqJ@yerVEZQR4Zu|LIsQ)GNN%V_3+T8WCkQ~2K|GRXhSZCO;|Xi7%;ukb=^ z!A-V4EtF#?v3X?C9UKc%1Y zgq(|4pC5c>G!c1JS(m5cW6=qkhEZ1Qjn!e3+%zOWte zGCT&>GL64|$S@NxHRFz41e(|d#AhCvMxK$bL!EBiz~^DJYN>7XEpTU)TnevnO}Fls zQ1RR2lh)`eRfHBxuR6bw*2U8B`T5U$Qr;icqW9EMR&n$b`y*qIxm$fhlE^ndhFpF7 ztzW2l_?Xm@__Ic2a2%lQf%>PVnd&XP+8$zuieOiJXdaX{=~?E-@@Vrt?&qhhAIb23 zlJy@40vR#CvA#6lHJ-PQoAt~9l0&zOs8zm2Ijq#ynmWGJPO0_r)A@i5WugXhYa%}k za#$RJ54$TTc^@;hVMNJZSuG^ztb$ss1VAn6V7aRXGSux^d@5PqHUeSB% z*^!iJL$jMXD7-WLLaa}0tyqVZdFeq?_5*~rf5^-x0bfY94UJ*Ax6awIr>{!W4Co!hY;t|sG7U%hd7 zKYHbR_IB%nyjN@Qbl}^zNA9k^DgSCL(cj=kJ&Qb}@0p)TU#r`dYRV3^m3mLULrt&} z;|el=l5xbY@0jeoOX;K3k#AVp zhGurOnptHzYjnG@G8a4`s4P-5<@d>s;b*=O$3dt0d>3vH=AlBZNxpC{_(Ao60W^@p($ z8CutFA-D9r>C13VcDTLAUHzp!W*xJJkrlf})q$t=py7`G9C=6YpwExhh^`3lH-FSx zyQ(Pr$uqIRo29L=K$?{*Qf};Yw1*UvKPH-BfxOreuXO>RJf${P40D5VnqAqQY&pM} zo#n>L>v+uGmggwlsmZe2(m_Y(n6r%vR#&@@wa;8;Z^Wa%kM=)boO=cNQ+vACaSMIS z>SiXJSM&<8^+pf-Z}WAsAk8-a)E|p2i%yQNj&zK!(z|FMxw=TlwIW~G^ElZ&&!{2! zynQS-T+hSqaE!c<-)PO$e)0pQHJHyPc>!68a;+Dvc;kCx82+{?+{z!9zLAsE`&hS| z;Kw_i?4p;9E!G2jrn$*DD!rz>gw0@p@{IZx(MNyE#~dHHKazhoi}BX}(%fd8Gm~@al$i{I>3;C9Lwp#O*L(aFPg)z4g;Jo?UY^*Pl zHaTX>KU$mBvCft9Q0rTJ5-7*F`fB|gQuIHgn>9c=p=>~E4pTbge=!&z_R97xbBaEW zN^NdyzgdCIX*Zy4N07+5aw=YjN$9CNr7yMd>JYVx>j((XX5~5UEAp2vwm&om8<))& z^zqTpjP*t{{W)^+M2!R1KW0j7iM3TLr2jo0?mHUCKt2Eb|k00@U(-%F6 zr|P-b%19M5JUxj15*s1sTRX#Z^uKMgFUCH_=kPmwHu_Cedf(aExzX&au6O+{O*RXN z7g%aK?E~gJ__Iy3vh<*`*YT$@&D@}VquhzLF%FXhRnh0`Ib?&~XiTvKZt4l?A#IHN zwtYV~&N0-rQfgpSP~)BR%$9mh<+N5lwlLNTe}b9O2hl9BtP#c*ooXZC$0Lo1F%Hj_ z1<{jws&df&+PGmyG+VA{{~)hWo5(Tik}?yC+zD;V=aiLX%PYUAUO+Bw>ugRQ+F~R|cZDoH7mLcO^}^ zX0%rp68TxruB^G`b7no|J-LfjfDTfJ8k$$7LLwq2aXwzfd*wXVfRSMPt3cTmDG7}t zNq$T!B-7EmRP@_qy(fPz*R+nK0S>i;WH4JxcD;yog73P~89u?f)f?N)K0G65aXz1- zUQi{*bpvcPh+IuW(^Jvx>SGJ(hpy_88iQ7f`eMRnB%vKf|i8D%!|GKdyh3CpK}e&}b$$!L9U z=q0RPY0#$$&-^?l@LmO83t?sR(n~TGeJpG}|Il(Va}riuVP}lz^>VDHsC$>oEEV#i zUgr~q{LQ1U`}~!$)?~A8CA=%fp1`lcdm(0(1^xY4smk$vA9f#M1+BrS%3@V2&s>vP zby3}~EOQjIkHpYgM3`1Tyrvi!K={uIU=$2iLKw}`eyY)cmUx~MxCZ;s!Z!b(^q(`z#PSVef)?@ zdcqbas`iE9H5ViE!H1$sU=cI9Q##)~o*9fGmp+P_v0mDjOnWxtk>InM*wM1F!-*ce zSRDhUboQ{iV$JgTmV;KQ{>3LWdUVi_TKer2DCA<4sr;(EE-DAA@TFL33;OEJyO5cQ zsGQu=o&`;WRZ!S#h1FKrc5O!J;%_!{k7EQX{fK&cDkJfg_7}&*AU+ot1fb{ zO02f9yoRA)0`!j3b`@5lm{uymX@bv_kclct6opFprh_@h*sBiSD+{kG*nxxW1Q7$3 z$nLudFI-|pG(LSD+oR5k7ef=#o7i7TaH__)%u;K<3m&S-2x5F9z&K>~OU!Ox%3~Ii zD~WN6`P5-#i9E|@7uI65SFzxFn2Df8eCa$(Xw}PpcR-PU8LPKcnuM_T3LAAEBNzMb zA@hu&jyH-*%4Ff*}Af`(bVcOO1ZVNMqORYDLpP-u9f8uju<`OMNp`P$j5Pk{bJwXMP{}^tS5BGy;XLr5MW(@J<0 zybxtJ!nZ{9A;vGHyv*J#fI`mFXW|5u=~-})@&8|yS$Dy&e)<)%S?mJAO>vA;(DDBy zzGyK@KZ5c)bIdH=x#AUZ&YGpW&H+sY#l`#-MlH@{F+wqRF?x+>Vr-B0vd(yglvDW; zZAkoIP(kdxgwj3W<8|>ZK`T)Y*F>^v%mlEAwasT{Lgwj=NjwUQ2)YaZm`Ah{=ax7- zeYE&!PGY?uRdy8;LufZ*eFWz_`JUiA!4qPxV)ew@2pWs?OpH+UCAiOq+oP=uZ6Qnvmb3h_m)2Q9n1~Xi+(|67#!7Bylct z=|p^PPfm{{=q5Bt8Bd~yXmO7-!fe{TPA^V+i|6kxS{GhZe?h-Y+Ama)) zdlW*w9A4i6{`oIG6qiz_u#{fHC#)LlUzzhk)b8wzHr)aboYvB>3q0FG>*djoO~F;3CQ(J+ zrJV>*cU>`GF<*6B;pxut#uru(bq_YC2J-j%2v;(`7z15jMAmCJ%)f{+>a8D8-XZVx z1#Og`rxZ)Qj9uE7##(#@h|W_R*v+h{T-`cGq*ozve1BMp@&;4n8Lml`p3u3Tf@+^r zH~k%=v^L{c6ErW{Mb==enY)Vd1yNkp%%IZ2ylg)u|EC{>vE~`Ilx?vkzFv5`1RQOm z9(gR-+zzRw^|?{gRaU!bno2X`1)Hb?%ojl_OQMUkRpuIQ?6--9>Lbs!M=LGSX-ASH zy*t>#T)D0}QF@70ZOGkrElB-oY#JTp_ZaEdM4%^gJD*Li$?3*uyy5$Upz4O9wKo2f znkc)C*R_Y%DA0%r)TIB8SC-)E3jTle9;?{VH&Bd$q zb8=5Fu&yBw<`WII*?w96jJwzdYbn(+*Bcv^4Dz{;z(d5TTE-M29J1wRW+(E`s3N#OnuDwO&KEngwIe5Yq~X3siId=I~fh|(Pxsrl(H-hMYoWQ(5sEmpVRkjEfg>Y!TDf5#GK1<|yV$6q<`esPL#Z1Z?rN_W z+fy8c(RA%wdxufk+c*5IJVP6#f2=mP*T!I348p0h_grC2S!n)hRUqO?Mbk9gw#3;w1V>ha)FZ*gRjw9PRoJkq(?EQr1D z9v!`;zG-J!d*v8*jFH6bEhQ@CO!O(obKtUl)&9hPT*BJ_DcJQ=q9!j|H=y(zvSJQb z|JCOz8>LT-wfKP#vfB|KS}1Lo7wRJ%e&cUtomG>n9mn(_-d$F7ueQ{hslVj>PG4g! zbN(J3Cbe_ai}|(1_Fa9r<13@Jx!2VHq${HMc*eWmW^Sn_pWGbT7T*{@q)*{7`kDQCzlzYnDUm|23IWjEaO1UO}` z){BVWp6XPii9JV2v?>s@c-6|*s)xUDerBE_!(vT+sJ+awAXZ>^bAA!YbL>)v>g}`~ zYn_#;eG-YP1Lat(mt($>0#Y2)DVL^wY_+Bq#cZj+JjZy4=+JxS327lY`OC^JtXftV zEy)NM?%9A1B^x$Ku}$>{VJ_eSY6tC{q< zMf|Guu{~VAWxkBpLM!Ss8_IGjP)(QH5asg{_}6>(4e6G(l2}DNcI6S$Xt|v=M;@!J zwx(gD8fkwjKc_dvk{r+*sSBmy=6lKx`5WVLb);2`nC9`;JF;#L0{4E}tg6hmZ&^7+ zY5hr^kmlTlB&oM~iX7w%@Mjn2=)tSuOVU^NSMpEN)0Qj`Rd*W| zl=IR_kheX^OOX>|ul=c7)$Cv`Q$Mo*G-pXp;;dg`rwo%5q_Nfu)c)RK9=5+#CtE++ zYvtMYH02dCP2{Q7q>I!Ms6%z4x2q%RUkI`_Z5rsPI)NNuJ`PlR8Pubf3Glaf>3@7&(j9f|4$B!ajA=e1PPdOtkw!t2Z7HQPyHSHO&@c zb^ZtK=LU5TI&!v_qpFRNb6e1eO?0x8R&%tVqjsEig82Ght;TX|w5ONl_wa?CC!ex6 zgWlGcoDtiWS2Q6hly@pDwQW9a-IDKd0ie*G3E)Z$+yw=`rvPzjHWpOeJh5p zRuf(J9R8MXQWmkZ+-VHULqqE&peKFAb5O0@rka!B&!;aLHuq+@#RTExdG&qAkCTR(HyJ zg>f{%XZSC4&M&Mj*dPbtHJ$|aagF)6rw095?C3MmZ?njyQv|>5B-g;}U=kBqRXB?1 z^B=&Gza=_h4;aO>?8UZZ$QeZj?vJGoOP;?8_YK3+(1K{6!_=wU0;k;}htErl>t%HHWX9Z%EHg1`LR|#U?jwb%OV*4V z*FZQS6>iQVPtO35rK-|?vL*Zj^6@nlCdAm|h$LyuH)`|!VQ9)NSwj!#w4YBNA)4VM zYN_Z@;1uI*3$>PTkCMppvgRMetK`^KS#6H30djLI1VDm(#iRNW60xeEKpt?IrG3`LuDIUl(@?4~V&eJZ;2H zGt6B@#B+q{%SU@17_-a_9Nc*#^yCHoCju7EE6e;UGKaHJLgI$<8#B+LO>rYEVtoHX z=`!4-^4JaaXhq=50+pB98QI*wvKWWB2_7dugohj4ef}>ZZxn7;jrm+QW2?=G?lPV- z+yFA+T7l&V6inRjC1%)zPjrI^sv*zP8OwRv6i8tn?F-CXpjt6{y9JhTm6_)<#t1VN zD5k&~#HtE}%zzS!v>0aG#e7<{aSsm6gbL!GE%47WtWE{&22ViOn$R_c83`Oe1>O)* zP6EjmYZfGGM%WWXESEs01im9sGldnqReHk~xR1Dx3tT*zxjn`#1omAOx{DDfz$HQM z$pQ}{ISt-csYzrO#mraO5w7u*Svv1)v@THnQ}Edt(>q2!w+Sql^LHM&@>p zzaq}2ka1=4nm`l;wjhv*viv5}e>~{zW9aF%m|Z%riqQxhPUQwI@DGI_fnOG}qM1-B zpB@BCn#n%MrmYaY3Di@dGh#&qmTAFv0`HJ%Q=ox zur3jqC9riDy$f_-U{?ay6Z=E^|GQY{9YOU7uL(p^AS@QrGnF2bprIEk2pmt?NFG@_ z1l}jsQy@%24hkG!AcbNaVon9jS|CvZ+ZL<#$i5+vOkvv*ae5+7EI>cP=HjAffn_z2?^*0Ll%Ezl^zPxngKRiK*1 zNNB=-S?>(yAy!mohQbPw096C*_H@4IVZU4KV}Z2YL;@K|x{IZ9x*U?Y2wD4B>H0K) zULvMZ=qoZvmXJ65*P4boJVe-cZkTDVlSqm z*97Li3_bP%n*34D=1OQHzY|x7o*;w>CfpuPmuJt7cy4O`s-ebhy_QT%)2mVSm$aD7@ z+TKO#uMOwsum(M^z-nQ4l-Gfuj37J7CFw7#A^ENpX}sx%XD}n3XAoJr@b0`^r>fnnxjSN`*sL$NTzAv|sE?F&zd=|AmeQ=Y|rXobD zeaQ-}X9q3j1{H!vJJB?Ep@)AC?>8g{u|G9n7D<=60Y$A(r6lg)Yv9Z8q0oyWZdmR| zK9Bdg>)c}1*I=Rkg4}*p!G7kDpJD+K$JZ>K`+jrs1>LjXkkP2PRWy?~5LbSKtdxJU zyFMgC$x?LEQP6B4Ub4g4-J{5tbr_G_VmpI7#cSN`$CYNN+D?|MC(y;Opx5?>Kc9fd z-ei48vkpagl9uJZ`K&#Sd+KZQ81RunN&|Vmxz=i}ww87oHKc%2Ak{Q?+cniP(i!7* zX@xR_yjGt`o$+3O*ZNE@Wc`1`pXL*JjrA0_2cK+ObM4>Y#;>e*?Y;6De1lt}Dc6S& zZrfi;W#rxFr}nQ(FMFb;QE~Ayl^K_Dr|7^KB4p{JJ|*L=EjK1pV$8aR=hY|>f=#qm zo(TBM;7WtpCx_9i$!i9Nat`m{z4kxy3HuFn_OVhrH>crvXx@+}Svl6*WU{$z6_C@V zw(MaKZe};tL0$|X%hUnr&|OE41&+9fPOWX(m;Wlu*U( zCDcuxM}E=6_OtT8>`3H{l4d_NTi|oq#A?Ic_z!Mt^TC(;k$ZFza$!1|*}ee7!B-J^ z(3RK-+uFdrWFa^}S8~ezf`>4cPk9jXqM=MqHnPRcr|!~mDodY{Y-Ha&>#SW(zHUEj z&6f_#4Y82iu&OKX;rTRL&H-a423CF&o*mB_un2vBGO~3CyL}&+=5y8qc<>-NN+)?g zG+AM%E3@UvW_5e6a^1dWEVG|gewQ}ESq+t@(p#oWnxfQ!X1A=VT*O?g4btr{qJ{Yw(&0Hn|MV{|@^0R=6qv@{meJReaI$H`)LnT;>+C zNXS_v_%)>Pb*lq;`a;$n>t`^UQ|!QoRG@7LI&%ox8=&<*PKf4k^~i)-L*;wBz-$9D!$_y%vgyP5B$V!2W^?Hng#Sgeoo zjU>04Y=5m(kyFV$T!YM->E>G827ZznSaJ4hxuxVLXJbocHM1IPyQwm^##}6Ipuc3W z(}7CFeiz?1T{>$SU>e=wnOxHYQdi7g=_7XpyRoR6J6;ON|4=JTmR`Y_{Et0O9*CY$ z$M(ow(Pti)XOk1|PjUlR+-p(aaDvT9VJ#$5$sZ7;DpN5Om6 zSu2SFeTp-v2~h$ku!c;<-er*!_C5InupMFf97JnLphN4d5qQrPgSONIP5TvlN&z^| z9;o(#eU_+)AFbQgA6TB+S}E2sA|zhHt}-33>jLYj*;lDSoaTM&1EkF!Ym=QITS%*H z5Uhprr+7Z6$}6Bo0mx=mkZH7Yc|Yj+>-J9hm_60>%jK1geESy2P0*@tFNP;(5?jzt z`A}M6U9wLrnbt7!{yn99ZY{D>SgXVM{(eCW*9I%YCYl2YH;$8~t^J=hmCTC2NEghn z;N|UhO?#qT4hlZ7cGyGkN3X$2;zz%ehzhR)I;4RZ)|aM%r96ku6`-o+m*kjz4DBTg z+PKgqKC~V3PJ6gj2Lxt7DPMQD9@yBU7=Ib|)+uy>@2wuhtc|yZ*sm*B?RU+UNQ7^s zJ!Ayiqtv4=>c{dM^6TuFOZJcC^0bKO|AuPNt?@p523y&atjv#it4~s1B->~&tX@aR z7uFFCuO=BC8-bCmWetdY=aVlGQ&DVfLDqdkt^|kFl6%@*>XN=Htwh^C4Ihs~*Jw)i z&B{pVYD7vXoaSWgBpT!fx+S_bXZm>QINUOs{3-K5Nmr0tVHgtl6Ewf3$b&laVIoE9 zp~23jhpCco-DOO7>_1q=_ME~O(D;P4cnKQd5b!7y9V?$K3>qg_ci!v5XqO<_Dxzv52&6J(`6%vt{n zS!Gs{VewzIm>5iGzncU*Dk?UL2eOF$|=^XaQjEl`xdxc%&yEV zH?aSv+D{;IoWo7AvUm zY`TQrRm{$Q4L#RS&gaw2yE^*$M0o8lkoGLFyINpqXW`Cm^!o%l!2w2g9xUxUkhX`` z4^TKBow%EH2>iK|{j=Ok`qQdKw$a^G6#mX`A~)vbZw0m|5kF9t+{z0oAL3#YN7s9dP9$X_@7fMDEe0$g*l^mqU^B4XL+25*_D9<}!v17EQtF>u}qt zOg_#hKsld)2e;u*5M!R%oK#nl^NE~f6RCGJjy1o6Z2E>Xxe`>(f&w?-)<$F)SLC;8|%KU+WJxjPGvdmGv|M>;lTUEd`F>Pg!DRd@lTNp!}e;UviA1L*N8{P6~D z4d;gO5jt^%Pl_Aw9M0F5`NSGlw6Q?X$>g`0T`%rW)8Om#M3o#MZ;^+dx3lhbphG~a zkKR$6XCu+*eugv8f|;DNyQ4RjW4-V4L$n6->IZ)H3p=VclupJYxfAcM0acqw|EX9Y z2J+e#^cy!L`h5fOm{pY3s>b&P`XyGk0^h%l9()`x%_LqI7=iFvG}sM| zn7_D-i)=E&cRR{sK`Ay8rg!0|tK+j*6>b%%kid}y9+uBIgokq~eTf`Q*Glnbf&Z4F zRe@3Xp;^z@LThmdL^+e9UZSBYe|x znU~;Xfpz8cBmAL@_{rd%EXF9%u}7ZU0^1S@n81a~u*TJxpTNt7pPul`7JQmW%Q`Iz z54ap2i)cmQU;+&jxNwm93EWzsWCGt38T>2r>w_{Wv?cs{1-2#dXMyht zaUP=+H46l;B-#+3cLMVg$asiebw2N7i~{WwqpC`Kpc4E~>C2FiSa0~dx7i*%%k9!DBq4N{q7^L=_H;B%vbCP@d<&h3KUQvy^qFHL?42qME?b>j_|@2Q4hig zQhetThAvtaD4^H}!s;RDCOilQVk^A3#fZfi;&{!&Uy-9sXvSg(ieKRkD*P;cP)Y1! z!6zb1m!NJwwBY3D@jf)a!?Q@+c}L)_V#Hz}3Ex^l6X9*>pe+#t;O9|Trph59 zDnNH(I}mFvkXYgC_kXBz5q$^`tsMFgG!t0oHRi3LQzp=YkmwJ2U3kww!n}p|Uw-NO ziG2|+9mONxOM%U5P($QR6WD1PBwY$K6j2>w2c$!5iM0}bxB{IPSgPPSQMn?%^iw|M zyBI;3@pzGG22x0PREih@!Noey1w}=kwMYK?0^1in=i)P|%qy93r^1gyA_!jhA@juQ z-sXRq@J2RVl1JMjXIY3*7@YYwCq;QaQ;wbNgJJ?bt-}}tw5cQ6ikMLitY_6Y@tjaY zkRdF;F*8yA&K`RikJ<&lPHANW0VMoOp9 z>rKwB{hSl0(1QNvtUt!{t*m5#SKD*{ABOhUpOdB?CwN0N&8GBJy_CvT`1?4N6SHdu z?(zzeaL=O)wUTzz&wh~7Q;ar>l&?j9RhjVdNQd z2WOiECLt__^UxUPWB)zOE$nx+nGZR+SJF~C?X-l7McnCx$K>N^#PzUWKA_FpoL}vw zb?9S@Xis>AUgq1|vA&DkXIt@9{0t4ECR#u@EZpnJ@^~0rt3AIvIjM88D>oxEU~_WE zKP`13w*r-E&|W4{yW=r5_?mLDwTc}y-afz$61zS(xk9o#y2xHX3v2sCW`7z^5z**R zL#CqRTCh+z5Zg zRAq?;b}fHKj(W;qn78DG_Q%#;{#Jfj>S1Mo(|svZlZDLny8VKc2OhG8JIo;Z z5LWEBz{CajJPSY9XGPlE35sc^Nr#oQ#x=>UbfE(I39!FiR71XDO(HMWyXIi>mNhXe z%3}3QG1>J?0uuE-7S<>m<`RsNBR z?v$9jqi-!|Np-bf%Iy zfk=Em*{ya-ZNRtRkb6O^-O74oVJk4&WWJLo%~n?7Db`6oYSvL+;Zvuqf0S}$zbgx7 ze$l>Uo+Qg?UF!z)nPBMDH(FpW1)um#uP@hD=f$QNZ5+?q*JI11*OjlOWn>lkT}f64 zT6M|&^Mbb5>}$Q^Y@vsl@y!Hdmj5&X5$_Wpq`t@-){=_E0^^ z(Z}gEz0xvAky2uRsvID{*N0?K{g>P-wE-=kan4b<8F%bCAWVN*L+v-n@{ytEnwRkF ziH48r3$($O9;#y0lD$@(-ZrX{H9llEjZ`oWI`-Q?Mc$W(YJIF6bHCD$Yy+363{=MX zhQno!u%B^WQQb(GI87&Chit#0dbOq^7o5@+KgpNzu-b(eaYMY4`YL11LB=fUH(4Q@ z!WDe1bme*T<7gNBTl+|DV}5hJdQDntWE(o(oAs?BMmc$>GDO;8jI+n9zfc`wEHt{M zCX*xNGP%8HW0l#8ec*z$RHKDn>+Gy=z!_4J-NTT=jgXLQz;1u$Y8a!k;6-YQ;_s{8u1uG{?|ZO203j* zSk@FyuL90XTzPp6^GZ8Tn|s_QQ;@#fI610Ag-x8o4Y`YbgT~?Gy!eH)ISr)vD!sdz z3A+y+!9rShqIW-fWHadLWhS+_rwjXV6;8(x=Zw%*uS1st&S!k9=qZQZMI?ZTZxfoF z%BdzY<+?fd@0M!Nfl}>3M2TsPDus50b=X9=5V})@yX*pLj(k~~lXjYvNzCt)^5fjR z--d?kIkk(yL?&X9Xv?j*3Agk+(4;>6dybRmU954!GT8{^;d%Oh$m+bojBMV0oNvqm zujz`-u0H2vd+t#mvK}%tc}G}GputgYPvS1ToYV9$V5)~X2|QV^xTVnI&c%* z%E|mX=foR)>oxR(DvWFZGZD0pFpu-}z8Frr%{jY(Q}Jz1drK?lobMIVC9$0S7`B(H_m8)25@|wBN8s($O+H)0e zMt5d6^6YX?EdB;-lQTL|9`CQ}SYCYHp6~umZyXxtc*h9DJ~3X3>u-Li&y-)*O3YQo z9({AgpW`-V4fP-QrsU5wcY9|_eL`yFfTN+36B%XaST*FUYID0po1>12JtsAFM?=%$ z-x20$W4oMSu8DcowvM{$o5lOI6-u&QMyZIu=M6W1HI2=oTw-ehxDHE8fH7?Ip2%M^pP#vyj+^0gjI9 zPCZpV?L8lvXnGtU=|9K9%1CRqHAjC{z928h^D|(MaX8FZtfO)db$xWQx zT&<*hTtT!-%wE57j;Q9YD7A^z_iAK4_}uqe_y>EJW2`PI zYqcMBVl~~}BO9r(9*UMVW_u?_Pg!xEO`-R-?n*MA&GQ`7BIWJL&Let)@&FFMD__tp z`#ZU-5i@2epPNo|u3UkvXwP#xE|ikAY-5SMPIX$Meqv+%HVg0|{Y`yIEfd?#-r7by zLP*-Fk9U4yd_qMSqE0QWPO8JqRWkI`wyw1^uGr00d}%FB`O|7IkC$89vy|`U#rBI< zS> z3@EG@>|VUGPzntySsEE<&el6^1SZop>)%Jq;glP{ignW>_McsxK{Dyq8s_{oI!a5ANsQ< zW@crsyH_UftD-&Og^urC0~1dt#izxUIbL>F%2%n4lehaec)F4K^O${J-)A_i>(M>2 z@ANX}61yXI>h7*B&Y!d)0V)1aTwnho|5V?5?k^opoJCqz>J$v?e>b56?;#G(cu?$R^LXs6zKUGWKS-zDyW{63OiOq-`A}kee<$BRz8ao?m0jjn zvFjx#^M>X|v!BX(?_TG7WixKw>2$YEW~&DyimdPlc3RwQ|N99elN+VBD?2ECRQk1a zM?#WsqI;oZj`o`U1#uvmq3OZ+@SBkavB6{lIZ7rAMcU(d$NzJDqs0Bm0}?-ppA#q_ zI2)JZAV-8TDKw#IWPV!i(1&>$2QwyQ~_SZ~Uojf@G zsWQFGeqJUn`TIc7TjXBhj8~@HUSnSPLGYKLCmapGO{U0M(LZ7<4%zGZ8#Oiw#2f+_d}0|mWF1BibB7KM@JgyEv%+; zZRh^DZSnC5zWDU`j`2gOEmD=>EvDk{X5O^GY7}%i5heBV$WOh0K35_dLug z`a1TteU8e*cYN35wyT1Csd0R&|FpM*Yol_|{3ccqnI1kAnibN6YlDqL z{UeF`Z{~gJe~z_rn*wJ7wcQM&HmZm5l&U9U^UZgN7shy zgqwu=244)$3eAX|h!vS1%5G=%xDJ8+fxiOj@xj1;e`Z{!`$dh|6#ZQI(-KeNcex!N zuD(Ab^FT)ZjJp|ovO4A;3SHOt+GVv|_fNiliEYy^m2sC@lxik#NUR?J(6`Pr-tjrr zzf$ynBN}yvHw9Y;2M4o5L!-0xoz`LXF;8#bP=DRP-+?uO1%brC$hbe9O_h39+n5zv zUwkt^HAi|d>Heb3RT(QXKE1y?dv{UAXghO=+{jtz`N8i>E=sFVW>ng>lxR|JeA_@) zTx0hqYFm4f@n>{yI4!&-v@AF$I6dTz?2fK6`baNmw!4gfKTddBV0Yk#zqxO!_X_!2 zTbdiFW3sF0X#QV0)gRuzKR>g6W}D2c`(<(xi)TeOs+J9NUh{nFFG%_~?fdjs(jH5- zk}k))0>8u+yPBxu?QA1VW%(1K&qA@FGc+jtTjcRrYjc(SoKyEq^v(5u=s)OB3jE=B z`3|~|Y0IS{#-7N4V0_Weybak6AAE8D>r8*<^~}#6yr0)K_+@OHMV>L&es9D0ZOKE@ zthCN)vr|4vETr1>Oz%4924yA{FC&qm;oYI9LuT+m=vw%E#EQLS{iirxp167b1^x~G zpZsI|yL=D4f4aU^o7&-6#c+B_t-|Sf=dw>d=$~~Zb9H9M{TkUy!NJffeY8D9`@@yu z8<21~`JJ?jX|2+l!!3UV0>0s%9eFi$I=Ca487vAd4ws2G(0``>)FfB^ zxRJj8{?UGi|1aONxC@?{RPJtP?T)q%H7zbGxSZ$8U7tPo;gts~9!$@EFYmjefe{hU z)7#PB?ehf#eRbtwrB^-*J3Uvzo96TO660R6M6H7J! zlM=P_u0!5n+}FM;zF*?r^(vlUooChGrE|vg=z`G9l3qn;3fARM%{!7?DR)BN=lN|5 zYX;jyKQg;XOVx=kulHWufO z*lhg>UK%d-y4KyLySsY!dfIsu&$F&uS|61xR+eg1Asb|eU|LDd;`2pW`5Owy79TCr zN*ae=i@FTOnk|jf9y-UlZ+WW3W%;W3FZ+7Ljqxsb2c0b(Iovxn;u1$1WA(MM?_--{ zm-O;Rcl#{WpS)DKKHzxAF~@b*F@;;^``R`t%>QoJw>IfZV}C?4!iz%%!T*9U1j~jF z244zK2rrB_)GHWypbW37N7OTp$*x|mmY#<0g`U4$U%OncGLC9m0X3Rj)N-qDuP5tq z6LOaSOh)JO+~W4h7iG7yUi(h{haBupw6~OHa+H{hjphmCpz$f$M?Z}u#2$p?$nx;i z$d{2~RJI9kP)#G02nCtq~c~U*DW^>}c%boPHUERtvLUv6m zS%>gpdR{&t)ua;n1@$qtgTqi8QRB0cQq%5dt~7_~$D@72nPmN5T~bt%5gZU4R&qX^ zs?QA1v?gIUPa>0Bwr8~KZC81p$GgYMp8bdjnXDrnf> zSj8tRzf<+Rp1Q=bR*P3RQ1v?#?lkot#+1nJ(4z3blF`NUi#^4U6-^FZ4&M(pGUBZl zsj2!vbGlEvuenUTYaYV+K&t9jV z(56x^b-1&Jv$xt-d7a3$z4`(@pf3vVFP2NH1)T*I3f?O`9(=LnP~l{Ah4m59segDT zy8d z$!$`0do_REJ%OL-5NI)wrTfE815Q4&*59OU^hqq^~q@nr|gl z_Lq%RuhPHHFnA9q2ZmOmv>oa9Iy z8vjPZwD^qy#eLVYL<=ZK^>WdISSY+EvZ*9yB$_|P9@?_AiX%?>HBR^b>6q_$(_2ni zK%TV}y==+$f}aa(<+^h!K78`w$RcOS`#HzLPdG=|2lcvvi>ck*x8wA3N$E?xM*N1< zlDJFiAxCxR80&ImWaLWhbSR@>xKZDFHQd#h?|#`i%^n?hE55ZmSN+-dw|k1U+E`#I z(Kh*G@;Bs7%gN3>mibinCnXK@{W+gm8(m3w*mX*6k-pX|#s6NhU75$?*2m9CZslt) zYgDx#Z*2FJjm^wH!wSL zck}&DIjM!GbFUT5F=|oQ_Z4+*f|mA6;@tS_Wz=#56QA*G35kK>S_gZNHOw3xo>f#* zJicUaD!WU)|c#B;OXk^s|?dOM=C`Y6l{7}a(~go=J)5_`z0$} ztQ7h4cbhldx1F1{7m|N1qomYIYE-6Wnbf2w0?WLWysNa|%(0O}v18#Og-uJ!v(H|M zMdT;#21;Y!abFGBLf;38i(OT;W6o!l+;I1Bm6CC}-#vW!Vg1Zq8B4Q&&HKCH>B32R zp*-HX)pgb%N!g#;Go@O}_4L^(ljHArJ9wSWm+iKC-Ds`IOU3<5#)m!(CPrJ3_j!ap z%+o(G(KFY*HNK2L+4(pbn*T7ngm0h=D!COOUcFb8(JuSTysd@n3vWaxEA!nKUC;Zb zr7lhHoN_Da-Sq0IN8;OhFSx5Z4@f6tAB87G8U_ChE-4-s_LwhmW6+fGabF-0c6oOA zZ+m^N>C#SeO+FvKkvBKzn>^=(Co>ji9msyZAXZeap>iu6F)+(0)(ujKdaSdjIpyclliBJu6+89cQGK(f(02`c%RA2U2b% zyY9mw5BBCAAOrX4Xm{(b^Srk(u72QH@~+e!Nr{R7B#cXVGcM}fr3@$A^u1_W=*8$0 zI+;tOIc8nurnFYA?96cYa6fQ%b|{X<>I`#q?8op&CA|w0@?Oq z2kXO?L!_wK=BtsoGwHR&wn;xF_yaxsPkS0^F=Xi+eE}Nqr+No6cYgr-w_G}_Ih`Ll zKXkq6%+X%ghRfd@Yh!A}U);K2LcS-rd-nCbg1qAeNs)2UFLa-B$+OAbGj4lAtE4K4 zcN6mCKlgk5Q{B_mx(b#7V?t!Ko^E~1+4+KWN8TitsNXqyIH$RO&|X!CYUQMP(ZSK* z!dZnK^S{oklDjx(QbA5$NzumG=GX+Izm^skaew0bJ7INVtHemcHUB!_A>S8Hjhpyu z(u=X@qm9f2V{JL)kic(-+JcXrjrsfKJAFT}P*)|bpJC|gjNH#*nI`7i(d z!j8f3qAg?F{~t+L0UpKChIiJ^qd-Ck?(XhV3dNxmDemqRD8(VT6u06OFYaEnxHY&F zAR)=Qtj+%K^lzTfBzLznJGL|5E1${9qiv>js4E!rJm#mE_fdVKt~!6PPZ75ZN&H*d zQmu@*@H6$3)|LwicgRbAvDjE1YW-EH$u%J#$=k@GP-duC;1};G_tNag?pSXvcUynF zI#j!<7T_OS_FC820?tm+Q(`isE<38YhB=cg<%KCi3u2`=G=?N>)5B&Sexa}xS4PGW zxh$Rm<-wNgsELs>;l05nzH4rer`MBfA`Z`3-7x^LR4-EJJ z;#=kI;XCMc1y%$mg&XLzbeGvl{3!ooIco3dXz3arHQhPSe$kO``z)0eBm6+2Jjp@6 ztDI_aTkF}sw->0#S?0=CDMlE|%jAjK9KO1F8IxV7TC}lWFRBmJ zdMYVeP#qdst4>khDMU|J$E#iS#Tv_oQwq56$E9 z+sHem4B?P)O%(Ynz~CbAjddXd#Tcp^-L*=(!+5Q?)<^4G)jG&V%jtIAWe7%H+8?=Q z#vz`4gnk2KYA|_EkpGJm;}7!#xCUZ?pD)xFroh?zB!7T!OX>=Lg7a4ltQ?j>?JJ^^ ze;C`$V&+C;46@=5qwCGiW;^{)?u}6hF{X*|>h8%c*Zttz9-!~wTv-)f?7xww$YpmF zZ0+yR3IoU;V6R@@r z-G!L;cCari0!ut+E{2Ds4AkH{Jd-EF*<>FwE~T@58+RTaFx$c5dXM;6HXVXdC~{5c zd2=1|Gbe#@d=$BbC7>45%#m<7$qSC_E<`DtBV+h)v?aK`y}*R;2ow+=H}nks4tnWU zVDfDR=dL_Z#|uUZ@*SN+#5W)GDxZNJJVIQ#D|F;bO~znbjL36s(_t1Q4UxTP78u@% zhzoCp56U#~>~$0jriUnsKI|H33Msf7EImFaCGTQ;Xq(c2CsArbR26*6!@}FxFBNM ztIS`>8lWj_;5yEf;&s6$t%sjgaMnHpSxrKDuYpBBMh^H+;02xr?)VJIK|9p%2eiUN z+6Y?q=HR5&M+qJ{X(r(A-DsmVh=)(6JIMfGGwXr*lm!YAhJS*{?F3qJ7Kr;m^yx0( z4ynLcIs(gJ-iUTE0$zcyeud_PA3|ls_m=^g{s@PkIFbr{dOo7}wYX#Gm&))B9t4J{ zg*GIA1MfIWZ$h!$2zb>KS_-+yyKt3(+a!~pfE2Aq7W6@UHN@uUfhT$e7|K*I4*lFB zDv~TwHB0D8O>Beog5>?Z;>C=Psw08t9j5o8j^I?ytV3dR(>f-;YS*?p8A0E_f5 zD3h*$HM|b^%WL2^4s#Dw8`FU4G=?%rA})-nrob2OfI(On{Mot46uFsP0GG8NaE>Qn zBOe8}lK_VGVjwfO;GHlXBX>LykOk&!XaE#*C3G5Dz*R~^kx~VWQWa|ZW6&r30;J@3 z@KvWFpKu-SBk;Bz++bRX%mz-9Z2mw(sC8jvF|@*&Cj+?KKi8i2i=ABwi;;FfYUKk_F<0m6& znJf%}BmFvhhh)MTcA8OBcm~{b53ut)xcA8zx2dFuaf__Py6T3~M}g91ED-4z@IWX6 zHAHu~47bF5>JQxFEJjohqX~b527v>Y1?K$}HOi0sYYENQajc+ip#~_W9}_0f=U5dk zVw|SZJbXf z7*FovQ+D7+zj7^&H3Aql;HEDD?%x2M^zG(M@PQAYyd z4lcuWGc9Iuej(@47m`teNACxhio-&>F;TB7{>;}v-lGS?T5vcP8MVM^Z;SVB5ce4Z zQH}dtRbm0gbP#y{Y8nQHTZQx@U&uVYHxFk$y#qg=Ho^!`!yQWCKJ&&>Ar7N6r_qgX z#BbLRnDKly-q0%X2v%cmKi6yW38aPA09mrv(Nyxc9%WqNmO(ACP@c=Jm6uuWMb48y z%-)gW!XiD7+Q}kCZYr0pGxRrHQ)!ysR-VjnQ$O$x!Qc4K{LWZR4~xz9QF=Xo9{0EI zUB9Lm5wDn;`fqT1SV<-dEtR(XQK^J+7Opsgn8I(- zni?U?36ob7g;Y|WAD~}|gx~-#Ms{(!^o9_vz7{Q$C-3fHLYs zS+a`$L8s6}I7g2($HJ$66;{jR&=6H32S_Wv4(Z4rk45BTCchM4@O9x^ z^0oP9!U%p2DUSHlN368Rpf(w<7gWZDuZFt>m-||ITl(z&3BIZRsgassMV%pYttF#M zN8NA@js6__YxG82AInY49e$kNQ2jxz5Xlat`@4oGC|Tj{$|G8mKSTD4!{x(KWuvcI zcEnA{6|uRkJDf}9*?cANIO-Wq1FzEec-Q&D>2tqs%Iu$gFq5Wl_0*D5>7np8=MRZf zqdP{|%XuNGMWSdsU@01xTfQHBsKo1YgZr|rS$6{t)#aV)yTnZpHqu1IK{mQZINr&1 z99LrsTD)>uXCAq(a8y1ej30^wo(B1HM&Pc}s?2mei6a zSj*U(S#6f-$j##xGUZD4uryOVF2)OW#cZylQ4{->=gKY^N0tr^2)^)7^%e4!^E7au z^0+;D+&<+OuBiHg%XH**y>XrW+LM1}W{@NBQ7=XI@`I2U@IB&~VW>WjD`}BD z%Czw2V2faEU{G)fvRNkuX?S-?Fzh6sQG(B7n`vofEpC5pyXU-P&yP#HjN4jA8V^_ajYb+&vR8n{&*eHIbHjZ2-*o1&N8~i}h>YP@k}ISzxymgD7iuyb z!82%MJa4Ax=k(8dY5kVAUz@8>!B4z?ULR!CFn&fxr1!%9sV#jatUgP zBe=H(V2BjO4y6fLE%~wUEsY&c49e;UHa>Qn;A8Z{JGx`HGaK>PiC}fi!%lAuJo`GL zK8%e_k$Ywv9MyW6)$s)Dggtfz?5f$G75NIlfB6Is&pYr;n8QbY@DSTz7t$Y@Y3l#S zHf@TsGO=f2z6VGCQ#3MnYsTHF4ORz-GU|Z4Q4v3v00)OTe^fx3%u9eVb(vFy41Npq zvhaW_@)~@YCwPi7$IAS8{^dsv<8em@7&^?UoOy5R*ljYc{QsRVn7aw%{$`?%U+{kq zn7jeJ&x`t0hpSF8e7Zh3IP7yOuKyHk<-fSr6O@*W6^wZp6huoE!!DWKA9EsLY<$LI zXTBngEuV-zVETXMrGuyQ3MIY79e=`Z?F-6^!ByhG6v@C|hcTL&Pf0#}k}`2QT}^;Ivt;9KGD#*qXg!z&hq2N;7a0uTxAQcmW(!F{sGM4I~7-8`F)uK z4CB^&uxn!scE-`IfIDTS=0Qy?ct3MB{em|6gz`S1#58;}782ubGxj`t7xPwOWiS^G z#)*zXsrmoA7sixkJ5jbP{)jsNKOgr~T#LDv2)MVxC@l&5`DpyiSVYVlCl^|*D0o15 zzyM9e7xRH&*LaH-PsNVx3F^T3Nz4NUE?y`jC$3Qx-?6v?b6&|p8^1#-sd(>ml+1h- z7%xddUoyWH#$W%x_j^&4l8D+CMf(&*|CK=hvHZu(8J97%8RMOOj`@`{PA>EL_=syW z_m>YS;T>4N%%6oZ@R{2QbJI@3NrL55DvaOq;G4OcGlvw$e`o#|Z_$cOwZa(i%;&|8 ztMh1m##d)99gKCwxc*EF%oH5VA)GPwnF@l{g0a&-py!#-HgmdRej&`YmuU=`!#ZR5 zv#T)|A*QNeUM);P!aP`5|1h3C(@n6~*!*DsXRk7k4d&?*hw@lna5nDPt4#Y6LYp#H z8T0XBIwQuXVr+L6SCR2vrmA7AbfzO<+(luLPF;n>qe7 zzl;$2>-~T8EsPfZfUA1(mvr0(o|6%3{!&Wu+3TrKrzM&eRNS zMPT08Oq0Rdf_c|4=N_D+aDTb+SGESkfPu(nEt}bSFy>iLCt|clqjnCI&OCr#fbGcq zha8y_gl-id@FO)9@s>U0CZ1Y*xXb2FT8Vp%9mo=#`ZM4bx*ZN=*U{&{qF$?T z1q0#Car8FbL{lgFDcIa2QS@fpx$b4cr zNr;pA{KhOI7;lM;cCwK!x9|2E!D6)vJ7{0W!KA;K-{67HkSEM&ocj=j|PWRk(0WsV4O#&yKc zrVAesXNsdAup1u@r^bo;Bg+J30DK?^^UuuYMi2DWP>Ww3fgFIH#G&L5%wn@vum8N1Fn$<`KVMP3kBUQX*A@I!%5&2 zUtCEevk7xRSWWI4G2-v$UTq(_!RNs#f*75-VbXW{Y&ob18E0GvpT}H@krhj0_$K74(S!UXOx2NDg%-#DMA_efzqlK|!vVyZ-ibrfyJf|8OXoHneHg~ zl&Lsx<|ReQG14Ep*BJ1xYhmRtg1u@1xCAt(ed$;uOTVkP(RygTw7P12b%@$gJ*3Xi zo~gU_)3hS@TnLG=vdhxOHUT*Iua;?2E2*PM_~uv#Zo_Y4Gjyqy;NG(a4%K&IGSu09Jxqc;eqC7x}u}Mzb*4Ngi^$2-HdZ z7;B<+xqMG7A|;5?BIR}%mCPHovQa=wQ@$!gz(e~blo9$l)HO6G81H}T^8{ie4>do5 z8kyf>t>8KzHORH!)zeW9Tob35Vy-tH8(Xy-+9Y+J8Zg?xhw%X-;WxNMej8k4PjcB< z*6NY!E+B?e1dAL+$Z)&K|HZruc$O~HuQQW>@9dv~= z#~3~x5%;@h7NV==$szKikW<<&i^%0{@JIQPLREepINo2V9XyBjdW!n18n5nA{#248 z-N0B|h>vQJ>DG*R}fU zHf@%gsQjUXmC?waUNL+vs0OwLpM*+i{qfXj#udfp=z!y_tBq@sjauhgS4o?pTk2~( zH+BP|*kO3VwK;*O2wXPI?=hPMxHsH~%Vs-xXTIjV!eRNW@Q1ipswVE>`wA=h@<4os zA)@-0)};q^hnAqPQEh5@b%Rnc@?$txWJE{_E(`Vx%~h=MhFTBA`Ix-g-oTmR4B1M^ z-{hi}?LvJs43Vx}!7xBu)@NM{x>nt>r3k$#V#if@( zv{Ly$_-Tk#>?bMEgV8;n1u|gsxcK$Sj5TcBt($j zatrx6VlCu>j}v(@OBjw87>-r%5>|u}KyO|c*Y!gBFpYgRR^!yZk@WD^@Zj*QkQAC0 zo}-rKY6-LXnS5@!hrN@dzujfY5|)WqqSh!K@dGD?A~*LwRkEaXgN{8nILsslo)p+@Ss z;C65R$P+T#+9}SPD?YkO;^ywqPiuN z&b7*7+N(#mlxL`igGB;+y)ofO!FK*K`Yg)<=l$rMxeh0dOJ16n_jxX6*YcbT6i{ylUMm@v__z~s zJClwTJepWB_lTU6tjCaj`DEy6rp=S#8}I)mTwE`r-u7<~J@YNd^rbcUaPW1*RPXD> zS-W$P!q=R0;?hbDt+qdJUi%lqM~E>xSTXI$%LiGxp?rf|j(j1mf1U|>3dFtP6Xd@o zQ@xu#>RSbGg}^P0=WRwcTfQ9e34z=d^R3M#<>GSgm5PV1`jaA8J!{-qf$O0hdLs_} zB7baPLHJqL&G(;Qm3VvU#pmbuzWyCsyu^^WhcQ!&b*@B9NTpSO2LKkuY)2W>X*Pwnr_KHjm)C~RL^Q8a!!TIjjHzi*8f7dU|lCxa#yoINd1{wxlGvSJXj9{M3;MU+?sAbwej&1iCMbD*54F5vpWwEP(%IRe zI^J8aHb2dLoA+}{WJf~lq>J*jxM}6~l={Pd%jhXTHS-4wcx`Tb=E~rBd5AoXCRm>( zw8-_*_RUh>8qYt{m#L}2S)SVAra(t0>Gh?kXpd`4?%gHr30=8?(#6<=g7@q7j6q>< z_+EHnWMg=D;F5No_XNXV^M1>8f6dtRw#K`M@6?Pv@kfg8b;0o^sd|+s$y*IYdrQOm zYGrvioLS=QHTqlZBWsG5$v?~Wb3!dgVR0oiY5B=mjt>{iJ`kQS{Vm-zqou(KlL}VK z-P!(Cp6SR>fUDB73+JkLPU$qaTZJ{ zYfsn9awiY4ETCF3w~K}1swDj3DkeMZA6=cK3yM23R$CNl>VNFr;_v5+ z@m&vo3GQ&${Wjcl(O)$)_~~?(!^S0ywye;m+xr##lw4X|q!T$}Um?^~r$!b<9;jaK z3}4n5tNbo>i@D|uaHY%>*6J=%wCin*Fto0Jn>N0%ZGo$=>k|Z=wH$@yI*2GwpqG_n zfwVwI@Pn_Pr@F6V@RILY=7!A4-gVwX-v(!lR~AJVh~tGm=KRQ3=b#Z1fPKKN}^)*jz^|0-WVZ{XSxRbRX)uFdgN z(m(d^=`&%Hv%maV86Rn7bcBkv484Wi!>7&p)^-lRu$3N{X1X-Fn!Xu$RtMRRv%-5h zhcg~eqkB>fnCI>lQ^^FqC-w^+B4>lV_g{B8|D)hd-#?iNSrz?j0_U>xWS5~iqqjRm z?jK=QjxD)U?Y+5^lJ5A+vehW8Uex~9^TBJTr!herW1hF>wlCsan|-D4oC__{6zW^C zzvY9lip!Sv*+*MTO6$eWazuPXj&U1|$4Vmh38|s>zNH?`zb>%U6Q31wM*^*UN>-D= zKyj2SBzB`E?A3A~%UMgDYj$#sjD8|CMV{zBhzl&#PAGG=IIg`oL%P7XBBkX*j#AcW zLb&x(ZEK29m80Ta+g!^Xp{=+S>#9>|NyeBj^-tjHBnpk>1=dpHPv%MSoU@>HJ*_}q+PYX5(0sa=Y$Y!gBz}ohjcg0F^X>B$_8s!< z@c!ug;=Y)j82H;*%6~)-mC?2xF-N1C+lt#sRLF5vY)#tpA{hb$lilhry(Mi5m#S|h zuh>CqFBOupfySUOaL#&Urq@!Rn3o5C~8>Mi#aGR*ZuYV zbKU#1K4w>PM>5M~ae+njmN1n2SGW?}BWGdfG280cl-OMINm5UohRi0LmHNs~^|;nX z`x%ikhsPFRGD16_>#$N{`1)FyD( zH{SQzO)>{&_jPNTg);?DGjqDM&gdz{$Ipu2<9h5m6{>AsM;;M<3+)!7aNewjsx^*!HfRF^6LcM5o!Rla=7H&CogoMK!;^ zH~c7k1DSO5^LNMtVYRiIt)tXkp6oDfAEf&h!&*k3Cyo;D3qHOQ8B4d*r^X|tS@`F0 z^WZSw7GDj|{;Wt=gRJkfQnKdxd4k;+-Q&m;_iNO+s9UkIF{*2x^@BK0407|q?US`i zO6hPJ#bc~NG$V~m%m_%SiF6E#mMB8Q4)zMBd-&+#tG;t}(pfd|^qM z5xfiD=xJZ>>>cj>?(FPjcP?L$ek9xVjZ(chXLNUakLbg(i=uW~_evvWn>bW&tqj$D znj9_?zKs0vSBzrjY%!0us(eYDX474z!EJ4f@H>$oiY>uyY|59SD~(L32|9&~E0dHq z2yR~vB>EFQeLVHtEj@$XbG+M?d~ovJOx`&{QI8yNoLgf1MlZCNvo5t97k40Q@k6b% zUPGA?Zl&F(1L-!iAh?rjWnIp&UUt;5mauHIpR|t^XY%{y3_+(;jP_y%HMk?x+c(qG*T?xQdt`6t@K9xlF&dme)pFgr$(88%rb0&C6S%S&UdX>zJKLhffNAnhVNnZUo}qK&P32|AND(tcO+=n?f{ zc(1Yyyws7Apt3Ad8>iyp%FpU$?V>hM{~IwLxaaflEbKommVP05s2s| z`AL>=mVe0Y!}+Qa|46imUhc9`Q%(c}a|C&ZwY`$Q7SYnZdX_d(AEB=@QnVS`AU&jy z*4C=y^cKb#{SFw2XK^b1pif4|<;jTtY#{B)TkbTnoqXV9g*!kzIU!ki!cQS7$&>$uMECn zHL|s5BG3CAvYguhWcMf>Op1^R<~i_8jv)r{nx;}X%Ob|y%~XuiaMVS1TEv!_*KbES zy!?eIc^7yVJcd*BCVGQjLiDyN{R2^FE6(qqz;Cz>j^0f8gycudj-hQy8-4`hzdxhg zismzDy4T|bJD>Xtak;{zAUr?5ASV8S{sVNNqJ*^xg5 z-_~fvTSD;Zmp#_t4YuL)dc#&S)8XAB17P!JeH8E`9q1`D(lu*Io}=rjg$@Cn%Ye4x4kARAke zDQF2N;)-X1L<|DjLDAcbfiA;27U%vi;QIAI4?INQ`u?j!3f^}UD*SeMM|B`71lKE$ z-VxB#IdG@-fIZv+_VN&zNp93mg^v=Cd6xG-q@feAf&|2NJ_5yLSmRUlpo(Z~S@>oC z0rwOMm`nn$$k5<=h;*(;yF?+jcN2A82#<=pxGDi!Sru&4-MHokMDMS_S>PbzRLFk= zbXS45#BV@;w&1T7@jHiF6a!OjHL#VBKqzvdZw{hWPr==rAzioe?=_6-F7T;f*;%4- zXPtlpSH}HRz$eS27RZQ%I-dicnvMAUexNqjfPOv#dyaV)uso7O5EU+imXF{b7Q)@~ z7$PP$&6wKZFL-f`4M$^ z0Y+pVw4MY^^)m44NpKzVz^@?_Bk(7n+6-y@366nRfCN`XyT1cZ@-X_4<)w5Zs(l)* zmJ6|oC#Y$DygM&y@D3h`3BaM?%ZuMwCL9f($Q7_YtOV0?H#iL0aDZTr@GSd5WxS^{ z#$RrrJd8oW+}srW#&TCAqK%HC9fpD>Q4Ad7f8i?94qiyfsB0$h!=i|x4gjXt;6GgZ z1CY)0!0r>!b~{l+YR*3RgIG8iu$*u;ztvKMW(9CcuRVn3pUzVK^0 z1_V$5O5Y2Azh<^Y&+G zOom1n89G|#EoN&I+&@DcADbu9X3VXB0I<6Lm{A*WudgvuE8|YXVB4x#yB2+1;3D!XtxybV%dDT0xs_$v}g}_?B)mBDv~Wwcrh;>xZdOSS%@d!!}xlPS$r8i z)ez|9bYN6(unJGazsx~rB-nY(-{yCqr(4kXuhGI=z{Poh=gUH@X3P)Kjr&>*Y-9vH zt`?y`k6{k)MJruJiws3gZ-E1^(nH8NHUu2Zb69oTVpJ^V9%2ADFf1hrQ_WPiXgh z<_fH@<+%wM|014KOX+5s0>9~3*g-6Y7rc(=@kPvs!kFuJjGW4N-#Xky7QFdezzMqq zTC6B=<0a;0x)i9!Hm)-n&R-$>fQuKySow?lhI{%AYjP*4^{v1Y$819QiFJ#WmbDIEwcL zPxxOhiB^ZQy-1{((oZR*>+7 z7BiBFBNse@sV$={~8G?m*`uZ&AhaQI3s#f&V@Pu zaGl|_@X+uft+LsLUt#9dhiK#UztvdfmA_`zhp&s%)6+)@udtan})UuMf%FQdd z(4H?)3o6pz!td3bdWII(k6Tv9YYAO*@b-8u)tlkJ7G7Y~K#shPdL43Ae(12e%39aL z@-#~Mru}Qy=P#OB#%43w_9f|6zQ1zz78?ZHWd}oDNg`Ou$EZi`h+2-Ifl!z1XJ1l2 zx6kUGJvb}hw_O>(`0hA7rRP+tUL>#0?yi@{d;MBj_^|vQ*{2S-%KEpY^*U@eijHKB@gnprng(SKdN4Xx4w zeUE;R-jY;jSNmVW4n3z*N2|-v70O_*tJFU|Mn&M2s!|$E4mMfCLB#b&S>#+R(=8uFx)ho>^0r9H8|q6D=S375YVU zO7!13`^ON=7_ELN);u8&LpIw}dIOq6idfpxAA^hiO#?+kQ^QWr_>A(|S)MWe_JMBx zt;&?d?@C`tj<99;X+a zEn~k$Zxn~9vuIQ6bAE-oDAXyk#>{CQXt{}OGq3q0(pj+t*Fq7MMEC+85Im&2G0WH{ z9DpKKca)Y=%SvTBOpyJQ(tK%8#|4pB0 zFOaWJ@)z4+JPo&i_fk!*;_VY0Ah(Xb;~ZdFO+J&_)>ZNh zt@0A`O*^F4HUHrYau0RQ_(GZpEv&Dc!-S1|UFQhbCZUw^XJmysL@aALV?=3Qv$goM zP}^wY-{C116vM^+-81K8t@E{yv>MID=YNOFY7>7GYsm|+8GYp`O3|A$27wVV834kDXyDV>{)j%~w-$g?|an*K+X^m)pD`uXG-? zxTHhkDU!_fr8CuuN^9`eEwny&OBf;!5Nn7Nfayn(v1Uhlz*tA$3VY!l!aHj@W=IuD zV;+n@ZM@bC%&tU!A~|H7(PtX}DC>h~gB$#JJxhFr0yR9}Jb42vB4>=I_QJVlMz6Qn zU5lchi#^mAkxl9|{gqZ*=}b9Gru7H0kkrP~NuI_hn-*h=k%xMJ?mHVA&< zv#>#!ftS{0q5Yw9%MXpzc|$jP88KSlaCA6#qQmm4{8`y0)a&yn3K)P2G%aF>?ZHd|Zp zxA}P4E;#8O?Y#b+zBS@BV5-7?VYS(n-ze{qqDg)sY}; z6|Qj0$yNFeo-1!Odt`6uOt7o}zIUGYU$5OW!fOkR57*H**|){^v|P7+mos0?V169G zNw{o0Rr*I-sk>wN+1AS99X_wMopljEj(mdC?QCNkcm-~wAEIsD&4_SGyv#?$ zUXH1jI^q_4HQP*F#U|dPh0HtfoP9&fatG*5#4fICG1?kEKD^k!IhgFP;$H6V?J4T+ z>WT6@A}j1EQ4h&ESG~NcQTzB8ju!SR=5=L-a>@wk(}Mk#cG7$PiC$Q$;OJo4A*g~O z^$;8A=hR2=?t2tIul2)e<0CYAIi%Cho0hAVIvb0=sVQ}#7ASb)yh#k zqid`8)fXiMpv_ku= z*5S7)8@;9UAGsXreEqKQuY6xtgr-tM`*~4@YsYXB!E-NGtA#tgua_~ywqurYQq`Dy z(H*QaY`XQe_zS78<^SdKPk;9TcMWrg zwHF;Ob;>m;{-NWt>k|B}I!MvrJZ|RsP(rY~ep6c*>7}+dgJP<1gd2@@K3Q_{BZMl# z5R#@3)qG$n^?)wxmQd4@(^}KA+ZJ-9SO-f)N)p<0lZ^h_C~d163>OMlR%*fzDmvUa zvOqZ!ejR)gY!qr64EZYt`sq!@FXjn)+%_fZy{*1=lf9gCioK%b<*Q5Oh1W)c(cgSR z_dvPT7AmfEIAMN;QnxH|Bf>cVx#>1QF<6vbfNpsMa`!yO&yz_xQUY^nA5LXk`qWqXCQf1;eELg*_QXxG`gIAM_{6OXU zk_V(ZzldMX=i_gaO{6H|gnvUPa)WlD*~Up@5zY;XMnvDQ=YwLVr~VmH>hJXpI@Na> z)u;=3WsrrKROR;rExjaU31@^Q!cw7&5afS?6YqI48k&0(?6zSzAHqEbPMjUgN?;A8 z(6)3mJximYf!T$#*#hMDt4_v}wPYZCdGkU~UK{zX2SZ_97}}Gbhz`4#j#xo^ zC}=1&JWJ^eWF21(Mr;yeP6AVyPt$2$#6b2So|hXjyKy)p@8(`2S6UX%)C%WA{4^GM z+4GU+;72yXR})f$B;$Pe0MU^Y@I@;l!qNh9DGjImTZsNF#7TV$B9Prt&$?zSvl?`_ z0(3kshzY8j<-pQufjH_Ae0Rs`eGfQNE77Z`ai(_RL_CaJhPp3Cq+=WIcQIla6VS>d z5DgoMQP~q(!|zdMf5aj>;NM={6r94xA}ZAjG0qP7u7Swq_lRy6K)jM=vfP2bOF?N} zFgiNp9R5A@&=t@xU2y6ykMge}hH(cf@<$jGClI@sjo%LK|##Avwojj!e2$rhrpFNhy2p|nxD^8oY<>zkJXKl znMOP8)qUDwXi0zMr*QFRCbXY_gZDdv<~BD86}g*610x+d*W-n|WS=ous7|(-eU0tf z9K=w+D$lg}oQv;G>SE5Ff%`}Zj94eX7)dam(MHA*@|=u76ySpSJ8;~&;ETUQX0rou zg!b$8ppZ^9?rGhPTNIhdjH&ug#P{n$t@w(*K~!mhv0VQ`yPHGlQlm2Mz}fi;h=U#` z*WkMJ6*@FHXbWB8j-Ya1$Q^#2(1l;eUlzKFU4&8md14b>z)Xv9w-9A$j~LijdK_(C zl%9pkvx>1+@2X{~?X>;s38kAdTq&ZqQBor%)u6UlJE~pQt>hQUAx#w5$my0n7P}Nn z%0O{Blp97z(zB+-UqoEe;8igpW?aUY3n`ews;2m z+iBb6Ee<>(9J^wx$G&xLl`4ZNIgjL5b4AXnU+G|I0^6E}#M_nwax3vX8O2u@-qVs; zM=R<%;e)zcYi%ADH^Uht3J6;p%Ti&4870(^sPGs67tzH2)-J+9L~zbRyXoYfY6GFf zexa|8#DpJ&I)`@$fA!|}e+*s^PV?vXt?<9pj)|>+p)R*Bc5ROS-7!=AT{tPdQPGbhD)1-Dt=qV^=mq^CL^!RjpFwRH#XKQDkBu;2jpY87v+=8Co8Gs13xP z@r=03;($9-$aYCwFK&`b^CJ;M*d4mr2WG&vZ(k zV+`U7BkGo)$iigHVEGAORq7>ol4=V}%n?-P7n`5;&qfMuhq&)}Bezko zWIDNmXGk_!zAs2Oz88^^r|l?7gImWM_z>iRMtClw;1Bp(LSMKnOu#%&<-Qr~4Fygm zhm1er40pt+Yt+z|s>PrVpRYAlJ82b+RPBc1QoraM3|&8Ll*JBy9qG;I6pDzqu%qU| zR?QZ#iF1V|e7X=2ZbGNrk5A=2@X?)33^I$P!i)Ydt^srx8)!p3A*?u8^}yJ92ISF7 zb)C7^T{5Z~^^GIO8{?euMlVeTWd8bU45z0MH@T$7QpIX z*Q|y7ccX#KO+t(p^AAW_55#Q;A&%P(k$8AOAVU2Z5oL;qeqTiLt6)~v0rHmxOs5)F zKpj!xBG|1I#M7+`BHTX!)%t&47!N*W2a3?`zvsjV)L=Q*;Kq2WHN=yJQ!|~u6qPWKp?`2t#-XLzw)OjZn*Jf%Yre|X6vN&KAWr3;`1=djl zaaxugCJEnRpc4{s!dG~5WFc%==eKaGX%sV9X0rZ zdt~}8mRrRE93}>lVuJxI`2GJmx|v2T3V2v1qS_3vNXOrkan%fHpqN`a)7TXUrp2_L zAMnleTler3`vOG3g<1=^=TfL8)4nC(z3jhuJR6yQE*T{j!n>HFFpSvN6-1$Lq3zG3 z1u}rjenve3jpN@$#Hv}w`OhZ_zRgslEFjew2n9f5r8g=8d%o%OcNIhZ@jYrgtoZ-epRw1eDtzS4+d+ z6Hs3_5CsLLFn4(c_bKA;J-ChwuQ3Iqfcs(UI+hjOik~C6dKh~FmOGo}ka~{anXZmy zeaeG*)WpQQLi-A)QziB=u`5d#aIp@md~Ccc1#r-!5uLCP6O`9l$opz zqVPH^(TaO#PAW|E$@({hQN{8A=%_Et_s#l@Wge37|0rBFj4>nOU2N2_+~-VDn}t%C zhLGh#V%glCsG9|d22*6RT=1-932N1R7&AFh!(4cc^;QJ^pN@L7O!MrUY4n(8ljX1% zaBl&$0?Vhyvheuuex`?HicvP=WV8p%3eU8`iKwB3-&o0Bd^Q``($GUJ+da!t#B{V) z^aLBNEW1wxquT&}7?1b6P!7}au^co6WixH#H@u7epS8zZ;FD}*BmjHOhj+igUi`~{ zef|M>XV!oH$27#Ojbbs&nf5S(7E#f23}H^i&n!P(0ldm#MjCJ}XX zTVhJb%c!XZBPSEsEz9I!qMVv=g{X-4GWB3ZV02~ilL6nDmq6U&fPxkP26rESee>T4 zc!)YXfqd2i8tg*5C836JNyiFQ2Hra@(JQgIMoa7;pJT3P|M$trf1`n*XTD&*egGc$ z1nrZC+W!f+lxti^;Ee`Y8P||c`a1BR4)79b4NU9}a*#L1m03oXBv zObq$E0KD!esND;g^^i@4`TX0!gjh~)Q3YIzYcz}0q~o#X1C0Yf+Ys&>r^pJLiuyf9 zJ%S7;Lt7t!_tkWB6WM4Cq`?rO;(UL2ZQ4l|I2b-yT_E9s{FW zh1{p_jac#n*OC^3?xeWsB?{eO?&0(39fd6OlD=K|21gj3`&aJ*clfs41E~AFG*--^ zKQ#M^6P1?Y9(W?%q78*LdOEk1MAM4GC-sh)$o11h{9w{st0c_h{xZ^pOKL-*FcGzq zQUMy&ISJnBT5Y+OI#rm#|Hgkf~i?r=&R1)DW4qKZf&7mFq;Su^>e}(eFApZnaKLx zTwG^7q|M|m;k|O2KE^CZni=l|&FEnE!`XK_eS|zeTk-tcZnWXHlXEz|MIrODm8NlZ z$qPChGjSF&J5L9mvxLh)4xH1_Honm6ir;F1JjBfCH z9C&*2^cl`?jnGfc;G5LL%;an7Zhkl-o14iajG>&y6Y+)?M=yxAz);#?M!^q%H~*&@ z*018U;f7b^3c(Hq;d)Yqdv8oPXYp}xB^$zN^dI4a#&PAvf_g==0gge?#S827(b$)a zr8pmP<@pi%9WsR^>X~8zTE<8bu5&VW=rLkRJ%<@2ndF!bY*iSdKjSWuMtU5VEW9qi~jc0Ce^CP^Z zTALRBDfR;=%q!$BI6fudzb0_)fr>LG+|S5cTFJc0w zcMRrHH#!Vwhdjt3^fTu6ZF-fK#SVubq5*B-Rh*e0)7OSwAE+j) z-z!7H$)U%=@uB{~gJAwXP=3{l7>Bv4mZG+Z{MvfVRp0f^5|W0>kD<=phx1p0`b=4` zJdbo$Zy9e9y*~(TuvqcyWgTNbZq4n;axHLX z%2&kg;%rihwt;pmw-T>T)tYD{_1$I|k;Uu6J87{zNS-b36ngQA$d_RlBlLZ=mAp?b zEbbC}SufbX$f?41#2C6k@hhuGLQ5n0mEEBkf!F@Mq4dy-P}5LS@KvZ)L{m!p)W%8|+FyDg?i3fxr{ynlZA&eA1!;+u z@hA|{D6H+@@s&l{Ucj+Q{vu7b{BBvr9|W%S7!HWvBJ;x5VA)`HxOLbQ{1q;X?(p`| z=TMQ*kkH%6C%WIh+i?)r?GfE4{-r%t>@FU|F8Kl7tZoh1gYWb$w3F6U+sM_H1iE#E&gC^6I*^cFIj3V;_Rfb^1J6) z@DZJ9_Ch9-=ENcXZq0TKwfq6a=OOu!*o4l}>S~EvRZ7JxvX2ZC*GJ8a{puJhSCwSp zdvKwS>05)<0;!Q-v`=Asa6ssva8*TB=0*ktu6u_BQi84gQ9el>?^qta-9qJb*TMKU zG2iT)<)z@n-h^LE=kN{B{a_m-!Q6@LP#yVoVv6mitA?!tKb4FXUht#LgW7gwCX#7> zls{XK%j+!-ol~RhyMD5bM*fd+#$oz{Q7AGr&?W8_rqBc`)3=ORjN)Gmn?9`~5 zsUA>wL?%QkDHS6<15utG+5NMB@Ei<&(9c?Kf!$ltF*y2k+^Ja25s~|GKWY2)TE;u& zaBysJqI!|uBoD+l;%fMs{%8x^{*|7Su(<{L^;F}P{zT*G8sVkolU24iaZYsPvFdWR zw1GU*qcp2F9-h^!)NJ^#9*ulZwyQ0bk&&C>^1-pb?%u-Q3!Y!SS};f*_I%N&ouwQR z=Z5G4F?*fQ6H_hVO)FQUS}q5-$wq?&&qPkp6_e zr@zu3Jb~M}&zA0ZXt!FM%VFskey=eU4CMxDjM_^(t94a+Muw?2t&Eyq84>OnZ0RR{ z*}ufQz}qe`Qz;@yt^v^loi4{qXQ8N&vx&Wy7_HA#w(CRbZ+Z)8vs1JVG+umb87f~C zwnLeHU%V-Fqb#h*yfywu$yrj)o3meJo}RUxdxvJTQT`tD4duT!?qt zc=ffiUu~hvY9X~=BzLHF&;e!NHQ!|a>R`3VWsZ0L5M9LC%D&jq);Y`Z#7@9N>7icH z74YAeLe=_M3+k`QU1^K7N2n|G#W{K$f1Iz)9o0W+9zA3{p>48rJSWpPHq9Q*SEy6`Q)^e=L0knAJ$vbh;x~#|0RM!QI{6 z-4+&mahJv2-Q5;<7H4sX#TJ*vT?S|LdhSiS^H=!(XP#ML=T4IDq&w%-sj7nteK-Gm zUqydZU}CVVw!#=@S!ws#a^joXPFhY_tV$G_#7pp^Oki&0+T++_W`WyjlGt4;Bz2(K z;Q$puS|LVmW9(qx;NY-co~#^D!jvefoVZ;ofhu?bQp3o`y6G}o!VY3q!a@6t(etvZ z(4d?Q)zcPe{WLZ7I`~#i3^ooG(UxmB^^-HPl37JT%V>_1HSQ&ePoAO8WXq(cL~N{A&NdDOd)rOOs7I=tVPK8`$>*xD1Q~f^U9}1{&Q0jLbfG^AEvihavM<@S9J8a{q&)p9Fe+7`YML zB!M9;0BXDk(ZOc;RLuhpI>s0ZEc^oU{O^b^o+IOm1r|^bc)6LQn0cgve93g$F}na; z5iym;6}3g=(-e3|;;&pvL~fS{`DGF?ZMaebNvMhZr6eM&96$krh%0Uay}pO|{v$F% z)0yZMyev}E)NIJw6Y-6Xg~-psk@+S8MMy-BogHT@f;>AK z*JgV5m_9dV4)+o$Kq?T0Q#huH$~?kxlJH4%bw}po{>9ky$)953HoGurxujwz$ z!}J<55en1y-vu#Sd2xJmjB)r% z_%&WTMrh`yW^ZoubLf+W4AX`CbRK>X=P;+AfdZKRN&>Dd2gVg`#+0}!)7R@Y{``rn zG2MDhe;7N)X?Azcia9Ou>&(%}S_}NT+h)Jz2z(_WW6Xiic`*W$|H^)4`yX*e6HhQ* z!ptsurmGaen9TD!aK<$J{6Cy81^+g)_EelR^%q{{K}@+05p^C^z77IoD28`-E!>4C zm@g-u)VjD&1Z&4cvCR1}yY+s>aZEOQ0*>Xz=RRT1a5Ci2UaXZjm;uw#>I2xBSHXH5 zfoH!kIF`F`eGM=c6XQCI-zouAuNp>e`kQ4#4qXY)kdA8;fE$#=OnGt5FECdkW=_DT z?%_G~Atz5km1hT5#7nsPAS*y-Y%+JP`0bxK`$f!r3bNmPcn;%{|I4W6^g`8V1W+f_ z8z~BNTM0RD7W|$Svs?#HS}a&w+i@rIV(sJu6WHWXM__bj4|>xn%=7~@9hP2W469HJ z`WsjB8hQ9ZtO}Ep>%@`Gr|KhSRKp!{qi(enYpNP*Oai(h{)<&o7*F~={KSrxnHw{8 z3yjV_U|)8JqogcUkpBpq8TLg?@K?)t6*2nrKJ$B^$E_> zzYBG+!=GYzLusMstUdW1Rg{)OoL-KF^Fib*Dn`l1pKKa9kB^{R=}*`5A@FL6vi%mZ z$1*px!<*raHn!W>*jDnX{u}Cb-pO*p&fy^1Rz1a%r0SL}lE`POBSV*r;bLpCG-<+? zXi0n+DMa@RcUdp3r&fsOSz>~La(@z>WzSlJMFKn z>B4sQJ}7EQ(tJCWmytK{tL&yTs?!;$_-Xod=*qu{e$;vn8Jqbj_L`2M+vs|uf$q_2 zz(INpe0Y`%xzQDL5k9{gPvIw?#q9G4)>{xBgRSAds7mODc8gDSV{z3=bwe`S~ z?;;BvC7d9&X$<<+ZiSwxAQ>U%rsaen8xHrRJ|v7(5^D1na7{cZOeQI$FbU#r%5baL zirC{KhbJD{kJ>Zpu0kd5(kHOF;B9O{6|fsJ`NzBxnA2N?@$e1J3E%R&Mp=>_K77;A zS8)t!DYg+c;-ME&Q(cL!HH(bTB#~OcWAhLjD!3IfdI5a259y^xe}+i@#athL4J*VGk_-iAQ)>c&s-7 zCXi@pYwc+HC=V1P5eZ~70_;C@-pR}R82N~WCW%eN7ql~6nO=d-xYIJjKG1f~A}I~% zpF$zHttb4AMwao#jTW)T8TCFFaCZ0BY{A$gK?YQrfuZ!h_lbj z8PG!q#S`KP`Md3lW2*hDr8KS0O6e!`0J8woNH$LKC7Q0TR=Wop`TG05cuHq(%=n!C zKDA70v($gmwy0j47W+Ee`Gl*{EtMGpXXW&E!VIY@jyX%}Aa;`0EB~VR&KvTT-Ox4# zcc?RijY75bw+1J9r2j0%tv2f#>tf4N_;gsDwQX6H6L8OpK%HkE5Q{$8=~uwlc7$F* zs}NinIO|>GdYst^Y|e8TpVC8Vd0h4UCxoqGIb*WKJ&dXEJSqPxEu)RmF|Y#F(QUN2 zaGNxi;-ogMQjptPWzy8CqpHou+s@c@umqJOw@P;9L?za?&C)^4t87v#OS3K4(Nd}}1w&u&sNdHf2m1tTsZ;&G`;#w`KYS{wL7g`Q!rdog;DyOM5)KHfsZ=oO0FD zN^UGwmM5Uo^i81y@1R#hkA#}R9l?w0v%uMaB~aC0&Y$7CXefPi*Z&t#*Z zds|Pe;vI3SR9v|&tI`}LB%hXAD4pa&qCK z!Uyzmh~s%sv6a~eZG(0i-d<^;<=T%>wALGYSWzvnzFC{fJ|ONtXWRsX=>VSn&C&=t z!?H*DpIk^;D)kg+OKZe(vOeRs)rP9m1$@cWBXxk^RWA~UI{z#<3?C%j$XmLQwxjjHXJ`#J(_wNQag%{qWju71 zoluQ@WK=^8f6|CVWbzgfxEDSqw|ILvG5mpC=OMb)*MZ7sICw2%@jLUuXkm!pJ|X^@ zj;!P(R6);Bm#B#h<14s9?NCGODD1@7Jg|f=qcS@MDD!YIY-Yfl$@GK&1CeA$FlkDG zYts&qTn3`M7l{48ApYEq%w|0@i@y*-tpW199e>+}?B^JwxkdOh6Q6s6C@}+9S_ZLa zX;febV~6`6@|h}#uXP;jJtD40__-4iWZ+jb zY(XsRL)>WkS`x%_DTwm#;5R%N<5xtN_YwD*?wBQTq-;2r8QnV&qnf>$;}P-aL)>2r zKZ(V-a$!8C`{YN&)87!wS&==N6=py3Bh%^A?9U9Q4X*Jij{6N);lj@)RCTUl^q26d zZ-^T|B4Uih{1n3KDvT)A^qMV<{jDhC`T~gZoj6m4U+2$?vzJ1=Umt%4kdtNLTt9xD z_c&r;ig?#_-IRV^_XmvWE@s(*%F+Xj(A4{V#7up_T>p!BxC}BEGykZL$hRQ=^)Ifn z9kM~Q(rjjQrEzX6V&ZQYhnZCbaUamN6Ek37roQ0Q890NfbG(V8zeX1K&##Qbf#c@G zXUrbnUofuf7*!6$<+<>c=U2WIjV#QZ`9wt5ri#V8fFkD*(qWbSR-d$u0-!Q^2 z$ZqpvCd}UBW)^AIG0h6?ZT##JK6?>Y@D=yY%&8vWPNd=}KX8Pf$W5~13CW53Zr*K< zPYF1$nKzi#-m*AiF^s$jR$qBsVKdBG1zcr8e3?Gerq6I3&TH0vzash<@w0OHtpdoH zUm>dh2Ni&0xQ^wx;;xw2%2*>)QHhv|&hqUn|3mNII5H1+QDy7#INy;cO zC89?wx`UsA2ij&RxFg}GnIDX-*JK2=eBXiSUNAIp?>50nbULEfA@I`M3+H-@*~p8z zxdxnK4f@jz!PzDux-1U%=44|6{QtUu3pdGl5C64~(7^SFy0Q<}vJ?A6G+2YPp&xAk z_LkjfVeAv?pdy%#k?#THakfwv9g*unNm>!RM*tb&3+Nqf=(thGs7KPE0=WVwIMnA+ z3u%hEK8>2pR;d0;fL*Z)G4dfJ8+i-8;37P`w-FonL`8Hx5QVYagI-0Yg*x;GF@01U z8Xh)>Jwq>-2Sya_g1Gq@JPP~snLL`E);6O{MlSIa7(yiwueay>Lg)4VsGpvsz2uhS zL97%zyAv7=4oP-lsMwqqMdzqT#&u>zW$hK7s$A%e7z_34Jj{yA7{%j^Y8aJ_9liv( zf=Rg7T~TT603M5%Bm=Py@HRp@){eacAF?zZNHz-{**=zp5m~5%)WI1~vm-`PeI{6h zLxrYv74CUGqaHjTOB+e_3Ayo0=}Lt#(uvgJ7QDa0Sw~|S86<5J7mK%z6s@S9gH;w@ zBRgmhrpj7D1M~9=*Yu`v-CJb9nUCC~ok=CEqc_MD+^9RNth^DA{s@$O#e3l{>jF2} zHsIbC0#h+JT_8>-d5tbi({~%A$Y}Bab*pE1g7eX*qzkIvJ|4@fLQl0Bx$_X{%y$_L z$$BA`y+)^pS4LBsBL0VCCmXx;3T!!Y5kmUX)uaY;@x55BRroNy0Q2hujl7aW9*dqG zA6c@N7u^_M!?pebPhp>p+_Vho1L`ihVR}RwNIJlkp*i19 z!o=>vC-#@oQ22^!car|Mc8e`HeP{_ZZop;>>j8cn_4Hck2h@z+XFZYWMU(I7HM&^; zgzgG?r9$$1dK^*EG0}xy;O9vs+#jnc8JNgR z(7*87`RZ%n``y#hyV|oWwakzAsn;^cd6)7g_PB)h`3Gd}EPwVjN$>1AAdFYW(D(G2 zWr<^ZnBmAtXRC_?(fU*&UHVP>lXL>>dbc%Zn3=w0M~>Kf@??b`lRPC1rVG(+~3Wb5N;ksEoQI?skyWGu;O&8mr8 z^&k2e%eV+fZ0E?T!Z6RZKx5%Py+)nJM)e_oX5SR{StewQ{u}FPUmq22jo?XAV_OGX zPAfG=dOoXm%S-D4x?O+gDepQMSQnh@YMC+JJtyN*%CYpWfXVLqhB&(y*i>k7d{*vo zk&Fdue?!wAsc-1CNc1a?ZYxErtpXJpboe}0ud1if7LMX!cjZr=?5y`iFHQp+;*VLdwbC`)7tu(96;)X)run zyU;(BnaXf-m%Wz@g%v_~)jXEUaDeR&|KbYZaZivM(%Z}#TJ7KLQ9TpAeos^HTX);k zAt_(eH@Vulb{Vg7?kVylzOGO!csux5E3FN5ugNGOJc{WXx7aa-KIIwWCQFoY&ON}V z8L#E(N<(oZc%628PRBd?EHp(w??{e_p@)rP)^)ZkQX+Np5_(hmn{~7?IIzWk55BQ0 zycIlUT>p9Vc|T?3{IT{&%glBj>gZpnbOFg8p^p`73AX~rUEMQw`-g{xWjShVKwT1X z~$H}R%wA7X13uw@w}ej&r9YkFy44cAt9 zbiIjK8(jiUKsI}tEl!*mTI1WIR;N?MqO6>8OR4KDWqn0rz!-QWy>W)bek>W<8wDP5 zFLWl>P=<=bLiK}%g?4DKhxykw5JqBEnX>)}wl zeiaV}hNjkYkB|??ra9M=hQf6FkEk-zJy&CwXymt?r9btPY>M1BEXHc^CVaE_M#^d% zWt%OhTKhRRiLJDy#$dUulmR!&5!yx@#bx=Ry{zr0 z(3<@z4U$Vs`)u6O!TQnKQd%t-JQ`U81+Uw+IX}k3(g+A~hxL zV0!C}?wKBGaPCjJ8#`NyV=Xtu6Z$6q8rKJJKV@gw1zhynyO;$dT5WAVIkH}uZ%6-eLm<3rj-chSspX%ACmHZrMy!I_a=Xl_e>t4FLE5K`J@Hc{?{ z9knbI*Gi}CiIMHBy#mGjyM&zLLt~hBIarf6wwJQ?qOS}unTzLFCi9h^VZ|Jc6_p;q z{{2~s5SF3S*DCY{nxYN!o%5~?jPosXP0q}dxh(xf%E^=wX^|NZ+)W)-b3M*}DEyH1 zv1N@^!&vA&m_AkQCH*ZAR|+E&ZtZ9i9xrVS4G(qX^N_P<(PwL0=?ZHeWjXP|A+3tC zTih*vma{n$ol%yuVEp!wz9NJF+gQsh!@Xyaem5}RBYF3GMen+d6KNw;8>O#tt;@WT zTGn?uI$NGzS+m(s%8lXgm`A$qN=_{k*e6c4`=x5=T$gOG9qF>@%%lFnippil5%nT) z>ygrK>qwaaL1-wSvHmTMu~rG2VauhogZp+1sNZkU4aOhB7Purm;;lonZ-VEXw~^<4 zW{-@+>8I1Wq_=a;b(K;-*rvqSj{g>++6SY1(Naq}{%;@)x+Ld-UgI=fKo*Hbl?RsY zmN#@Se-FIkCsai<_(#1iJ1V>pJBep$O*mr}wkJgFa86ae0z-}vwv*gYf%^2DdJ9%j z*uhJO9{A^Yd-{&~)_YgEhi5d%=#_cN?f2H!{*{`CzlbUpc`|IDJ=6Bl+Eo5v^wPhp zn^mj+1Cf~wU%%R75v8qVrqW4T3Dw75M8+-n1n87zv3oo#v=xV~pTbIoe{j`!Fx3{N~~-z98o>udswTm z2F{E2T-Gt-N_IZD2X2OGS}QhI-^7oi(x54lb%e4&Dk)B(VZdYVu~Wd?8n9)&JXtF* zwpMZEbVk`rSysvc^bW{0ZnJE9ct{F`X(V(;&8y}Ntnzj8dws7x&s_a8`(j1&qsjDHfp}3X(h$hz>#4y>`R@W?b+HU1V;HC(6clQ91o2!+M*BfAxmqEVfkjgZ7XN*Ya6P##d2huv4p$W zAl6OWuKlO2)>nh~e;TOgUU=zm5%WQ@(gi$+8gP4CEUv&_=7XB2Je@{!L(>sJ-Gmx- zp`5!9=0LB|ICZ$XQSBHw6*%HQ@7wG<;_s;D*E1R14FBJFFsiY^WFXQ-C)|EN1o|>^nJdL*p7yljnyRMLTq>;2;Dk9C2XGv?tI#N-w zHdIDk;nNicPqk>>4(x9sDaFeB-ua*NJ$R3%`;r6G*#R~|n;JZ<5#us&)-34Uc!V~S z6~!VKl;%riVt|gN ze?xEB2($eKb)O?Z?Q(#zT95_x&*DD*&3gD=+-bAFSYFh7uK-PY0RF`Qus@Q3r@Vz*&mH~` zDuIXa^#IzJLhvk#0m`uix$ir;8`S}hwn{iGTogVCk-&|k(HqTF*X;w&aS|PZw_(oE zy#TmqC16Z7fq;wx7F8Vn?NO*QSA@oAGq8|L=sh?W^~W;cMHfWpw5s^74K+(^xC4#B z73~9V_ywM2FO5;a+uj158ILS`fMjuI1{1t_*kEd*%Xv?r|CH30mWrzkyM9h<&LdDe zJb~(H6Zq@xWF^6j66h`3o%Rz-ahdrT5&k18c?j3N1#Bf7Y78XL;hDPKuyToyFqV+U zG#Lm$C16kOggayxu?SUocj%7tVO3reoJJ82PYa<3i6>XlohF~rS1^^H0$c#c!z(F@ z`~f{{0r5-{*=K>9p*c3y&| ze-Zch1JKMGU|3M#tNDTXnP_eV{#FM^cL1ff;lB96r3nYhoD1k61;(=v2-ic*c{n&K zV15I0{fuM(2W&SLPYVU&X>w&O&<>RVj+z@DRsraeO--`}|B`?;%fNm&;wgEG)l?Ga zG1(szjjx=cjdbfzt~~byEV@=LeQ;YB}zFu+L>Ae7yfOcz-BkFpTO!B96KFjF%>Hr zn57^vMw2OFcCRwWlO4Zhc7clod*mbLEgg5Y3Pu%;&qv|E6hAk4Hg|D_Z!xn!fv$bW z-@pE1-k2H?2j(OKGZ2PjCgOO`UuR6mr%a?>$1KKRgqiqP5g@qWjbo-MbiDBWg`znD zJgn;2BY&VbQU{?K6k|=%VK5tb>4<_#^ z8i=l`h^dT~+6c3t06%VsI~RxXC1VavJFL4iCm=9B_Zk?f z8&{YEe=^)v33tYapGm)XL=Jq;)GocoPGow!rQ!%G#$f7z%)VHrb|?%pWvYP8o_nTN zir_dLvv2NOA^g_=X~hK0vlY+17e6!auK72LW09d%+1 zrcNpf$5im0h&vg;lVOf21f_Q?V7`~&&q;u4?*?PyPdv37u<~!gYlJM=m~F@pVI^8AAxXdPB_A^hZb z95)^7tl+PDg#)gHG1yzoYSK-tCOe$rV!-yF3pc#3cS+y8m(5@vwuLs0FJUj6*5g|bty;{u=zgqj+GqDP@o8AdR)_`M zlhmxrN5^woD0nTfj2BfFC^e0Op+fp=VVAU)9_5MJ3_gy26K(Li%F2AkVCbxmf$=fN zmCc2QBd>}u}*I*Vm2(9%vd*`GVk#&4+zmCb&tz%;6 z8;4R4rKTC}ZNJ+)X~~%_1Fap3<3c#e{yqGmz9Mbsk92=0yTYeuF3rf`AFXYpnSB8} zq#stMSS2zs=*Z0DeXs8~l0%Jz$@G}8!`dkNn7t0!798&1%hy>lgu`m7&}FtwTy6bC z!-A)R4cJGcl(dj$(|!w$6|zfD5zn#UUDt`gZ0)+GLDVN&R{bNGQyVCjb8KZX{vP^O zv9#rXmK1%1w`-^@{YOf3-VSpZH<8=SF?wL9?3m62oHp%Jb`Pb%xF6;24>brqdpUXq=>9hfW{qXils7`ozfL-7ZjW%ZAA3W2OfxIiS zCLbf+dD~EJEm^1_2Kg#OVnx_PVUrX=IwGY^>qZsJm1}&0`-~LPN%JR$uSQ z50h~E8#GWI*>iBnHlvNWD;r(KD$rDX(U)p%kWGFObITj)CLRG_j}^jS z;v})A&X>UpV&~y!H#K%*q>x5Dn|!-9=$EI34JAtEJ?YbS}(~PIwMBR7k%rYz23z78%4d*)YT|-_iZcWLlzgH>z#9NDHGIy7DYRZO#BU zc;&A;ZYT7UhdLg;&{~6&@fh*;eN^7=pcD0CqCv|iqYkzK{O;)l9crBt+AduwQi2VB@Mq7aTO(gd7WX=aKMh` zul4UhCLZgXSt6p^4yep;!8z+vgSHY!(V=81a*eIXE6<6uX=R#3C!>>}pN5GG#2aD> zWWjUAmEu%U6pPc6qz}}ES9yPCX!C;E1G?|6@3?e~&lh$>Qa{I%?HWdtOqU zXdM$?DXLOrRM>FqehK-bNNFKq2-~WC)2^aM^M_K<`o)4SMzX9-SE?vnS|&cC3Gn7_ zCbpqh;4$+ExxgNFBB=U4y9#DJN?VcEHtqK`Yucui?5VpmVnc--d$PSt>YHOgOcC1~ zX#vovWn`*;#CzJ6;$Epb=v(Vg#~k}G>vg#!`X#ls#>?QssU>`^0@Jj7BtwY~XU-uJ z3nC-K#)L1km6y)x>jNdwy(r$(GxMiwTiVr>+bLPoi)8$fc_5=iS}FHeiNqeuF(a=d z%NgeuxeoXl+2nw6H_*eAFRg<6w4PVVAJ#Seku6d_BQKIKS#Ma=X?^{&?+~!?KJ2xm z#5{`I8#OT8hpceF5@qct^(RHtD(-{snXY@D*PdFg#I!)_o0Ng*B9K3=So#y+8f(qC z@j2_}X^|y!a=-A1;P=2|0PZ03=aSohh`eyNyK3qR+8M#R!fiMD-GPSNlBPX9Ca zCtrUpi}YvAnz+MpwWF?C&Pf@_Y(LW$9vbt7kM#sh3(Sb@b0H znXXW7XGWI0IY%W`kLwWrLrxW)(9$&x8t#*6S5o%7CxuGM#hh)ze+ye?4_ND4y|z?k zj;QO6{fVAJ-dVw#h8WR0s&Cw`_;Jp^9l+5<8*+*=fjD1dZ~n|4zM<|>Zhz+e%!wJq zwJ~F4%GcC9nFaZ|h-=xZ1C^8Wwat|@6YX?m<#VH#{M%lYOi$#$s6aSt8`wM)BZ!?`L@oR8vJq!^1cw__=&<&*WB z!EWA9zWMI*?kB#Ip7H*%zOla9-UaTB8TV7d(;vI*l6K**<4Ywjimx3Rw4Rh^!h_+E zQ6X5u_ci^mbem^e=%d)#@ihEs*b?V0%Lt{kvRrB)?&ZgVJ$&4g=q(=l%{XB_5F^GM z${K-ANMmhJXtdE=+ZjCMIqb{je&M$GS9m9a1$Nv2+1miVTTN2WrOkAg7krLMalV9z zEHo;{eo!h)pOdM^0=P5Y&P>e6=U%IRB}45`!U~38aul}gmRCsw&{xm~e6C3#yVvWn zsMFbQ@v%KA`c>TgEYD)6h5csv*GLbRRm1#l-)#R9UpL=tUu|EyFDWoSFhzalAL7oQ zu{vc-2G{yq#>GBMIGZIV`h{%|JTK0ZQ;5Yy?Jw^R*N@BzzNI{;lIVOKKErXr!ld?e z7d%6r((FP#?UlcY_m20y`kSyzo)=jlW<^YN+&)Ks`yi>dki@@)It8}-YWa?MuBZb8 zE#a`$-9O&n(09r++H=x7k3si&J?Lg2LP&{{C8!~@)?Noy#-u`FIgxI>#XT$qj(xql% zcA&ZUj8&m){uIv>*LHuRzMm#rKii}23#~)sapC|eTy3YOk*Kp2=L1?n$S?8sf6> zD_QXZiml@uA}xUXW+LfEs}YO7NgWQ?zV5#Kp{rtJ`_ZuX&W*N@(gf&CJCkMNW^&2M zr@ulCZmPe2un8|HEwmu$oE=(5{%apf^J_4Pc2U~wGp|3-)bFSJoaVyYWPCl)%LOc@V1W?=AVE!@W*6k#<1o9vB&{r9LI} zE|{p*VAq5zmL~Sj;WHzW9EEI)#8<##>cUm7s~)Ch4ef&)<^I59Xie*?w*zI=Nr7Zv zZr>2E=>N(Nh<%)Oqn**!qW^OgR`Q?%*9U%!P9uhw*EgUK$eqCbU6)Fc6?0f7!7re!Nw|ttuo))k*iu@Q}E3&e ztU41s(I@PRP*&P%DQvkSyQLrGJ2;v1;0mx?xB+Lv9a%J_(cuz|J)R1TZH(rC z`h20>!Jcm0Y0tD|gWItcs&QnqIL`mrw%`x-Wx(fujcQfa;Fur{4paxIkNi~vzo`RN zr?5aYY&XN3hK&g;0FYs)_#G}tWoZqeH;dFowWB&ExIw#WY@y|)a`HN93ta$S(C>7l z_yrpDxI{i^U1eWx{oPtst}mKhrH&$t_UZ1>liPehoE&E6%Yp?Je;qSr<+Vd$p#9p)m=}L|W71>B_i8?00)KOXo z<34Qyp7u2`ayNvqx#>dVnH@RpRQq$|gi^YC5VE+;Bir0=w_ z(2~6jH3$1XI@AoG>>sKcEUX?4)KF^%`-HBB&Z%K)qQ7*g1VEK%VGY7lo!RW;y{6;YL-{vr;Q4BR=?;qvC1xS zqQBSf@dMPN{A)QX51`FRE}<*>MtMmoVGQ$NwtMq<;!@^VJaPxf3jW> zKXCXh>&NxctPQV)UdfNOb9xq<2VCuC;w{pg+Qr>cf9X3ZDGX$h>@~P$pMdtP7plrR zz^9JDS{|*eP#Q`NXmMZ-&DlErhBhMfJ34#42`oU(=5U~GusG^=`GOgN!2zz$)z`>> zS)9slYj^pDe8Abwe$#SAd5b+Onk+J%2Ux?=>k8r0Fdj7z|%rN2%~{Sb^(90B=9EFBc=e@zU6>|eFGz- z0g%3AV5ff>qkw(=7h{U_aQ7+D(vOflqo(9>&vHAzpx&<;}s-tjufk8ax~R zjNm`m4Yr$IWO1mh^Z?R45uKNN!OiS{=!`xDoYV(&8Lf|QNy$Jeeka+;9w3KbfYMh2 zL+~NoA&2lT@PlZ{`@$LG7HTv7ki`}O5<3J49>*Nn2?5`84RE?EaDZG453atbi?qi~ z*npT`!PjZ9KgT179gix=5IEy(4L)riemqz${L!KbNFGp@bZCx1n?lU}Pb-_v%;C&Kn6b2@F z8rs^CLYhzp9xc~U^?Ob-Pz_s%JG27IvB9XtG~!QLN!Hd>_~@hb1KL4txc*Y##6E)? z^*=B+OOQp-E-a%LsSW-j@2Quj!)2tQ*pe*3vkBRbu-$&1UGezYGd|JwFHg~O1WRgp zQCplzYe9?N9sRs3$Zu#zp%e9pqo5>7gSM`K(2uM$^0LbCQJu@Wu%%kgP%$k*&#za~ z+@axm8XJMy@eTeR2uL|Pj`kG~i&dp#KpMV574y6JiIkw1z!5%z8r=+N27WUZ!3%i? zdW$vSO);khv8EDGVd_CbbhbDYetLJIu$udSHB(YwC}_YVfi-6rv?khaEw{EZbTPCM z+MZ!p+XeIp)Jboln&J}1(HPMRPuXtL2FIGffy3t}LeFDGk^&|+)z9_Dt zsc{%S3#IY&q@g=_fBrin&*P}1%o09=-%}HJY>$`=E`vM7J5bIH#P1z|f9f0l7yGJT z)643M;g&r@^MRLGQtOC{@o{L2D)af+pEe7V=y$q=J`kr%bMX5Uq$|Mi!o-jCFy6Nv zQ77Mry}Tvnel_3DgDfAgy-rx+yRbG-8~Ne0-Wo3YgW-kH9-Y{~LzVK8d?E~URz^6- z2jCfB!(7^EREsBRZ4tE`)$(gA^qj!a4zsbC#rwuSQXkdYqGA@QsW=9;_Ko6ES_rl8 zon#%>*&@^uy2H`t|EjP}csIOn=Rh~p5ZF~A=x&;j*T55}V7*)=d+9zfk!O>=WHb=` zBB(>wnI)-7!FV|3W>!5UoaQQ#V$?a(adS zq-DVHtwxuT+~~;i7I(8GsubpqR1Yif9*;&o=?gfFIFFA4wT+;H(d!=AI>`D-qqT0rqWxQku{!-4m`gOl$k zC|2DBqe1O;8h9@aP{Y0e<;_%7w@l?lGAb%rQ2(lk`uSnuU%?6YF|yv9X76&T}lxGnt2#;}QOHdg9kmdp(J$BzWI&#?9nqi)eocqzn@{@B&-L*1xQ z2W7a2C$JOsf@^aev0xP($B~!A*8)(+5j_d*@DJNECU_^OGW*u1J6s6F&U1wD=5 z1Q(z`#$6MBMl!rg3Iexmi>o;eCrJmY>>E*!D2N^T0GxtrkP$f3CXDp}*$5AZsRTXS zFqXGa8=1}uGqAgNLPe)GW;8#lFdC|9si@)nz}Hh$PmiKzJQ%8`>ev&*pmzGnU&5vK zDLj-O@b|z(Lp&F%&VBKox`|q*SrZA0e(Da6LK9RTP2Wl< zo;UKVs%t9bIcjH_sOnz8j+8W&vElfdgpWTRR?x1>S`Z}9c@9d~v zR=}|u;h0_V795CJ;1Aq8Q(e^rYO88^hZe+}Fb?(BFpM%Q&RP(^Q3O|97*%Cc5ycQ^ zyuzJ5hWhFOoOy<^0$*!Uk-vzUxQ(~6sr3n=t|#H$6oz9ds0!NgWyRI!LH%q696@^s zlZ-8RlO)11;}fc4MX@_|MlH1r`qce^yWK|gJxf5fu^ZlQc05s6&^0O##_UC9_C22U ztjID43+GVH>LwJ$6B~dQq&ALm8+YU@>ZJ^w#$vES%it=KaP9`E?Aq|}SMcxCe$^OF z50403TVZ_G+)s<*$}U6uk%GEc0i4quMQW8H>S~%VS5Li8WyM zcx#Utd=J%lGVVYGe8>KWDt9qdenotbM{lwa)P8MoUs{v8p?Zvh*ai zMqCa$JEc{;KfO9hv5w5laL8ypmSp*4#4DS5vh*kPR&#`++68KdR;p(xnfH@B2B(YY zgvn~rIqVDK^XbMOQjawzvHAqDxM&OblumHhP8MH=>WY;~FTK2Ujr}gvpd0mfU^tt7 zEr-IVEjyeEi;?2Oe*Ta={R)AMLLxJ7qS3NW%@F4hq00*!0Bc` zEid$7YsL3qSj~b5Mi;@)-oXW96+g}=K_S%?{IfQ~NHDK<;`z@DZP_W31QyP0xEzk; zNkSRM3?G}zTtX~c&Holo^PGlEg6IfxAO3a^#WvVA*N9i)DQuC3&=OJ<;)ZA`kF-M! z(cWTJyv=683$7|TWvt@mpvzsMCF$+8wd#YwuwYGibDj1pfn&bS-n)U^!CvZjBO9C~ zMptSZpgS?pB`5dyN>@jcwGo2ab4Vs<*sP(*JfTp2BJC(_5x*NJ~m>;hCpg z_9bh!xai2<)>+Yk>@QU)>DBr@?S|y8NcRHF{jtc|GU*u-si#yzZ z)_w5D?ZM+zvwRQ^e?x^sX16glmJrEt?d}AwSFUc1AyC6r; zoxU>jr+=zHF3=@(TpT0KkTzL1g!grX!9$~v-68b?%g@bkhyJJLV#ma;sMI!zyd4%H zP7jZWZDji{y|fgOhw)e5roMcEwW;2(dfLg9va1yvAa6)R7W?dXTEUv9H z34R*)<$PRrH}6 z%+MQqh6U@Oh8i?}2qTs4_8sVk+#b&9rDzE@1$ao1_0V(a5BO^7KX}gfwH|OTwBNEU zvu=QQ;#gxpFuOWhl0Td0m9Lq9zvqOzoA0;4Zr>QsO>!J_Q zi?Ql@Wqmm6i)$J}XJ;}Tx!M7-jnYBhAm5k$av!BO@K!rI^$a2= zu5b>q!g9RbU%(6I2-rp0fhin-PPP-cwH*<676I1KhAfkIlAA_(Fk(NVGs+7@fHTQo z;1st(?Dn1SfES7a#HuM9$l9_L@Ljv26Uj$?vt9&wdk_66xE9CY7uLp@N`kZld}Hd0 zM@1?z(Jn5c{l=`X^*hu`CDNKb9d5wc2J+SMKr4#i{~QL6Tp3x}SLCiW5swi>V>iKj=mDPR5-=m4Ad1@zhSo&j zSNnmQ2;@Dy_k+O2`U0!^41e{a#s|I^*>-kb5gF_v@HECDdqL-PwwX!5t|}sP>j?*e z3dp{a;k(e8Y$1<<#@r+YX+`S8nEnGV{t&4GPo6Vyo}Z5RDJPC?AcEe8?8ysuMj6Cj z9g$<)0+(V1+;%TRsRCXRqNq2B+gC!vd=(z7t)Ml2!cMXy(D3dAYGdK?ybf5&_mRg; z21oZB=3x@Bt+GI9ekaGFSN;SA_Z_e`F5>$z8BfNN+SoJhAnref$iEI^?^TG#YXc*S z2JV%Bue+Gd?LfX-KwX^$9XU4hwfq>L#G7FTazmwC8T^elz}5cYpOJTV0IKFg&NdWi zQ6l*ta>kYDi*o_z8;ks@9X$8H2`+r?MOLv4OxpoCS3bn`abTW)Ks=ZZ_TMWoesTf3 zdyctqgVnbUxojPvN-^+t@$gq%hno8dJZK%j#7ZOQ?S=eeJ7%R6;@B8u5p#dxX@4Pm z3m`MR3#~E-=lLk|IgjuN{GATSOXuLc<-ohm@yk&w19A2(+hU8AdYVXbtgqDKMuiz>{GV?&1)9mq9+&23bZ{pm{}s z0p`Rxq7Xk7Lfmg=iG6UtTOz8T0p?~+MEq}X?kL2@!@;;VS*v|!7c5vR+@0*WDvib3z)Jc39HBKv)8 zxH10!u+k3WIhzc=d~0-bjw7ECwVN46Pq^ny!8rGW1MR`?unHN`9jrDe$?^Gi*delz zL4v_sA}f22UgDd1F7&r8C@claBM4{l`!}#MBFGc;m4Ahd$qml(1nf6pAoEFB1;gM0 z@(TRes>p3RBQyGHY~#&IZKD*f&Vo@a#LT@yOgk6XhK?lY7dFR8BA@sKVLdlHrdWiZ z$hcaOS^T{a1xzLh*D@113Yd~YIdlhp4aVbC{@O^!t};l7ho|^WFkr`F*IS5@tOs+u z26EX1B^clFyg0!r{-4mo=#LTF@YG!f{?`{Q&+XWwA7S3c3R{KoxPt1&HsUqf^6y3p z=_YIg!zux_n6*G4Dha#5@b3#$$LzS?9kKr*tf0S9^B#<6tTfJc4^O2PyyThKb^jm= zR#r`6sG)*`SAh2>FMuyJ5Q4lMISQRX5v=3d!fD|UW~D9u)*d|j0@ypp<2f3Gr{D}9 zLmK0JhtWyrfdEG^-UztOeEv5tEZl;Ay&(UW-w`$;Ct1YL8|ef+?fD$6;2h}IF#^29 z;Xv5y1NT{{hY2zCGFC%Q;zR~s1p8|YImx@gt-UjRG9xf!&w+m|a3#3MZ-Z-> zK}Iq^Ic=2WCGg+3xNGs?3>2sEZsdO&SxE^a8{RvwNgwhTFzO{F#OfgjY(}Dt{;Uug zOy?MH^ntVlcE%yRpV5l8BMY$i%|y-n3|M$O@nqJ=G2KFT{t$hm55gD!l5m!lg~w%W|e?lvkRqSkZ zgfsI1zKa|ZhU#Yphq%dj&l^C$ut%6+K00()1WI>2|^(WWo{H3F@HZ?Nh#z6u{`Vzz^aM8*DVBLA0eP z$A2S}piAi`psyG1YbkP+aqNS+P)l>-E%crggChMgD+gDL1fhoUfc-{Fk*e>TIOeUZFkM@Tc)8#{|kX5z_n z;T=^Q*vD?Nl`SE?am}AulsFxpE_;OuGy^+jf>xF0qkf|_?+(1{xY&?o>c3&{-XPAz zyXLZ9Nt&az5v$?t5<{;+2MM$ZOiefE?3K}5+`=B}=fnwy{{L7y3plH)u8p6%IX%qK z4U$TylprARf;0$Hg0#|-5+Wj~2m*q1qY@$@t&|`Qf&$XrF*A2=p8WoM__#k{=H7G9 z*}eCA*0Y`^k0OWGRk@GS#QIFGWS?el-huz8G2`I69KwH^hn=j1bpsyryY_ke2=hfz z-gSs0f<;vp>wpwZR%%5D%*pW&&vs@3& zf7xrlwj8pw7Idyky_GX&n254z&TXZKJ=4l`6^qu^-m@aIWrS@sc9pSc{fq?X4&j#_ z<}5Xy_+AfR^A!l1u0f7hy%$}k)X~PrX2;DAM103g)Uo7G$hzcn`Q#DiTxC7yvu4)c z>Xk^EJK23Zt6F@TzDc>GCh2+9ccibBXU6yHUl#eC$PYYOzvsJboHSKW6(b6Nq^9~c ziiiW;bt31zgY+wQyf!E{NUmuYa@NQP%qxzh<&UPTUsw;!)!IM$5Nop5N&m)fMwWwF zX1W~bS|1)MRfs#8SuehzQv1cdgp?#du1_ zTc(QQWUQ<5%>A+SB34Yza{py!IqB;6L{QgJwz(VFz4hVfQoN=Xk8ZN#Jl&M5RxcD~ z$~blG;%Z^7u6|pugfib;k;$D?ZoK?A*#CLwKl3v=TPKzb1{x zue+aGLT7B=%XU|G=g&dGH*#e$XBTl94%lamypvtQ*MrQHN6u8vW*s@F6rpy7IE&Zd zJW`9(hRQ1Yj@X52c07 z=Q*FWmil02F6Jy%octK0IP;}|+&AO2sk3Gjh>@hu|G%my=#ae|%A z^G1W}@4|bZj+Ocyw%IP$)ZLVzI8jVxI3En+MAw0{{5i&R0!#u~e#wbHS@wcIPQYIJ zF2}~GPP~s7|HVVfJOT@57k-c>*f7)Ww}?KRZnd@gvpUU2-La)v%e-K=vJMixo+^!$ zmk{AwUMmQjM|ID1f8gE+*XbRin@bU$dmZ~hXb%bf;=Gi)IF^$tjdfJ#JigE0u}i0; zJ9!r-(RMwrUXolDr=qu`9b;Scf2~u}5PZo=n&fKX-sm~*E$rLoDd)b0&f;;D$aBdh zq(-o~zA)c52b&+79`f$>hWF6kzRfQ13Hk3VwXN%Y_lNHGuFl$K`0h=~>G!&v5B<}x z;TwHvE;6R+Kg7O@c8D&9#Z)$WE7CS{I&wDJ-drU$RCj7Au6E?AsN&7#zv?gMYw9_G z*5`O-7_qb)rLP4O$ed)%F?yK&@Blus;?Y*hFCCFjYD3V_FYhhr{l(o^o2)*;2V6?} z)Oyd@5t~V5cb8atG=JoJcx?EW(5{diJ{L+1%dzFQSN%)t?fTGt!&BM!#Q$gf?YJ?% zMV^C1IiG}YFR38+r7g-efHsTFu2EPf_54Q@v2u==-B{RV{v4v89Ex|R^-PHSr z@3g;S;+&)pP8`MdZ=couuEyGzpA&DHDDDC-gYgpRS{k%5u1;UU37+4+M%2c_&Yfx^L+*|oA8 z!sRVOX2+Y{fa^-WL$F_%`MB?>BQFrusY?1y2e5t|%&1~^ zj!pT6-zRXoOS%htG7|21 zUqi7V3yx_o>#FsS;fr+D6Qi>;`(@n?{1_OTndil_jOm$sGW=PWgCE06@aQ`|$8-6U zzEAid>29hgH5T7CKF;M;H+$}xbwiJcyk8%_6+9DK6n!Up&2-x%%re?V_q%F>d!%n# zoX3|x-bq~L+3p{j;C0m{ALq|F}jyo7R7de?yC#|99yytORQu@mH?6}*WL*Cu-z3dOetJz-@gWEGp8&~wU!Hnow zqqDV1mhtwibzktMdirZ^lWwKlan15KN~-I>>|XEs!1bv@)T^~5cHZ0+otHH)J0sMA zJkT4n+64||Zp|E?IXbIZD8Fo(Vx>2-`tx zInwnttqtMfft9gi_LOM**bC`r`M%)axEuI7dQT;+@VVkQCN_vG@2%h~;Clh5r@K7B zs;$q8EsJDl?+%U&w9T3yFtd7Q^v-%OdrDR;Bd>8+{vhNrjUC=WXU4=^N;dz;1lvxUIq?;=;k`#5p0KiOL{et!IQS02|P_ZX$LWt;yQ10qw<_~{Xxn$Tzf0A8?!=R>kb6|(Y0naEgQth9nEadb z7r6B=Xh!vp1VgI>C$fW~dD;5{AB7u4HU!&5W%A3$S*ASEbxzx(o$;Ffy52tC|HU=+ z?Qqp{H+HvIQm`9)JIC+}41y{2i9Xku09#|J)kAt++o`S9cDf4t-}3$KT8Z!H4dRt7 z*J))ld+=*kbG<@zM5Io%WB76~fL>SM(Cu)`*!Pi?NIzqN(Z}eB?cIvZvKN#=+EZ@} zcV*W5+@8LuVFc9U>OJzh&UQ|re;GE!mWn*VX&8^0|AA zr-iyjegvncjlEW1LN@vDBkdz`=J?p{@b~%#{b;nYzQS}{6ZEh2@z|i3VnZEE{oAf# zO;ujkB6#RR>M&1&JYMSPj%p7bzq~`uRAK!|jny8?C&UvTMct#VJXfpZI)qwD)ODOp zB1_cuaz!O<)wXLXK5J66l9Ox=H4@ErdLie1`*EzSdE72)E;KymGoz)G4=>=SU^wsU z$DIE_vo_16$g$SZH2_q}A;R!?xxUs#IiuEdO_m<2EwlsDVdbK_6$Ct6xkD($3!+84 zDwUlM_9>;0v%qWsvv{6$z_jdU(q_A$^?_3YUQ21L&?cO~Mj8w7>3?II;79qbB~BHg zgs5~UgZcvEM3byTL|!T|XsS3}w8P}uD^8vm$0@BmlV>{fU4yI{)~6~u6hv?wm1f8% zq|c4s&O_I~`ZvyR%4++pyv`nMot3u96U=;0SU%=7v^LrwISZ6y_EK{SnbsRxe{+Jn z3FceLoMd%!m23;5pJkrzCVQ`9Q2{frm9A1LT3qNv`th=L^Z!Rz*F@W%ci^9MQG^^~$v z8~Fvc{8ej|avH4hIFXJi=x@Z^OF5&XD=ZzCpPMa}wdzq5ga(#ChP)3A58XA=*=-bO ze%H2-qVnO$UrO7I6ma|JFzcGio#^RHU2nW~-T&$q=5Y&7oXWSk32huUQ zrj>v)(``=RKUvEaH=du0%1iVGy5iON6ZMaJ&R%<@JWcvX+D<;dUSt9+XAgvbQN{k! znQa$R{^#f*0+nUSnPn$Po8>kzNgCP9q&CV{r;gQ2nJ9f?UzfIlo4KU3sGhb4UAk(+ zfK-N(EijDMWg)eWJptTU_$tc6gUJO?rxFpL$9URpd?&xyi1URR!p&GCb zyL~fgV0EcDh?l~6=!vcJu6&*UMKo?d7%bB`{TG(oNK@^+(mW#35&`H*)LLBhI$ zU)KWDlkgezqJ_^e`%5bitwwTp$A?|>6eZ9*_DykFZN7p#PqL+GrY{f*++O zuq``-ga6F+qrk3KIgdb4Wqf#ZobO@&{N?lkD{Kj}d6<##70>&Y@zNTW(>(kR2SKO{ zgV+BLuF*9tL85!{h2>#X&xga7i@c2m@E1M;V_U^4QU|SEe3W4AZ-U?42lw@(Y|xF& z6}hm2-hfY4ky_ueFM>j*VH@t@y1}6Ef8znD3;X>Sd=8b!*xrhJ=gvXmOQPR9694E6 zm`~lXE93D8)aIQPV2W+1b${tLeD(x64s@~{7UDJRg8)w}MMjKkPBA=Pz znsifisvKPN@L|#PBJ=C23)AGssA-HJFb@d z68k)wF};Snw6_;1d$Ac?W0zXwaQ_`^wWd5%nPvCFo?l|8fb<@<-PoM1nQ?eYrM-48 zd!jtoK1in0W7a=TF?Q=mC?K?!dT5_u#kG^sD`8f(!!x&xD78zrtdx_Yc4tQKO}Q5_ z?;}7Io|=u(Q(uBU-uHG}`D>WEF(+OfDo=%9TM$HUHF;N5JjF{vOTN>tTZilbebkiM zR08CAE}BAbIxDO%(1bdxmyBJQbYr0l6}Fs_&VbLEZOW~6ofPBjl z&f}AR<)vVR_uZk+oQpTfxHBtG)_R7U27r~^t<&EZ_&Q{rFS0x@k zDj$^3SsRo^W_js^I>7u+vgOOxMWv+mg>9%4?F{(1zsMtDZ1{7lzS9Z* z^w;(ndzG?A-eWuZ0(qUf--1<*&DqfT*gP+vQWS91veIaKExBO-fu%KG`^7n|ua|bJ zvz;o&eW#_Xr1G876Gf@d5!dA&ZW$;st`|CpV{2eTp*8Ame@Wi(^`!N^=Q!TZsg|-f_uzHZE`0w zZ3BD9QbycNa_-ELn}JiGkhkOQuPCpR27vOdVa>W^e`Sy0iEW7hDy`biOnVh*dvh@R z2&}NXtdI}zWy}ZZ7!ObT3+aHBK^~P2FeV@3iyO*Z*pGMmFJ~oa{~mU#=P>w6%ta)Z>vy?GiKMsGQ7`f=TL>tGB z=%cI+2q4bO_4IT?j$xaF- z1g8Yj$k(_n!_0c!JP}{fzudhu{^z*+311{0_PvyM%d0(Om6gso`)Ra{bqtlhVdzr) ziemR(d9z#}2FD3&tv!KwjQvEwbaub#3%Z*nlu0BG(jVs?rG@d@e`{q$FPfW;H=-}1 zCqwN6vq_b`GrK_c2f=SLn`JJ@eiU9T4e{0W{p6kOZ{hFiZ zcK;dsE?nm?q(s!hXTj3F?z}0FWA+G+_PgjeH+L0w=W*wYn-DkE*Ub0A^@I8zN)Pkx z@kXMxJ=Q;#S8o_C6TTNN6a6>XAv`Rs2Tld11vUrISWh)sn?$~k@#w%|PMwC?H=*D-f( zS3kGzeotHBa@-r$ead3xrajv-t-1R1$T!g=q4n9>!Liu~vhD|p2hL=*kId8k#$>b@ z8_J7Z-}o(Gt@v9>E92Mt3&p#9E#0F$>$FTz)&tgC`qxIP@msXAzEIyBeM|q+9Bg#A zTyk!?wfvvDRr}Lb*0;(x)O*?Yx$jSRCMt;a!OoM_B6bZUPJca`Kl)!}WUxo}-R!Md z|7IQwGzu)v{+2wkLx{rcCl^*qc&hj>`x++9Onf&k8aF*Y%e&Px-*Zl#O>Dq8tb$sm zq9@1p=zjf3v^t37mwIjMxIGa|Kvnaox3%0TFHZ2b_7(HC_uO;0a)0jHrR4_e%HupX z8|gtJ;0i=qh4+T~1k;17gGbN{?G*kay2^NDzGWYh1}ihQo}Mn=-agx(?yu%M==;cf z3aKT(tF1DNm3))c+1d&!nMzdX=XzCRyHVZv(yT_j$ZV$&tdO(HIW5&S#Wl!%!pnQbJva<+UDtk#SfH|0t5O3qEZs*3%p-Vh%;iaD-8TXide4=!M9CyVYn(ZlJ|h z2fI1G!icn5ZlUZ_-c>iDj(JxNai`|6png(HE9d1k@>}wGbet5_j{0&k4cPnaMZAvN zC$Mv>vHHG%FSH;3Z)Y+|&6K|)qsr&(=6ckkqCM5BOJv|+bGP}q z`6*iEc~GtS)oM=sLM1%lCCF#=Seiz5qWa2OVnyCi$HK&Vf%eQ+Vzz21xt0C$a`^*R z?gwzOMzP8l#ovF4v-xrMlu7I!roD-brB^uFJOe3jNvow1DX|J2${&dJOM~k)*BS!f zs0xwQ#X!{$!`In~*L|v7Tv?zjMcc2OvPK!ETqfG36PDh3*SkqgQ6xBJHnQHwyWG^N zYY(9Oo8eHbp#*z~)tk)TGlNssV9uEy`!8ykNlu;GD8eLLE38h|akIVo7`n|I?4GJl zRk$j}IKK^4dMFo_E$R|tvjXbx>J8ewxT}ZuBMPBYLb-c5%&m; zuCDB?L&>QbvI?UPdQM*(8x$K6`!M!dtOgmD+Q+_*o*+lj*y!&u)e1_RT559>B4VqGD}T`6KPz37!kjHO!H$|FO;!Kr zDH^vm?uP%VCtm9)cjhFKNBYEBZf!O;MMskN`dF|)$O<(NPYE{)FA04b{51PsphxJq zRn65ZVQuP=l%>hn{43o7Z80_dl^D`dRy+N((E9M#(Sc^1@|BkE{?D}%??f%~cWuzB zYQyE>PJ)pZOF@C)w)q!X;r?`;avzIxlKLj6rDn%9@~)RQ8P6hZq6ed!V)^tl;X2_m zXppqZ?i~6%vO79Af+}s6_F`-BrM1ADJNMSy19G=cYT`~&^0B78?mF(m`m#@llwhY& z!RYVO3U_s%;&0=bskB!IO8L|e$wV+k37RdVL&EJNR_u;5j40RAzB2x=<98-xCw5Bs zGVY*jgnZV}Bbkw3!{uU=qTXnOaI@eYkhq@Y0#~C$gTn*WUUbg570Xr*rhb@reco_d z%=buHgvE&0)b*|Wk+dypWe0+PhU(eVT$gu8tJs~DXR)!nJ zIyei|@nk}tmOav^epP`;50nHglzy&v6ay)Xad+UC9Q&GL=$)%3NCn;kdY-``tI_F1XX8R561 z^-#((ja>Sp@TK6afD?QWY8|Z=31-`wCtu8othc%(_;R1h(=Sh2{BoDe{@Wa2omLd( zp)$;R5WX1Rl6}Egg649O_|EZTJSSmY959zlHJt{kh-Lh7l`&BOD+2J-F7W zXmzcA~>E~2W^+Uf2p?SC9U*f*ZDPGh5&IhI(u zM{*76C);OM)HfRq>|RPG_xrxaaZCKm{BCb0Pl9W&a*q>2Tl1LyjXqB=Y<4pq7;ozn zqGcnUnH!y}BIL?WEi9QcIZLAwcA~X6m zySvieZFnn^J={mRhX>4rR`l(e|5U+j_ajwyKh8%{`igFJMQ|@ z9I^@wi7i7VH{NVu9Wat&>msr2BH@PN57BRHr7w(L4&4tP)pe<-e{Slwl+LL!FY$oZ za{a2g8=g%*=H3l`l%5iGo4cfk+8tki-x1Fgb(Qnb>~7V!JgmCc(CQA5!+5eW!v0Sl z?rP_5fft#!|DU zaVydzoTNW>j(NKz*Gw&)n(a5$_14bVOudvfO)9B$LC0;UQ6Y9)e__>8Cwcn$CXqk! zw6xz`kB9F|co)sV7H*^PHqp$-$*i|B1g(Up#5q=U&CqIl=X)!7O1R&aYH;3tC%QH^ z!JG*8bJw*Pkg4r8v$OTK z69(s~>9jIGGM0fChn4=QncsD{*WN)D>~~|DIm%jRkAXM0)ahpL#KK*SO%+p1XrHN* zl`+zEqA!=aWcLQwWz8==BJ+G>^r$O=v$Thkw8iRVoR0iK_WD@#5xNwPo*f&7+Dnr4 z(ouc$<0mAYOFZYDq1CkCGDjH=iOS8dbd_o_PFCvQn-#3ON*>oW&+DElu7+}9yN)@- zsBEvZOUM=ALOrlD%y!mJ_-Svc`?VLYP2L9XQ?%ef^r;Fv=j?Bde~nDNwzK3uWS5x_YPYADmzXA_zfR(0=Q~5aQd6YoNe}D zdA`~oEseL-Mc{8w?d_&T9_=0W1ZOmi+FE$>d%zzY!yGHkiE0Bm2_M?^td4dUJLFtI z>#e!#jP_I;sCZ&2`pf z=WViCj`S48{yNKf?JMJrwXR&=sC z*ZfW%qxSZ^=^y6b>VN4juRUhZe`qYSX7aQ+kipzA>ZYSm*PpZbm#&3c2X&$RE4*gS z`iSW2f9;oWV=BPn&ky?m3{mc)+yZeXH;eU&wGx{q7yIiB?2LbiVrmAH;Sy}`M9`xJ z&R|-MauAw{9QQN2VQ5(t^6t6shtU4cI+trO;L}^{KN?DWa`$j&qgi+Bt zr`~Ygj<4ju?e(i2P^{Qs475sfdd>qYd5QTxk)XfHJG7>*_F5M(kxRx)PCk8z_PhW? zV=TG~MeT3N4D`3U76x@HYuG}ot6djlfE-ptYyE^xZ8|6Ab;@Z}y%U^S);4RCU{J{m z;D|PciM7?4r4;ur^!JKe?tP>TvrmvcaTggJt2(*uT}EI1VQi@JC)tWR*=S6}Rz<#z z4VBNh%Ox5KcYJ%)de(D22}Q#t(iXWC8QymotHDKHb5B6Ad=lf5VN{it0K?4lp|Ljw9WEx?kB5)ZskUPPv_Merea!y=v{7bX)^edm$= zg)-4KhiHt^T9))59&WF>%O2!>3D)?5?SX}|8H{tRooM!sjR-dn%?p)^ektAaj85E< zTrjSx%Wp5%uj&nnX86*QIN6_;dTNWkyS$`cqYa1VQ+z;W zKrg3oU2c%24t%cy_xlWv(5KiccVY2Pg9~*MTlO$)_kl2fl0lXGz|(I4IzK(5pyMWrLd@naossh412D?gT=Q#-%yF8eBJL*=MbzuN( z(cHwr_MRZ95=y`T7r3hip|uGtaA-0K|`(*dDwpe zr~3dt{v7)KFsoW+IN#U74n4HxEn**zP|FqApJb`SgWVmyf(h=0L}V3rpEM2yQ-gOR z#BOVC)ul>U8Z7rDAMS7VyGCMcn(@dPr;gCtD`;pEue3|*An$`Q{1UVz!-*&B=o1(l zjjeHZaXbsyyay(aM+p{j zhFyn<{Lxk|bYfdt-^qa;L;GO3$bnOo?>2y-Fr=B2%2P z${5cBcZTwhF+BWbq@vY9+2N|Bz5&ktn5@?540Ed4qyKJ}k}s?6aIl4m-%()WzUeLJ zzNqeWcIZ)KzB2$7toBMHxR`!E)^?UyL;i?~C=YHCGSMPBnwrfj;(1Eb^*E!Fr7Hc47SKWHEA=kR7{{xd;?Ho_MH> z>^D=i}g>zo}3j}G@S$1Co*Nxli{e5ai;$f@D} z(DS)xt9+GRIq00y4tNwT59h6OPJ3;~MB8#rnpKnbq`v!^6YpL-C=T zp%>9}($7i$w1nLE;+mSRiL5LVVQtqwai4IVR4Sr8bxBE+8|uGAK7a#SSL@CC`n@{L zdEeTHpAT*$=)ry2=gro(xz;OP?bi6|Uz2_AztkyeE6pJ??K!(@Ni)B(PH$lD*Q*1_eDApGIn~tm(gv-lryrb^2U34K4W-AAG{=3PT<6D_E6-I+ zE`z3?9qJP57o8K`uP1RbpBXM3evVvyrSQ(|K-Tf_QcwN#3xylyJK?z)nf78*##p_e z*1-3@Zz?upA!UMk)|H~xwkpTAMcSH8v~J#lzFnM$PrxkqX}7c{t`6i-sSkH`nEH|0 z97UtU@+fVor-!$$ySXIkasdSzfcbcHXIfTAd4c96(W8QIns}uwcTx-AJ#5JBcz;9yfBlW|jg71Y^hB`$`N3=-w@aN${ z;m;!LBR+GbbT7`8k|*`I_*3$ydN{l?+Q9ivTSBHFFHzrvPykw{W;45g2HX47+96rW zUG&6$(AH?nU6eS z-W5F(E*TAn2L@e~sLDE$r4n>j7f_gbdy*6zV@f3B=n&nX|u zWr@(+Y~6RJCbZywc9GF{g`Fo&y{cqzo+@bPGdsdiS`w`m zc@mbw&4X>Tj|FaLJrf@`q~&p9C5Qk^+mf{>?g=oP+*LiG&jDD=VuWS3<|G_tHt?nSVW_|Y|cUM$Duge#l z37n2zpfIybDI~SB+{TXR^T-e3e?vP$qk_I*nc$p2Tp(ZIYE~gLQTs9}PrezsH>T!x zXU4L!b7egU)px3>slJ|`3Yw`*lg`Q&iT6LGy@$@hcZL+Zm?via_DO^GaW;*b$<4) zz>(;BsgrMUYKycssX_l%`GH<5aytCGfln80?`O=<*U@x3hQ8AKVD=HIJ!kK~tO)+& zg-T&pcTS_T+zZ^_x~{8b)J<{=JnV&tiu=m>oJfzWW@%8mGLcWhkHWnojiMVO!@}!= zZv?vsQ*=q1@0pUgC#h=EGG9k^vb`NtBsb^tn`DlWQBf*OgwSZUpH|;BU;P9-S?2_j zLZ+Fy>i61g*H`Y+u5GSFZK8UNm}er(I1@OisV%T>n|Z*PMv<*?MdW{xe9?BOFAgFb z`yb)r(ZXgE`K0^fxWt6VaTC2*Us6dcFHxmFq6_D9B232z-&8rI%37k!B2Q5Rxeq7O z-{nr~FWN)bGS^M*9{5`=H0UnLMU-#kN$@EQxPVpQ(v`;l*ARungjmJc;;1{eA^JzO zaO}reck`r8?s?ZX&lc~;o<^=tYMlHX(SD8a$Ipa;Fox6Y3u&m_TX{>Z3%*;OtWzDp zdh5f7TA>Zo%BpvWnM#za%hOQGIY!o|=5`TK-9)3Mel7L`8RyT&+UfQ5ak@vp7i$b7 z>zOgrdVyBoCM8u{qOH?vX`|G&$`g5#Tt*H^E8xA4C9Y5-MmHBs)Hc|7xwKN`+L}o; z#4+^@iso*)Kj%IXZ(5qTw&Ebc*U$~yXsj{r7?sF;G#CE%zhDR5tSPA0&B2-w0}Ur8@d#$!BylYB4YV=KU9F|f?K(IQ`Qe(el@ zzZECpZvTIRZvl@#6}HSBbdDBt|79>UZg84j2diW|C*`9=OK<0C7vOBT@ps>I_7hEb zkJEMr|K8(dZE`Y>vgIOft=W75rcJ$v${lkW$+TY+>d|>+{e3pA3Gy1Cn`4= z-z&@a^Kb{y6s(V9l;ke4l|lUNFDO?k<%{DPqKuF6&Bw#oDa5NVW3-I)7Ln2w@RFzE z&qr_)J1)W#9qu3F`{^)LL{^ws&NokDnQJd_1E9s7Nu&9HdkU zv{G(*Tx1jxS=Qg+lhX84B6m&9c{h`uy}>;*Xs4Up?<6+YLrV0Lmqks~obTtOeRQtL z>|^V50{8K;vNX*C!xHFEgll#Uf>m%xWfal!KDW$mgKRo*u&pXMe`GvoixbiqYyb46s#9%VTG15G=_HCF) zXR*uC@g<4|^+5U|FEy+RFT_WLXk{$gMDhT2p_cWD#!i#gW6{n=Q(+U4sDHuuI7Q!z z%svv4?s1@-RmfIeg;>F+*ytTVzTU?oZAFY{7f`V_l(HPC*z3fM*Wj5V6PcH~UBTWx z38(Ql@UgkXNUtFK`Ap)A27p`4Mv-$hcILM*!6w6|`jghXM;n~R7HaeGFBU7OFgGx5imI8ehq{ao(F;WTuha>=pa|SH2OXvS z&IzeA?5wTMLHP>#GzKL!G1izHtoK+)lC3$CY7Zgn>0?(B&vYVf=MzIU3>@_}yN*2D zs?7{&0m1|(WA7(3O*%2ZK`99wrzkzTfwC0+8(W)$OvQ71#HP}hFYAcgW&LH~N${G0pJjN_y87Dbg zRj>Yzx=%l^HMC&-*cRkZb`HZs+U*o47Q8MREgAN4t_-0ETLfQy3r6T;ke~#j)#t(?9KxD^ zgT12}%)grGRLP96n#}w@#BHT83NN7}ATdIP#@H4IqzOOxWB7&F8CiQ#E)*Q60An+i z6#_ICUXoZvBzAO>^Jp2E&EJfW#qbgjGcGR>du}pUcY|8hV0A0W94O4l7kkIM@I1wO zW3fKh;0`5Ni}J85h}>R98Djxv{U6LOk@-nxK3?QW$H90D@cB(pn@X(9B9hiXJ>d~6 zPXaSKo6lduM0&y}S9sT*bOW?8BSQ{k%6*-{ta>pnmTj(*k*+Yv` zcZvU9%sZ2pm*?CD8-B@bx2fa99Id-}eimz-$TKA}pE+Q3g{Yla0drB>7%OoEwZ>ws zv;VOUx;Z6gaJ5*ORaU!XUYV>>1t?7kRw0RcK4QK{scRbd5xZa_&y3^FB0rVL(-q@c zuXYX}y=qfRvBCyf8N$>o5A*pMzxnx|SeZq+9j;2H??sKWxmMws@${Y8&7!n$0#6ZI zdg$2DpC;cnSyNJZ`V-nUh5N*Kd0C4c{ug_WoAn+ced>};OTOSf4mHx*eMBy}O!lKx zTH8wv#M-T}+G(t34)qW%CUVS)Typui>L%Y6+IK>W_hn8=^YWXU_DY~6LUU2TW-v&~f@o)hB^sa&7T+L{S>)I|Fq zEsOA^KN%6}JSl+{F%wqv-;72v$`Yt+IyL^2Gg(*Ak^GeS32hoTQdQ}?{$pUHFI0b?^_KwkJ*uwC*gvfM+Pw z{Acf$!gz(xSxxAjx0OU9hX*;OWXqoG{HT<0KExxi$2!D#8$jmbcrtrEbyAeC;NpIy z%z^2?-(HM%Y#0>mAM=!_X8cF$Yw}I~YHXDmwSO>wG1^-VkIRJMkYQ06wOzgL$KWpc7a;dYbkvop>q8*s?rl!Q`(|mcvgObUHUyrEp=%7I8OQd z;EwwBsErqMGg%hyO1n@Sx@JF+uPKAsXAW5poHa@ZWjX%Sqt0h&>2AQ%m~B6GHp;t* z#d(O%MSe61+f(v<&P^hHE7;YgqVh4PI2uU{oR&&;rH<3bY9*zTS%5PadIL?tL|eiO zdT#&d*hI`_%6-X2m+b74u3_(eg0|^nJc~`i^$RfKWX4e!X7PTZ+RX@#NIOt=n&s@Y zZrH_$s3?n<`5SvZ=(dYUjxOlTs?6myY}?oHo0h=aatvThocnp1%?#!BPc+2i$A2vf{ zXAArDFPsY+!|W|a3-00Eo6d|`irtnUyH3U9a1|S^vS4Cy)+vUymY+61V-JBtQQi65 zet-uwYNxZ;9%hCNVLrBoBR84sxL44Ss-#p^lhhxT(&`$iv zH>k%RWw+A7UD3Ujh^VXR@)X8ey@K`rkFm$FEs=+K4%+@(jFvFc7MWSbEL|oJuBx+G zKJN;-e%9K$zI1nWcX6Al%eidrHP^uRxNSBw3J_WRlk=F|)VFzp1G8`-D$ZUh&H0G@ z4A<;EXiA-99QIPm!_*7In~SPLwG;TfVfe(l67O3q+=wjYDcPRjtZ=qb0TJY~@oyyL zi+eL}S^PBr2ioh-+32Wnt7yq+v1qYaapEv5sJq<@y=8sR+#zya9MtA8PeFOe!;GH!(gB&}Z8Y>d}&YK}AcU1e)); zm4D==dQ{P=u3yOTAXoOo7jmg`v;=+GeA;~ zSRY$w%{0>w7juhQ6Mgud&Ru1VYo{xZd#;wKZGq1^4PCzlW@TfNdCaV4EwZNAKRbn# z7V0Nz7xf*m?@MxV`3+dW7tHBqB}%#3g79GL&T$mx*DB-DCAH;es6J;i|0bX%J_&XF z4`CcUMzLq2QVQ&;sj8{JD|wUxvQOHIFFa_jH5;NKFwXqYEQbo*Q|kjVQK#A>gK&Sj zBUvccsAIt4+B3?0@`vbYJ+ii=Q+JemzhGZ$D33+)W*#~~h2-B@1A;tp3|XbO+b7{# ze1uleMb=bRUX7~34#w-dtd)<6+_;SfS~4g1>FoSpfdOR_;k8b>!)h!rtf9oeeaBdXE#qQgpK~*t@K2<~6cIM#<{ALCPyvRfa1G%2~MtIu93|6LwwOusT`~ zt$Z-g6TyJWOTA#6-UYoG&FSD1_zF|ta-4&O@h1w^r(pq)W^^1vXU_+lxw!l$JANnj z>k%*?Ix$NtO84Lfyd#ok3s=27kd$wj9s5|8bVOb%ZAJsXKKeNwy(j z@~0?o#LIQTGH1iGpTe%zg)`j|POlfh;KqW2p5`3*2 z;sKwYVYR-&xHdSk-K8{_`1T|I-IasZOz#hEgl)2KjaDpA&!M4NuZZubT!SfPer zobmmHlS~bEz78-bs>2v4#r1jF17C0w7RuF+axBtYjKh7D?=PNufPHZ_e1iWtaUSPX z8_$R>4dPOk(Jyn_cJo(coqoXnpF(>IrEU*rS8>V}7-T$Gm*DwtaLz8mI2Ot%_o-)o z{ulX&Gr6bG;1*cc3+m>kW$(f0xQo^DfI8jg^@P*)V@|mOn=FKlB61mv)48x%5;=hv z<69!HwuhfJY=jKj=_%jKeFx~QM9pM(5l^4U#BhfVujr+iN+ ziO6FepoLR-CbWF&EmYx!?NE`Pc>~*`8hs=(JEzeL>6B3CdXbs>znoEYn^E;Ib(Z)H zHwd3ei~@mxKhCjTgj&BqDeuuTH~3swpBzPLtK2y)l8?F+&%qpgw1C6aF>I3{V%=$GX#0(rhF&3tz24mnJe;;zkyPQSE=$B|u zVMj_>&@Qe`;c6eRgq$%YW=d}Eo0L2rE{+f|NLmmsmkq z_PAQ*TNXbFJV4=kG2%o^3ampQ=Y+y@ClQzH;wAduL(N1B3Y5T2%Zdd>W$H zMcGAZ#N0v3jGx77BknG0lax~;fs~8#2ozm-3&g)BJu33q3w-ERn_H}0qSr+^#Tq2# zpgiJE0;Lk8OspGXE_%35pyU=m#qqh$JzljPU#4dSekaC>=v|Q~UDPPb6NP_4^nyTH zL_JLEEoPCDoQC+L(!jJN+J5oms1*1 zFF(KQtW`;TTdWuat8-5;*NU}4)L68qoHM(`Z!+_oosXUt_Yosdcosx{t0>PAh)|f% z!d&sHRYd87F?vKF3lD~uu@OgU1coNCssu)fn86}`S+tDUJH%KJ zV@~vEkQw)!I=;x6ui5meXeF@*zM5OXoHh_BqCnt8jTPp<%w5E27k74ZPf-?8E3uY~ zSuK2EF5VN*O`t@gOk#}|breq*SBSAK?kiTsEUp)$PT_qBEBqu{@71gmJ>#dGVxP^ z#V&5-ltAT4q7`lKEOuQn=Lwh1K_SJg6yMUQhgfCBACZAX%m{IRgKJ%U=H)%{`>VA~ z%r23wM9ggA{}ay>BUX$GaW`?Yc-5z(y#lm^*dYYw`D&Dl{t#^EB}|F@lu7t9y?oQhCo%dY$R`GUBK`;zRm^cQ^Ti4vybWSR zixte1Q%12mi*^+2hZrg11SIgvT>KMbC;CUMK4Nzf>!H}~L@&NN2Z`0&pEDEV*cBCO8-`(8fpeo+oec1i z7;WL|4r_~8wH59p+TWtQ7C5w+9by;B0QVO=vp~_snM3%o6DZ9~dRL70 z81IYy-opsWlk<~k4T;l$1wtzF%ebgZCZ&48bH(~6`uhdX&gKN!g7eH8o@e1fJV!)e z6|P8UzYfvHTX|QEc^7ArJNPCa!w-JUJ%x_&WJduL>t?;>zot%#x`{1lsPra&KEb&x z=|)%io@bx)vAobow`VHfVxvF6`>27Dxuhxb87Yyx21_}CG{J+{0{+7>`vND{wcwJ4 z&`VWOHTT1ps44G|&f6cr_IZp&Uz^g^QcXsha%QYAAKbT5HXipAB9;1EuU6Fh;tfM)|#+ zm+0c3c;Y!c2_8^l4Yi&8U_?da*4&@dpgkNE`G}o?UB3zygV#`fUXO<5ZnFKgw_}W% zqt158vQIjBRJVQGDTlhRPnsp`=39)z3=}nD#Qjv2FA(=$Qh6IoBFX*&`>U^V6g+Z{ zT%Aa%_neWaFw|B8)<_V|>*&PFsOx)`aagpcz%G_Bhi;)fvd!K|6u=WZVm+|WDHWBW zRw_A?`(Pgs&Ep&(ZqaS8u?tDh(DUqVHNk2h2cvNb=>|rnHmlsH^Rr z=vPk!k=`u-XMgB?tt6p;@hRxKgV(vV-5ac`Adx{EiR~vB6(jnR(^ct3JpD_Svog-V zu=xgnhu5`#P{uf)o1ZJQY1^hsnzb5EZ(Vb^JXYRd4wZXK7f?TtWW%a~j`0AeyY?PA zbXv;an^o|f2aTJkNIk|gdkjlFzgmK5m)fw>E8qc{XC)F3h9V*Jc!8BiX)2w!t|+;g z2Zx;lD5kGbBGz3--VB%n$K|KiR^ksvIUcpQGu0|6&qdj2DjJ||I$?_ObNW;t{B`BXs&8bHUbE=!8*dHj}?E|z#B^zxcayThq zE_39Ps15Hz>7y{dqu-50NOc%LVLm&FZ|Aw)2i)kO{FJDh%CPl1q7#^c z|6?I>1G%YzP}p99lIRUPz?w4~mFS8nsJFwm{TbcXpU9N@Km1eM7`5%$mzGIa?4I&Q zFs|<-tf?e&D#DnsZu`!XJS;7jcvO?Fue|j2~|87=c zIB*w;p79gs^CPHuy7Hd$7t#3z@dnkFr=Swr(n+-YSs^*9)J2u*Fe~R0R<>^TBNPv_ z8MQ5}Js^d(Egw9!y(oDtWJGL~UuTA_RLG}BE2D!A<6{VTx<84LP?))9@Ee--pq}xZK6-$E$<90MwfkA^CK5~Yq4XnYUM19*K2^?v zd-i4Dtq(qU9bKr?^2wZ&$oD8~Fkq;7Q_0ky$c34Or0(a#r{Id~w zed|zZ%8yp>B6NFefU=%Kk7zmQ!#Q>ZlbBOCeyBmjAhxF*>tTz&@9ZF3&=!1>WntF* ziN|sQN6bH+Tk>bHQyVc;#*wFX6gzCHR6w2$I|XkVD`zTfHK-Dd1$F)Bw%U6`x& z*l|;6lLz2`hw){WXBVs{)yBIN1Izozt}9j|ynZWT0X?9UVRoED?2nB=%=VFUZ8I4O zM{`R59JKo_GC^$T9MTBCe zg@~B?1%K2O=K>jbn-S5pkCu5G9_B61p1r`LHgM*8ofF#@c3nJi{QDD6x(YffxLl** z*X(B&j|bcG)0+J_iyYt-7sex~u(RCeBvP1_;w&Dm5Ic5zPLszOx%ohBk8+lMLVKjJ z+E?QYCiaLIoM_|NvkmYY!9rV0DNDikx(l~L2lsqHZ@dfcBe-L=I6-RGax=)>@`N#T2Ufr<{4Ot}D~*;CNNi);{wOt-Xw8fCn7~RN zao;$`SyiqVC|)kCAb}J<&pGv;-xbiv3*}vR54kn(+_L9umM5iwcaOd3Av>N-HkJeA)SuQ?x z(;HsS@jT=$!J>^RY}GiPn2_^bF$!g#DHz1Uz7`fOj6$BHGj1Y`6v0Hz z;FD~6KSZktj*PHW1(qvNO)upYh+BP?ctbqhY1o4Y!+nP>}PrDicd;#gxcsI9>5U!ku88x}T$n1{kz z7MA>To|eEU6}W`J8Pd2y;86l^5WOSNIDsc*b4P(;h?(oA4TNjk1O zt`@y0a7!_k#7-x$psbu7;RR0;tCYZ51d{oxWkemslf@r_F^N@3MD_~AN!(3fkpejr z=#gl(SG6{|(?fb%AUdL7#9S4~s)!yCGa8;3*GK6~H)V)WVzIIcuYh>EXc_T5!K4?X zRP@X%v|XT>VoZ4WUm!|?`DgQeiM9|=7Q2@4kqD25MjHv1X_QaJw}pp5plky17Bvwl zo>=E1|5wzVbwzb;Q2;^l258CHhkFG77D$k*fTv_NecvxABv=na{mg7=Ixx zdpa!j(V!)DQ1AAS7TGx~QVX&Jz+=b`4)8=h>+nj2i)?&O%}6i4eFR9&dgxdU*#Azg zf1J;l6aW4c>5!u;9_g67x~NgBEqe#9Y)y7SXi{~NPV0}Vm;9KQu}`&6pXCYUWgnr^ zB=2f%DhPX?*V&K#7XD=y#ZHDAyGnh1!i-e>{qNDV#};)hs~3OHEL%;7J^n7XKF+7_ z#ga&Dl&Ha@%-=ontAKH?2&h=e$#jn z&tKKl&8U_5BDvYaFEQ+Eq>brq=F`*hv3i^uwVjv!%mQki#FyEr3OAl$Y!ZinFogc* zGO{Sh>sT1Oqaij8cW-koyANh)e}aFg09T?sgV%Z&*|W?dr~Y5p5sO;yr$rWKbi9U6 z$&JNbL^{;~cF8*Ur_(9sJIVi~heH+x$% zkt9}YOsrhJmj^eR@)h<^FLcrUU-}jk+e^S+jA&=7D>ORU^2*M!)@pWkdAln~0#?S` z*@NiyZI~?^6KQ!6FQ&abjgIhR8emQ47BkPntXMW26l3I&c6D$!d+BqryyaYjlwn>agCns+9YeT)Rf&7KV|=d8%jn!L zwEbq!u?#a|YxaW53t6gH|ITcn=9hTmr(DxIyWh^5`8GYtNuf1-&p@!3&6#|z}Ld$Qtd&^EHxS17d+slO;@;%lmkVE(`OPrSQ0R2w+h5H))$JyaRTVxL0Tc z+pZPZXS_&6!wPhm&?#-37fCpA+RlWHJg33N=i)O?%vMEZwjh2sE*Bfc87sp4x-xiY zca%MezWLLDwP(Y6#ZxwE-Ox*xp$mxxI{gAGsyD(I+N2V>$nVG8^<<4ns0UDVZO%fZ_bB z*rF?r2bi;;u24H;hmEw>FFttgbk}zlnE1N8M0viY~#J9#rUIPQ|%JT}HXZEmbw|oa*l3}v|t2cAFZgyr5Pm4F=i@cnk=(l|uj}kvw z@N}-rGU;N%CSeU}z zN3PM{1A1aBJ`JaE71!}x-0&Cp>67A5`*TEIT_Q3)|Ku0+Bl?k#*Z3hl`N;jzhN73e&>A7%G;JVsWoe8Q97wGjD&R$be<@ z82a=H{VY}orRAWs$c9)Bk77sk4ego@TM-{qM=aB4r{cO#$stIBuISKb+-pDwg{Z-X zi-YW0q~&FNi~qnFEXnV3dB~0t%D~{C`Cv6P%@WxsbfEXLavfIf1EN2k)?TD~%u%kT z^Rv8&zgYWXR^Dt8+vZoY0a+Ln)q5x-Wu5FAM)ET(pB=Gu)~3osw`4%4=7!yPH?NrF zZk$3S-ic#pAo=f6DwGGQ&a%goJab(* z(wc>tvVQmhMO2%40uAT~m%Fbj#%Ds9pAs6zm*}Bx{!34ptl=&R3tbO|GNiOTVzXC@+$1WB2FraAj!5ujx#_`Yb;&1NBGTwRY@$E-yKY#GnQZnm;7bD^7YO zjqzdhG%ureAC!$;Q-8hZyQ`oJkL+^(JLxDW*d-+jMVq&gq<~8vW^0>PPMu*ozuCfA%;%_Xw z*$!)lpRk$*m)VdHi&6;?&)F#}Y3KzR)j(7$>(Y23y~&F1Tv{sLkd3EDpF;s zZoZ#gg}r=Ar~Ww4{BDn^T#z-(w#>xolGPxP&b_7o|J;g?{*dQS!rE7dIhZHC;!CY~ z>0q>%Ww+^lMm)|4@{@OYoaMn&-)HPrcT@`O9zBnR!K9~|^~2bjJ!4t7QDlqG4u~W$ zME2l2S%{2fWDrUfLb*4@{c!?RPA9*w$nU&fNzbmS%U#g$F0}X3j7$oFgL2w>h79ARq)BudEs>rjj6|u%Y zTwJWj;#AL$h84pI*t?&fPW+Rr_@ZVmdW-IhS^HLYSGV)rUha!%GN;7yJ3CkHVkP{` zZ|C1$N215sm9S^;1piU4M?QPeA|y~#XvRTH9;6HDHuKZYvz0lKRCa3T4hv9;6(vq{ z^^ci79Fm-sz+xTWjf!FhZTz`GQMVQw5~3X|GQrU>_3al%bC?ztPQJS6^nV$veR7r zV<+-=YH2gG6*Ea5-frgcCRb)h?q}gF+nZR6(`fFk1X45&VIR<7qnDXf41Q1b>1D1tPXF`IkHW%c=K*`l!$yGXYUgr19{AD2> zRTt^BSQ>h%>=$FG&OkcJI-e`J)6Z12X~$L7%ZxAc(;Z3Nmq)Zzn;mB^baI-VG76F2nBqO_cSj!QKxg6^?q_yC+Stnb-HGN|Y=IqEx$Kc7)PVPcu~^8fd|{BU zvRV-sqqKYIQ=+9^S5?Ec$Q>j8G3!v%#A0U$396&sMna2`kU7bi=>b!Hmup{Vwfh+r zvg`M8R+YalM~~%7JpD;thun)9Nw<{s!%^H+4F6yBqN4Cyw15xq#X=AB7tBz%)OK_y zXV{5`VA6~D2_EMDKWdLpgP3nJ>YY1(X60-^ED>2*f_#<*!PeHDpek!z%j%)eT2`zk zzLJ?8#5T7xQ`QNM{u(r8|B1fDWOq?J$TLXO{b29KR$-|8Qr_CCGbTXV@_DFkj+c>~ zd#T7GR9n1LM~L}YpV+;e6+h3bGPUL^?r}IDuMz|FQXEI#AM*7!Nc%b+ldp5t{d|2G z^l=hvJk0yV3plNMxEA}_$_V1<^XOXcw?1$?8tSf2Gk#t`M?HI*U-FDBRmw!IkNJ}C zy-%Ol@0o!!uD@hN=XP}jk%aXvX3mc?ifm#noqj*1oAG77tZgGwev#FQ$t$s7HDB!D zD01qlR=o9XY>S-VWqs`IL-Z`hPxi1dbExeaWVxQ7&fKhLgi)^QHI{})sa?>JD65A- z#k%zsdkdnnSb+Vt;-*TYet!tE_#O)o#QF;Qd-G5TeLm=p{+S$seffAhq)@m zb$745d|k#GoOkC{cqQM)N-#TBF!fvZYIjG(Bzyc&?joZid0Cfuyq@vpys`pyI@O?Z zVxOQ@C-vbRzjt!}kF59o;BSYS56wVrm0c30zxzRst$gXo+{y3qr?otHC$UlH)5IQqXM&3p{kdZISE3qE(f=T$Xtk4zMiwenJbb=u_|5syHdC;MtW~dTk{TP>%(xT1X zTt(*rf8%Mb|H*``h0Iu9yFz4XSeH!AebqMe5dG*)?;4B2r*ST^sg(>&_9VJF%oung z_A`+&S>Z?Oe0Cy4Z(eR+Sg)Kt+)0g?gv1IlOz)=-UcN+Pc4BTb4j)hn6Dxe(NmnlZ z0hx7Rh@kCF(7~zi&&W?RCiy(igEnyo*#P~X=Bn~%5{2S;EFA4!R7nm(sj10bYp=XV zt%fDb%wfk?M#8J^B}%tu3YF;UV3@BMj-%tzu*~}9TfDf)heN26T92p&4^+6+TtDS! xYcY_qJ-UtRFNYp$5r*gLScEV30@!Z%Dxm?-)i10TB}b7Lil|smcSA&+e*lHAo5uhE diff --git a/libs/ilbc/localtests/iLBC_20ms.BIT b/libs/ilbc/localtests/iLBC_20ms.BIT deleted file mode 100644 index 9fe64297734bf68c44b6fa201da68ab5d275133a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18012 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 diff --git a/libs/ilbc/localtests/iLBC_20ms_clean.OUT b/libs/ilbc/localtests/iLBC_20ms_clean.OUT deleted file mode 100644 index ca6f6fd76cad706cf64cea1d7f685d39ee37b3d7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 151680 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�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 diff --git a/libs/ilbc/localtests/iLBC_30ms.BIT b/libs/ilbc/localtests/iLBC_30ms.BIT deleted file mode 100644 index d5b80224b418a4ca4439a4f8c55fe8627b1319c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15800 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 F{0|12L{R_$ diff --git a/libs/ilbc/localtests/iLBC_30ms_tlm05.OUT b/libs/ilbc/localtests/iLBC_30ms_tlm05.OUT deleted file mode 100644 index f81618bf7326a245becd23b552d8c2bc4df9421c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 151680 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

Ce^_U& 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 z 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%0AnF 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 z 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 N>-wqelZ80g`X6lbU{?SD diff --git a/libs/ilbc/localtests/iLBC_test.txt b/libs/ilbc/localtests/iLBC_test.txt deleted file mode 100644 index 1eef70cebc..0000000000 --- a/libs/ilbc/localtests/iLBC_test.txt +++ /dev/null @@ -1,10 +0,0 @@ - -#Test iLBC executable for 20 and 30 ms frames on a clean channel - -./iLBC_test 20 iLBC.INP iLBC_20ms.BIT iLBC_20ms_clean.OUT clean.chn -./iLBC_test 30 iLBC.INP iLBC_30ms.BIT iLBC_30ms_clean.OUT clean.chn - -#Test iLBC executable for 20 and 30 ms frames on a channel with ~5% packet losses - -./iLBC_test 20 iLBC.INP tmp.BIT iLBC_20ms_tlm05.OUT tlm05.chn -./iLBC_test 30 iLBC.INP tmp.BIT iLBC_30ms_tlm05.OUT tlm05.chn diff --git a/libs/ilbc/localtests/short_nb_voice.wav b/libs/ilbc/localtests/short_nb_voice.wav deleted file mode 100644 index 4dd098a2dfbeced8b1166a002b210190cd3554a8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 192044 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

    *jQ^_mtmo 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 from the reference - * iLBC code supplied in RFC3951. - * - * Original code Copyright (C) The Internet Society (2004). - * All changes to produce this version Copyright (C) 2008 by Steve Underwood - * All Rights Reserved. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Id: FrameClassify.c,v 1.2 2008/03/06 12:27:37 steveu Exp $ - */ - -/*! \file */ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include -#include - -#include "ilbc.h" -#include "FrameClassify.h" - -/*---------------------------------------------------------------* - * Classification of subframes to localize start state - *--------------------------------------------------------------*/ - -int FrameClassify( /* index to the max-energy sub-frame */ - ilbc_encode_state_t *iLBCenc_inst, /* (i/o) the encoder state structure */ - float *residual) /* (i) lpc residual signal */ -{ - float max_ssqEn; - float fssqEn[ILBC_NUM_SUB_MAX]; - float bssqEn[ILBC_NUM_SUB_MAX]; - float *pp; - int n; - int l; - int max_ssqEn_n; - static const float ssqEn_win[ILBC_NUM_SUB_MAX - 1] = - { - 0.8f, 0.9f, - 1.0f, 0.9f, 0.8f - }; - static const float sampEn_win[5]= - { - 1.0f/6.0f, - 2.0f/6.0f, 3.0f/6.0f, - 4.0f/6.0f, 5.0f/6.0f - }; - - /* init the front and back energies to zero */ - memset(fssqEn, 0, ILBC_NUM_SUB_MAX*sizeof(float)); - memset(bssqEn, 0, ILBC_NUM_SUB_MAX*sizeof(float)); - - /* Calculate front of first sequence */ - n = 0; - pp = residual; - for (l = 0; l < 5; l++) - { - fssqEn[n] += sampEn_win[l]*(*pp)*(*pp); - pp++; - } - for (l = 5; l < SUBL; l++) - { - fssqEn[n] += (*pp)*(*pp); - pp++; - } - - /* Calculate front and back of all middle sequences */ - for (n = 1; n < iLBCenc_inst->nsub - 1; n++) - { - pp = residual + n*SUBL; - for (l = 0; l < 5; l++) - { - fssqEn[n] += sampEn_win[l]*(*pp)*(*pp); - bssqEn[n] += (*pp)*(*pp); - pp++; - } - for (l = 5; l < SUBL - 5; l++) - { - fssqEn[n] += (*pp)*(*pp); - bssqEn[n] += (*pp)*(*pp); - pp++; - } - for (l = SUBL - 5; l < SUBL; l++) - { - fssqEn[n] += (*pp)*(*pp); - bssqEn[n] += sampEn_win[SUBL - l - 1]*(*pp)*(*pp); - pp++; - } - } - - /* Calculate back of last sequence */ - n = iLBCenc_inst->nsub - 1; - pp = residual + n*SUBL; - for (l = 0; l < SUBL - 5; l++) - { - bssqEn[n] += (*pp)*(*pp); - pp++; - } - for (l = SUBL - 5; l < SUBL; l++) - { - bssqEn[n] += sampEn_win[SUBL - l - 1]*(*pp)*(*pp); - pp++; - } - - /* find the index to the weighted 80 sample with - most energy */ - l = (iLBCenc_inst->mode == 20) ? 1 : 0; - max_ssqEn = (fssqEn[0] + bssqEn[1])*ssqEn_win[l]; - max_ssqEn_n = 1; - for (n = 2; n < iLBCenc_inst->nsub; n++) - { - l++; - if ((fssqEn[n - 1] + bssqEn[n])*ssqEn_win[l] > max_ssqEn) - { - max_ssqEn = (fssqEn[n - 1] + bssqEn[n])*ssqEn_win[l]; - max_ssqEn_n = n; - } - } - - return max_ssqEn_n; -} diff --git a/libs/ilbc/src/FrameClassify.h b/libs/ilbc/src/FrameClassify.h deleted file mode 100644 index aa18ab06d9..0000000000 --- a/libs/ilbc/src/FrameClassify.h +++ /dev/null @@ -1,27 +0,0 @@ -/* - * iLBC - a library for the iLBC codec - * - * FrameClassify.h - The iLBC low bit rate speech codec. - * - * Adapted by Steve Underwood from the reference - * iLBC code supplied in RFC3951. - * - * Original code Copyright (C) The Internet Society (2004). - * All changes to produce this version Copyright (C) 2008 by Steve Underwood - * All Rights Reserved. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Id: FrameClassify.h,v 1.2 2008/03/06 12:27:37 steveu Exp $ - */ - -#ifndef __iLBC_FRAMECLASSIFY_H -#define __iLBC_FRAMECLASSIFY_H - -int FrameClassify( /* index to the max-energy sub-frame */ - ilbc_encode_state_t *iLBCenc_inst, /* (i/o) the encoder state structure */ - float *residual); /* (i) lpc residual signal */ - -#endif diff --git a/libs/ilbc/src/LPCdecode.c b/libs/ilbc/src/LPCdecode.c deleted file mode 100644 index 94b5870b38..0000000000 --- a/libs/ilbc/src/LPCdecode.c +++ /dev/null @@ -1,149 +0,0 @@ -/* - * iLBC - a library for the iLBC codec - * - * LPCdecode.c - The iLBC low bit rate speech codec. - * - * Adapted by Steve Underwood from the reference - * iLBC code supplied in RFC3951. - * - * Original code Copyright (C) The Internet Society (2004). - * All changes to produce this version Copyright (C) 2008 by Steve Underwood - * All Rights Reserved. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Id: LPCdecode.c,v 1.2 2008/03/06 12:27:37 steveu Exp $ - */ - -/*! \file */ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include -#include -#include - -#include "ilbc.h" -#include "helpfun.h" -#include "lsf.h" -#include "constants.h" -#include "LPCdecode.h" - -/*---------------------------------------------------------------* - * interpolation of lsf coefficients for the decoder - *--------------------------------------------------------------*/ - -void LSFinterpolate2a_dec(float *a, /* (o) lpc coefficients for a sub-frame */ - float *lsf1, /* (i) first lsf coefficient vector */ - float *lsf2, /* (i) second lsf coefficient vector */ - float coef, /* (i) interpolation weight */ - int length) /* (i) length of lsf vectors */ -{ - float lsftmp[ILBC_LPC_FILTERORDER]; - - interpolate(lsftmp, lsf1, lsf2, coef, length); - lsf2a(a, lsftmp); -} - -/*---------------------------------------------------------------* - * obtain dequantized lsf coefficients from quantization index - *--------------------------------------------------------------*/ - -void SimplelsfDEQ(float *lsfdeq, /* (o) dequantized lsf coefficients */ - int *index, /* (i) quantization index */ - int lpc_n) /* (i) number of LPCs */ -{ - int i; - int j; - int pos; - int cb_pos; - - /* decode first LSF */ - pos = 0; - cb_pos = 0; - for (i = 0; i < LSF_NSPLIT; i++) - { - for (j = 0; j < dim_lsfCbTbl[i]; j++) - lsfdeq[pos + j] = lsfCbTbl[cb_pos + (int32_t) (index[i])*dim_lsfCbTbl[i] + j]; - pos += dim_lsfCbTbl[i]; - cb_pos += size_lsfCbTbl[i]*dim_lsfCbTbl[i]; - } - - if (lpc_n>1) - { - /* decode last LSF */ - pos = 0; - cb_pos = 0; - for (i = 0; i < LSF_NSPLIT; i++) - { - for (j = 0; j < dim_lsfCbTbl[i]; j++) - { - lsfdeq[ILBC_LPC_FILTERORDER + pos + j] = - lsfCbTbl[cb_pos + (int32_t) (index[LSF_NSPLIT + i])*dim_lsfCbTbl[i] + j]; - } - pos += dim_lsfCbTbl[i]; - cb_pos += size_lsfCbTbl[i]*dim_lsfCbTbl[i]; - } - } -} - -/*----------------------------------------------------------------* - * obtain synthesis and weighting filters form lsf coefficients - *---------------------------------------------------------------*/ - -void DecoderInterpolateLSF(float *syntdenum, /* (o) synthesis filter coefficients */ - float *weightdenum, /* (o) weighting denumerator coefficients */ - float *lsfdeq, /* (i) dequantized lsf coefficients */ - int length, /* (i) length of lsf coefficient vector */ - ilbc_decode_state_t *iLBCdec_inst) /* (i) the decoder state structure */ -{ - int i; - int pos; - int lp_length; - float lp[ILBC_LPC_FILTERORDER + 1]; - float *lsfdeq2; - - lsfdeq2 = lsfdeq + length; - lp_length = length + 1; - - if (iLBCdec_inst->mode == 30) - { - /* sub-frame 1: Interpolation between old and first */ - - LSFinterpolate2a_dec(lp, iLBCdec_inst->lsfdeqold, lsfdeq, - lsf_weightTbl_30ms[0], length); - memcpy(syntdenum,lp,lp_length*sizeof(float)); - bwexpand(weightdenum, lp, LPC_CHIRP_WEIGHTDENUM, lp_length); - - /* sub-frames 2 to 6: interpolation between first and last LSF */ - pos = lp_length; - for (i = 1; i < 6; i++) - { - LSFinterpolate2a_dec(lp, lsfdeq, lsfdeq2, lsf_weightTbl_30ms[i], length); - memcpy(syntdenum + pos,lp,lp_length*sizeof(float)); - bwexpand(weightdenum + pos, lp, LPC_CHIRP_WEIGHTDENUM, lp_length); - pos += lp_length; - } - } - else - { - pos = 0; - for (i = 0; i < iLBCdec_inst->nsub; i++) - { - LSFinterpolate2a_dec(lp, iLBCdec_inst->lsfdeqold, lsfdeq, lsf_weightTbl_20ms[i], length); - memcpy(syntdenum + pos, lp, lp_length*sizeof(float)); - bwexpand(weightdenum + pos, lp, LPC_CHIRP_WEIGHTDENUM, lp_length); - pos += lp_length; - } - } - - /* update memory */ - if (iLBCdec_inst->mode == 30) - memcpy(iLBCdec_inst->lsfdeqold, lsfdeq2, length*sizeof(float)); - else - memcpy(iLBCdec_inst->lsfdeqold, lsfdeq, length*sizeof(float)); -} diff --git a/libs/ilbc/src/LPCdecode.h b/libs/ilbc/src/LPCdecode.h deleted file mode 100644 index 9f7696380a..0000000000 --- a/libs/ilbc/src/LPCdecode.h +++ /dev/null @@ -1,39 +0,0 @@ -/* - * iLBC - a library for the iLBC codec - * - * LPCdecode.h - The iLBC low bit rate speech codec. - * - * Adapted by Steve Underwood from the reference - * iLBC code supplied in RFC3951. - * - * Original code Copyright (C) The Internet Society (2004). - * All changes to produce this version Copyright (C) 2008 by Steve Underwood - * All Rights Reserved. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Id: LPCdecode.h,v 1.2 2008/03/06 12:27:37 steveu Exp $ - */ - -#ifndef __iLBC_LPCDECODE_H -#define __iLBC_LPCDECODE_H - -void LSFinterpolate2a_dec(float *a, /* (o) lpc coefficients for a sub-frame */ - float *lsf1, /* (i) first lsf coefficient vector */ - float *lsf2, /* (i) second lsf coefficient vector */ - float coef, /* (i) interpolation weight */ - int length); /* (i) length of lsf vectors */ - -void SimplelsfDEQ(float *lsfdeq, /* (o) dequantized lsf coefficients */ - int *index, /* (i) quantization index */ - int lpc_n); /* (i) number of LPCs */ - -void DecoderInterpolateLSF(float *syntdenum, /* (o) synthesis filter coefficients */ - float *weightdenum, /* (o) weighting denumerator coefficients */ - float *lsfdeq, /* (i) dequantized lsf coefficients */ - int length, /* (i) length of lsf coefficient vector */ - ilbc_decode_state_t *iLBCdec_inst); /* (i) the decoder state structure */ - -#endif diff --git a/libs/ilbc/src/LPCencode.c b/libs/ilbc/src/LPCencode.c deleted file mode 100644 index edb3439719..0000000000 --- a/libs/ilbc/src/LPCencode.c +++ /dev/null @@ -1,229 +0,0 @@ -/* - * iLBC - a library for the iLBC codec - * - * LPCencode.c - The iLBC low bit rate speech codec. - * - * Adapted by Steve Underwood from the reference - * iLBC code supplied in RFC3951. - * - * Original code Copyright (C) The Internet Society (2004). - * All changes to produce this version Copyright (C) 2008 by Steve Underwood - * All Rights Reserved. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Id: LPCencode.c,v 1.2 2008/03/06 12:27:37 steveu Exp $ - */ - -/*! \file */ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include -#include - -#include "ilbc.h" -#include "helpfun.h" -#include "lsf.h" -#include "constants.h" -#include "LPCencode.h" - -/*----------------------------------------------------------------* - * lpc analysis (subroutine to LPCencode) - *---------------------------------------------------------------*/ - -static void SimpleAnalysis(float *lsf, /* (o) lsf coefficients */ - float *data, /* (i) new data vector */ - ilbc_encode_state_t *iLBCenc_inst) /* (i/o) the encoder state structure */ -{ - int k; - int is; - float temp[ILBC_BLOCK_LEN_MAX]; - float lp[ILBC_LPC_FILTERORDER + 1]; - float lp2[ILBC_LPC_FILTERORDER + 1]; - float r[ILBC_LPC_FILTERORDER + 1]; - - is = LPC_LOOKBACK + ILBC_BLOCK_LEN_MAX - iLBCenc_inst->blockl; - memcpy(iLBCenc_inst->lpc_buffer + is, data, iLBCenc_inst->blockl*sizeof(float)); - - /* No lookahead, last window is asymmetric */ - - for (k = 0; k < iLBCenc_inst->lpc_n; k++) - { - is = LPC_LOOKBACK; - - if (k < (iLBCenc_inst->lpc_n - 1)) - window(temp, lpc_winTbl, iLBCenc_inst->lpc_buffer, ILBC_BLOCK_LEN_MAX); - else - window(temp, lpc_asymwinTbl, iLBCenc_inst->lpc_buffer + is, ILBC_BLOCK_LEN_MAX); - - autocorr(r, temp, ILBC_BLOCK_LEN_MAX, ILBC_LPC_FILTERORDER); - window(r, r, lpc_lagwinTbl, ILBC_LPC_FILTERORDER + 1); - - levdurb(lp, temp, r, ILBC_LPC_FILTERORDER); - bwexpand(lp2, lp, LPC_CHIRP_SYNTDENUM, ILBC_LPC_FILTERORDER + 1); - - a2lsf(lsf + k*ILBC_LPC_FILTERORDER, lp2); - } - is = LPC_LOOKBACK + ILBC_BLOCK_LEN_MAX - iLBCenc_inst->blockl; - memmove(iLBCenc_inst->lpc_buffer, - iLBCenc_inst->lpc_buffer + LPC_LOOKBACK + ILBC_BLOCK_LEN_MAX - is, - is*sizeof(float)); -} - -/*----------------------------------------------------------------* - * lsf interpolator and conversion from lsf to a coefficients - * (subroutine to SimpleInterpolateLSF) - *---------------------------------------------------------------*/ - -static void LSFinterpolate2a_enc(float *a, /* (o) lpc coefficients */ - float *lsf1, /* (i) first set of lsf coefficients */ - float *lsf2, /* (i) second set of lsf coefficients */ - float coef, /* (i) weighting coefficient to use between lsf1 and lsf2 */ - long length) /* (i) length of coefficient vectors */ -{ - float lsftmp[ILBC_LPC_FILTERORDER]; - - interpolate(lsftmp, lsf1, lsf2, coef, length); - lsf2a(a, lsftmp); -} - -/*----------------------------------------------------------------* - * lsf interpolator (subrutine to LPCencode) - *---------------------------------------------------------------*/ - -static void SimpleInterpolateLSF(float *syntdenum, /* (o) the synthesis filter denominator - resulting from the quantized - interpolated lsf */ - float *weightdenum, /* (o) the weighting filter denominator - resulting from the unquantized - interpolated lsf */ - float *lsf, /* (i) the unquantized lsf coefficients */ - float *lsfdeq, /* (i) the dequantized lsf coefficients */ - float *lsfold, /* (i) the unquantized lsf coefficients of - the previous signal frame */ - float *lsfdeqold, /* (i) the dequantized lsf coefficients of - the previous signal frame */ - int length, /* (i) should equate ILBC_LPC_FILTERORDER */ - ilbc_encode_state_t *iLBCenc_inst) /* (i/o) the encoder state structure */ -{ - int i; - int pos; - int lp_length; - float lp[ILBC_LPC_FILTERORDER + 1]; - float *lsf2; - float *lsfdeq2; - - lsf2 = lsf + length; - lsfdeq2 = lsfdeq + length; - lp_length = length + 1; - - if (iLBCenc_inst->mode == 30) - { - /* sub-frame 1: Interpolation between old and first - set of lsf coefficients */ - - LSFinterpolate2a_enc(lp, lsfdeqold, lsfdeq, lsf_weightTbl_30ms[0], length); - memcpy(syntdenum,lp,lp_length*sizeof(float)); - LSFinterpolate2a_enc(lp, lsfold, lsf, lsf_weightTbl_30ms[0], length); - bwexpand(weightdenum, lp, LPC_CHIRP_WEIGHTDENUM, lp_length); - - /* sub-frame 2 to 6: Interpolation between first - and second set of lsf coefficients */ - - pos = lp_length; - for (i = 1; i < iLBCenc_inst->nsub; i++) - { - LSFinterpolate2a_enc(lp, lsfdeq, lsfdeq2, lsf_weightTbl_30ms[i], length); - memcpy(syntdenum + pos,lp,lp_length*sizeof(float)); - LSFinterpolate2a_enc(lp, lsf, lsf2, lsf_weightTbl_30ms[i], length); - bwexpand(weightdenum + pos, lp, LPC_CHIRP_WEIGHTDENUM, lp_length); - pos += lp_length; - } - } - else - { - pos = 0; - for (i = 0; i < iLBCenc_inst->nsub; i++) - { - LSFinterpolate2a_enc(lp, lsfdeqold, lsfdeq, lsf_weightTbl_20ms[i], length); - memcpy(syntdenum + pos, lp, lp_length*sizeof(float)); - LSFinterpolate2a_enc(lp, lsfold, lsf, lsf_weightTbl_20ms[i], length); - bwexpand(weightdenum + pos, lp, LPC_CHIRP_WEIGHTDENUM, lp_length); - pos += lp_length; - } - } - - /* update memory */ - - if (iLBCenc_inst->mode == 30) - { - memcpy(lsfold, lsf2, length*sizeof(float)); - memcpy(lsfdeqold, lsfdeq2, length*sizeof(float)); - } - else - { - memcpy(lsfold, lsf, length*sizeof(float)); - memcpy(lsfdeqold, lsfdeq, length*sizeof(float)); - } -} - -/*----------------------------------------------------------------* - * lsf quantizer (subrutine to LPCencode) - *---------------------------------------------------------------*/ - -static void SimplelsfQ(float *lsfdeq, /* (o) dequantized lsf coefficients (dimension FILTERORDER) */ - int *index, /* (o) quantization index */ - float *lsf, /* (i) the lsf coefficient vector to be quantized (dimension FILTERORDER ) */ - int lpc_n) /* (i) number of lsf sets to quantize */ -{ - /* Quantize first LSF with memoryless split VQ */ - SplitVQ(lsfdeq, index, lsf, lsfCbTbl, LSF_NSPLIT, dim_lsfCbTbl, size_lsfCbTbl); - - if (lpc_n == 2) - { - /* Quantize second LSF with memoryless split VQ */ - SplitVQ(lsfdeq + ILBC_LPC_FILTERORDER, - index + LSF_NSPLIT, - lsf + ILBC_LPC_FILTERORDER, - lsfCbTbl, - LSF_NSPLIT, - dim_lsfCbTbl, - size_lsfCbTbl); - } -} - -/*----------------------------------------------------------------* - * lpc encoder - *---------------------------------------------------------------*/ - -void LPCencode(float *syntdenum, /* (i/o) synthesis filter coefficients - before/after encoding */ - float *weightdenum, /* (i/o) weighting denumerator - coefficients before/after - encoding */ - int *lsf_index, /* (o) lsf quantization index */ - float *data, /* (i) lsf coefficients to quantize */ - ilbc_encode_state_t *iLBCenc_inst) /* (i/o) the encoder state structure */ -{ - float lsf[ILBC_LPC_FILTERORDER*LPC_N_MAX]; - float lsfdeq[ILBC_LPC_FILTERORDER*LPC_N_MAX]; - int change = 0; - - SimpleAnalysis(lsf, data, iLBCenc_inst); - SimplelsfQ(lsfdeq, lsf_index, lsf, iLBCenc_inst->lpc_n); - - change = LSF_check(lsfdeq, ILBC_LPC_FILTERORDER, iLBCenc_inst->lpc_n); - SimpleInterpolateLSF(syntdenum, - weightdenum, - lsf, - lsfdeq, - iLBCenc_inst->lsfold, - iLBCenc_inst->lsfdeqold, - ILBC_LPC_FILTERORDER, - iLBCenc_inst); -} diff --git a/libs/ilbc/src/LPCencode.h b/libs/ilbc/src/LPCencode.h deleted file mode 100644 index ad3986fd95..0000000000 --- a/libs/ilbc/src/LPCencode.h +++ /dev/null @@ -1,31 +0,0 @@ -/* - * iLBC - a library for the iLBC codec - * - * LPCencode.h - The iLBC low bit rate speech codec. - * - * Adapted by Steve Underwood from the reference - * iLBC code supplied in RFC3951. - * - * Original code Copyright (C) The Internet Society (2004). - * All changes to produce this version Copyright (C) 2008 by Steve Underwood - * All Rights Reserved. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Id: LPCencode.h,v 1.2 2008/03/06 12:27:37 steveu Exp $ - */ - -#ifndef __iLBC_LPCENCODE_H -#define __iLBC_LPCENCODE_H - -void LPCencode(float *syntdenum, /* (i/o) synthesis filter coefficients - before/after encoding */ - float *weightdenum, /* (i/o) weighting denumerator coefficients - before/after encoding */ - int *lsf_index, /* (o) lsf quantization index */ - float *data, /* (i) lsf coefficients to quantize */ - ilbc_encode_state_t *iLBCenc_inst); /* (i/o) the encoder state structure */ - -#endif diff --git a/libs/ilbc/src/Makefile.am b/libs/ilbc/src/Makefile.am deleted file mode 100644 index 39f8e6fe3b..0000000000 --- a/libs/ilbc/src/Makefile.am +++ /dev/null @@ -1,138 +0,0 @@ -## -## iLBC - a library for the iLBC codec -## -## Makefile.am -- Process this file with automake to produce Makefile.in -## -## This program is free software; you can redistribute it and/or modify -## it under the terms of the Lesser GNU General Public License version 2.1, as -## published by the Free Software Foundation. -## -## This program is distributed in the hope that it will be useful, -## but WITHOUT ANY WARRANTY; without even the implied warranty of -## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -## GNU General Public License for more details. -## -## You should have received a copy of the GNU General Public License -## along with this program; if not, write to the Free Software -## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -## -## $Id: Makefile.am,v 1.1.1.1 2008/02/15 12:15:55 steveu Exp $ - -AM_CFLAGS = $(COMP_VENDOR_CFLAGS) - -MAINTAINERCLEANFILES = Makefile.in - -AM_CPPFLAGS = -I$(top_builddir) - -lib_LTLIBRARIES = libilbc.la - -libilbc_la_SOURCES = anaFilter.c \ - constants.c \ - createCB.c \ - doCPLC.c \ - enhancer.c \ - filter.c \ - FrameClassify.c \ - gainquant.c \ - getCBvec.c \ - helpfun.c \ - hpInput.c \ - hpOutput.c \ - iCBConstruct.c \ - iCBSearch.c \ - iLBC_decode.c \ - iLBC_encode.c \ - LPCdecode.c \ - LPCencode.c \ - lsf.c \ - packing.c \ - StateConstructW.c \ - StateSearchW.c \ - syntFilter.c - -libilbc_la_LDFLAGS = -version-info @ILBC_LT_CURRENT@:@ILBC_LT_REVISION@:@ILBC_LT_AGE@ - -nobase_include_HEADERS = ilbc/ilbc.h \ - ilbc/version.h - -nodist_include_HEADERS = ilbc.h - -noinst_HEADERS = anaFilter.h \ - constants.h \ - createCB.h \ - doCPLC.h \ - enhancer.h \ - filter.h \ - FrameClassify.h \ - gainquant.h \ - getCBvec.h \ - helpfun.h \ - hpInput.h \ - hpOutput.h \ - iCBConstruct.h \ - iCBSearch.h \ - iLBC_define.h \ - LPCdecode.h \ - LPCencode.h \ - lsf.h \ - packing.h \ - StateConstructW.h \ - StateSearchW.h \ - syntFilter.h - -# We need to run at_dictionary_gen, so it generates the -# at_interpreter_dictionary.h file - -DSP = libilbc.dsp -VCPROJ = libilbc.vcproj - -WIN32SOURCES = $(libilbc_la_SOURCES) msvc/gettimeofday.c -WIN32HEADERS = $(nobase_include_HEADERS) ilbc.h - -DSPOUT = | awk '{printf("%s\r\n", $$0)}' >> $(DSP) -VCPROJOUT = | awk '{printf("%s\r\n", $$0)}' >> $(VCPROJ) - -$(DSP): msvc/msvcproj.head msvc/msvcproj.foot Makefile.am - echo "creating $(DSP)" - @(cp $(srcdir)/msvc/msvcproj.head $(DSP); \ - echo "# Begin Group \"Source Files\"" $(DSPOUT); \ - for file in $(WIN32SOURCES); do \ - echo "# Begin Source File" $(DSPOUT); \ - echo "" $(DSPOUT); \ - echo "SOURCE=.\\"$$file $(DSPOUT); \ - echo "# End Source File" $(DSPOUT); \ - done; \ - echo "# End Group" $(DSPOUT); \ - echo "# Begin Group \"Header Files\"" $(DSPOUT); \ - for file in $(WIN32HEADERS); do \ - echo "# Begin Source File" $(DSPOUT); \ - echo "" $(DSPOUT); \ - echo "SOURCE=.\\"$$file $(DSPOUT); \ - echo "# End Source File" $(DSPOUT); \ - done; \ - echo "# End Group" $(DSPOUT); \ - cat $(srcdir)/msvc/msvcproj.foot $(DSPOUT) ) - -$(VCPROJ): msvc/vc8proj.head msvc/vc8proj.foot Makefile.am - echo "creating $(VCPROJ)" - @(cp $(srcdir)/msvc/vc8proj.head $(VCPROJ); \ - for file in $(WIN32SOURCES); do \ - echo "" $(VCPROJOUT); \ - done; \ - echo "" $(VCPROJOUT); \ - for file in $(WIN32HEADERS); do \ - echo "" $(VCPROJOUT); \ - done; \ - cat $(srcdir)/msvc/vc8proj.foot $(VCPROJOUT) ) - -ilbc/version.h: - NOWDATE=`date --utc +"%Y%m%d"` ; \ - NOWTIME=`date --utc +"%H%M%S"` ; \ - sed 's/$$ilbc_RELEASE_DATE/'$$NOWDATE'/;s/$$ilbc_RELEASE_TIME/'$$NOWTIME'/' \ - ilbc/version.h - -dist-hook: - NOWDATE=`date --utc +"%Y%m%d"` ; \ - NOWTIME=`date --utc +"%H%M%S"` ; \ - sed 's/$$ilbc_RELEASE_DATE/'$$NOWDATE'/;s/$$ilbc_RELEASE_TIME/'$$NOWTIME'/' \ - ilbc/version.h diff --git a/libs/ilbc/src/StateConstructW.c b/libs/ilbc/src/StateConstructW.c deleted file mode 100644 index d76a5aab69..0000000000 --- a/libs/ilbc/src/StateConstructW.c +++ /dev/null @@ -1,82 +0,0 @@ -/* - * iLBC - a library for the iLBC codec - * - * StateConstruct.c - The iLBC low bit rate speech codec. - * - * Adapted by Steve Underwood from the reference - * iLBC code supplied in RFC3951. - * - * Original code Copyright (C) The Internet Society (2004). - * All changes to produce this version Copyright (C) 2008 by Steve Underwood - * All Rights Reserved. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Id: StateConstructW.c,v 1.2 2008/03/06 12:27:37 steveu Exp $ - */ - -/*! \file */ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include -#include -#include - -#include "ilbc.h" -#include "constants.h" -#include "filter.h" -#include "StateConstructW.h" - -/*----------------------------------------------------------------* - * decoding of the start state - *---------------------------------------------------------------*/ - -void StateConstructW(int idxForMax, /* (i) 6-bit index for the quantization of - max amplitude */ - int *idxVec, /* (i) vector of quantization indexes */ - float *syntDenum, /* (i) synthesis filter denumerator */ - float *out, /* (o) the decoded state vector */ - int len) /* (i) length of a state vector */ -{ - float maxVal; - float tmpbuf[ILBC_LPC_FILTERORDER + 2*STATE_LEN]; - float *tmp; - float numerator[ILBC_LPC_FILTERORDER + 1]; - float foutbuf[ILBC_LPC_FILTERORDER + 2*STATE_LEN]; - float *fout; - int k; - int tmpi; - - /* decoding of the maximum value */ - maxVal = state_frgqTbl[idxForMax]; - maxVal = powf(10.0f, maxVal)/4.5f; - - /* initialization of buffers and coefficients */ - - memset(tmpbuf, 0, ILBC_LPC_FILTERORDER*sizeof(float)); - memset(foutbuf, 0, ILBC_LPC_FILTERORDER*sizeof(float)); - for (k = 0; k < ILBC_LPC_FILTERORDER; k++) - numerator[k] = syntDenum[ILBC_LPC_FILTERORDER - k]; - numerator[ILBC_LPC_FILTERORDER] = syntDenum[0]; - tmp = &tmpbuf[ILBC_LPC_FILTERORDER]; - fout = &foutbuf[ILBC_LPC_FILTERORDER]; - - /* decoding of the sample values */ - for (k = 0; k < len; k++) - { - tmpi = len - 1 - k; - /* maxVal = 1/scal */ - tmp[k] = maxVal*state_sq3Tbl[idxVec[tmpi]]; - } - - /* circular convolution with all-pass filter */ - memset(tmp + len, 0, len*sizeof(float)); - ZeroPoleFilter(tmp, numerator, syntDenum, 2*len, ILBC_LPC_FILTERORDER, fout); - for (k = 0; k < len; k++) - out[k] = fout[len - 1 - k] + fout[2*len - 1 - k]; -} diff --git a/libs/ilbc/src/StateConstructW.h b/libs/ilbc/src/StateConstructW.h deleted file mode 100644 index 59b870de91..0000000000 --- a/libs/ilbc/src/StateConstructW.h +++ /dev/null @@ -1,30 +0,0 @@ -/* - * iLBC - a library for the iLBC codec - * - * StateConstructW.c - The iLBC low bit rate speech codec. - * - * Adapted by Steve Underwood from the reference - * iLBC code supplied in RFC3951. - * - * Original code Copyright (C) The Internet Society (2004). - * All changes to produce this version Copyright (C) 2008 by Steve Underwood - * All Rights Reserved. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Id: StateConstructW.h,v 1.2 2008/03/06 12:27:37 steveu Exp $ - */ - -#ifndef __iLBC_STATECONSTRUCTW_H -#define __iLBC_STATECONSTRUCTW_H - -void StateConstructW(int idxForMax, /* (i) 6-bit index for the quantization of - max amplitude */ - int *idxVec, /* (i) vector of quantization indexes */ - float *syntDenum, /* (i) synthesis filter denumerator */ - float *out, /* (o) the decoded state vector */ - int len); /* (i) length of a state vector */ - -#endif diff --git a/libs/ilbc/src/StateSearchW.c b/libs/ilbc/src/StateSearchW.c deleted file mode 100644 index b7f0ba5c6e..0000000000 --- a/libs/ilbc/src/StateSearchW.c +++ /dev/null @@ -1,179 +0,0 @@ -/* - * iLBC - a library for the iLBC codec - * - * StateSearchW.c - The iLBC low bit rate speech codec. - * - * Adapted by Steve Underwood from the reference - * iLBC code supplied in RFC3951. - * - * Original code Copyright (C) The Internet Society (2004). - * All changes to produce this version Copyright (C) 2008 by Steve Underwood - * All Rights Reserved. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Id: StateSearchW.c,v 1.2 2008/03/06 12:27:37 steveu Exp $ - */ - -/*! \file */ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include -#include -#include - -#include "ilbc.h" -#include "constants.h" -#include "filter.h" -#include "helpfun.h" -#include "StateSearchW.h" - -/*----------------------------------------------------------------* - * predictive noise shaping encoding of scaled start state - * (subrutine for StateSearchW) - *---------------------------------------------------------------*/ - -void AbsQuantW(ilbc_encode_state_t *iLBCenc_inst, /* (i) Encoder instance */ - float *in, /* (i) vector to encode */ - float *syntDenum, /* (i) denominator of synthesis filter */ - float *weightDenum, /* (i) denominator of weighting filter */ - int *out, /* (o) vector of quantizer indexes */ - int len, /* (i) length of vector to encode and - vector of quantizer indexes */ - int state_first) /* (i) position of start state in the 80 vec */ -{ - float *syntOut; - float syntOutBuf[ILBC_LPC_FILTERORDER + STATE_SHORT_LEN_30MS]; - float toQ; - float xq; - int n; - int index; - - /* initialization of buffer for filtering */ - memset(syntOutBuf, 0, ILBC_LPC_FILTERORDER*sizeof(float)); - - /* initialization of pointer for filtering */ - syntOut = &syntOutBuf[ILBC_LPC_FILTERORDER]; - - /* synthesis and weighting filters on input */ - if (state_first) - { - AllPoleFilter(in, weightDenum, SUBL, ILBC_LPC_FILTERORDER); - } - else - { - AllPoleFilter(in, weightDenum, - iLBCenc_inst->state_short_len - SUBL, - ILBC_LPC_FILTERORDER); - } - - /* encoding loop */ - for (n = 0; n < len; n++) - { - /* time update of filter coefficients */ - if ((state_first) && (n == SUBL)) - { - syntDenum += (ILBC_LPC_FILTERORDER + 1); - weightDenum += (ILBC_LPC_FILTERORDER + 1); - - /* synthesis and weighting filters on input */ - AllPoleFilter(&in[n], weightDenum, len - n, ILBC_LPC_FILTERORDER); - } - else if ((state_first == 0) - && - (n == (iLBCenc_inst->state_short_len - SUBL))) - { - syntDenum += (ILBC_LPC_FILTERORDER + 1); - weightDenum += (ILBC_LPC_FILTERORDER + 1); - - /* synthesis and weighting filters on input */ - AllPoleFilter(&in[n], weightDenum, len - n, ILBC_LPC_FILTERORDER); - } - /* prediction of synthesized and weighted input */ - syntOut[n] = 0.0f; - AllPoleFilter(&syntOut[n], weightDenum, 1, ILBC_LPC_FILTERORDER); - - /* quantization */ - toQ = in[n] - syntOut[n]; - sort_sq(&xq, &index, toQ, state_sq3Tbl, 8); - out[n] = index; - syntOut[n] = state_sq3Tbl[out[n]]; - - /* update of the prediction filter */ - AllPoleFilter(&syntOut[n], weightDenum, 1, ILBC_LPC_FILTERORDER); - } -} - -/*----------------------------------------------------------------* - * encoding of start state - *---------------------------------------------------------------*/ - -void StateSearchW(ilbc_encode_state_t *iLBCenc_inst, /* (i) Encoder instance */ - float *residual, /* (i) target residual vector */ - float *syntDenum, /* (i) lpc synthesis filter */ - float *weightDenum, /* (i) weighting filter denuminator */ - int *idxForMax, /* (o) quantizer index for maximum - amplitude */ - int *idxVec, /* (o) vector of quantization indexes */ - int len, /* (i) length of all vectors */ - int state_first) /* (i) position of start state in the 80 vec */ -{ - float dtmp; - float maxVal; - float tmpbuf[ILBC_LPC_FILTERORDER + 2*STATE_SHORT_LEN_30MS]; - float *tmp; - float numerator[ILBC_LPC_FILTERORDER + 1]; - float foutbuf[ILBC_LPC_FILTERORDER + 2*STATE_SHORT_LEN_30MS]; - float *fout; - int k; - float qmax; - float scal; - - /* initialization of buffers and filter coefficients */ - - memset(tmpbuf, 0, ILBC_LPC_FILTERORDER*sizeof(float)); - memset(foutbuf, 0, ILBC_LPC_FILTERORDER*sizeof(float)); - for (k = 0; k < ILBC_LPC_FILTERORDER; k++) - numerator[k] = syntDenum[ILBC_LPC_FILTERORDER - k]; - numerator[ILBC_LPC_FILTERORDER] = syntDenum[0]; - tmp = &tmpbuf[ILBC_LPC_FILTERORDER]; - fout = &foutbuf[ILBC_LPC_FILTERORDER]; - - /* circular convolution with the all-pass filter */ - memcpy(tmp, residual, len*sizeof(float)); - memset(tmp + len, 0, len*sizeof(float)); - ZeroPoleFilter(tmp, numerator, syntDenum, 2*len, ILBC_LPC_FILTERORDER, fout); - for (k = 0; k < len; k++) - fout[k] += fout[k+len]; - - /* identification of the maximum amplitude value */ - maxVal = fout[0]; - for (k = 1; k < len; k++) - { - if (fout[k]*fout[k] > maxVal*maxVal) - maxVal = fout[k]; - } - maxVal = fabsf(maxVal); - - /* encoding of the maximum amplitude value */ - if (maxVal < 10.0f) - maxVal = 10.0f; - maxVal = log10f(maxVal); - sort_sq(&dtmp, idxForMax, maxVal, state_frgqTbl, 64); - - /* decoding of the maximum amplitude representation value, - and corresponding scaling of start state */ - maxVal = state_frgqTbl[*idxForMax]; - qmax = powf(10.0f, maxVal); - scal = 4.5f/qmax; - for (k = 0; k < len; k++) - fout[k] *= scal; - - /* predictive noise shaping encoding of scaled start state */ - AbsQuantW(iLBCenc_inst, fout,syntDenum, weightDenum,idxVec, len, state_first); -} diff --git a/libs/ilbc/src/StateSearchW.h b/libs/ilbc/src/StateSearchW.h deleted file mode 100644 index fe7a28b42c..0000000000 --- a/libs/ilbc/src/StateSearchW.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * iLBC - a library for the iLBC codec - * - * StateSearchW.h - The iLBC low bit rate speech codec. - * - * Adapted by Steve Underwood from the reference - * iLBC code supplied in RFC3951. - * - * Original code Copyright (C) The Internet Society (2004). - * All changes to produce this version Copyright (C) 2008 by Steve Underwood - * All Rights Reserved. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Id: StateSearchW.h,v 1.2 2008/03/06 12:27:37 steveu Exp $ - */ - -#ifndef __iLBC_STATESEARCHW_H -#define __iLBC_STATESEARCHW_H - -void AbsQuantW(ilbc_encode_state_t *iLBCenc_inst, /* (i) Encoder instance */ - float *in, /* (i) vector to encode */ - float *syntDenum, /* (i) denominator of synthesis filter */ - float *weightDenum, /* (i) denominator of weighting filter */ - int *out, /* (o) vector of quantizer indexes */ - int len, /* (i) length of vector to encode and - vector of quantizer indexes */ - int state_first); /* (i) position of start state in the 80 vec */ - -void StateSearchW(ilbc_encode_state_t *iLBCenc_inst, /* (i) Encoder instance */ - float *residual, /* (i) target residual vector */ - float *syntDenum, /* (i) lpc synthesis filter */ - float *weightDenum, /* (i) weighting filter denuminator */ - int *idxForMax, /* (o) quantizer index for maximum - amplitude */ - int *idxVec, /* (o) vector of quantization indexes */ - int len, /* (i) length of all vectors */ - int state_first); /* (i) position of start state in the 80 vec */ - -#endif diff --git a/libs/ilbc/src/anaFilter.c b/libs/ilbc/src/anaFilter.c deleted file mode 100644 index c459c8d579..0000000000 --- a/libs/ilbc/src/anaFilter.c +++ /dev/null @@ -1,76 +0,0 @@ -/* - * iLBC - a library for the iLBC codec - * - * anaFilter.c - The iLBC low bit rate speech codec. - * - * Adapted by Steve Underwood from the reference - * iLBC code supplied in RFC3951. - * - * Original code Copyright (C) The Internet Society (2004). - * All changes to produce this version Copyright (C) 2008 by Steve Underwood - * All Rights Reserved. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Id: anaFilter.c,v 1.2 2008/03/06 12:27:37 steveu Exp $ - */ - -/*! \file */ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include -#include - -#include "anaFilter.h" -#include "ilbc.h" - -/*----------------------------------------------------------------* - * LP analysis filter. - *---------------------------------------------------------------*/ -void anaFilter(float *In, /* (i) Signal to be filtered */ - float *a, /* (i) LP parameters */ - int len, /* (i) Length of signal */ - float *Out, /* (o) Filtered signal */ - float *mem) /* (i/o) Filter state */ -{ - int i; - int j; - float *po; - float *pi; - float *pm; - float *pa; - - po = Out; - /* Filter first part using memory from past */ - for (i = 0; i < ILBC_LPC_FILTERORDER; i++) - { - pi = &In[i]; - pm = &mem[ILBC_LPC_FILTERORDER - 1]; - pa = a; - *po = 0.0; - - for (j = 0; j <= i; j++) - *po += (*pa++)*(*pi--); - for (j = i + 1; j < ILBC_LPC_FILTERORDER + 1; j++) - *po += (*pa++)*(*pm--); - po++; - } - /* Filter last part where the state is entirely - in the input vector */ - for (i = ILBC_LPC_FILTERORDER; i < len; i++) - { - pi = &In[i]; - pa = a; - *po = 0.0; - for (j = 0; j < ILBC_LPC_FILTERORDER + 1; j++) - *po += (*pa++)*(*pi--); - po++; - } - /* Update state vector */ - memcpy(mem, &In[len - ILBC_LPC_FILTERORDER], ILBC_LPC_FILTERORDER*sizeof(float)); -} diff --git a/libs/ilbc/src/anaFilter.h b/libs/ilbc/src/anaFilter.h deleted file mode 100644 index 4f155fdd7f..0000000000 --- a/libs/ilbc/src/anaFilter.h +++ /dev/null @@ -1,29 +0,0 @@ -/* - * iLBC - a library for the iLBC codec - * - * anaFilter.h - The iLBC low bit rate speech codec. - * - * Adapted by Steve Underwood from the reference - * iLBC code supplied in RFC3951. - * - * Original code Copyright (C) The Internet Society (2004). - * All changes to produce this version Copyright (C) 2008 by Steve Underwood - * All Rights Reserved. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Id: anaFilter.h,v 1.2 2008/03/06 12:27:38 steveu Exp $ - */ - -#ifndef __iLBC_ANAFILTER_H -#define __iLBC_ANAFILTER_H - -void anaFilter(float *In, /* (i) Signal to be filtered */ - float *a, /* (i) LP parameters */ - int len, /* (i) Length of signal */ - float *Out, /* (o) Filtered signal */ - float *mem); /* (i/o) Filter state */ - -#endif diff --git a/libs/ilbc/src/constants.c b/libs/ilbc/src/constants.c deleted file mode 100644 index 15059362b6..0000000000 --- a/libs/ilbc/src/constants.c +++ /dev/null @@ -1,770 +0,0 @@ -/* - * iLBC - a library for the iLBC codec - * - * constant.c - The iLBC low bit rate speech codec. - * - * Adapted by Steve Underwood from the reference - * iLBC code supplied in RFC3951. - * - * Original code Copyright (C) The Internet Society (2004). - * All changes to produce this version Copyright (C) 2008 by Steve Underwood - * All Rights Reserved. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Id: constants.c,v 1.2 2008/03/06 12:27:38 steveu Exp $ - */ - -/*! \file */ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include - -#include "ilbc.h" -#include "constants.h" - -/* ULP bit allocation */ - -/* 20 ms frame */ -const ilbc_ulp_inst_t ULP_20msTbl = -{ - /* LSF */ - { - {6, 0, 0, 0, 0}, {7, 0, 0, 0, 0}, {7, 0, 0, 0, 0}, - {0, 0, 0, 0, 0}, {0, 0, 0, 0, 0}, {0, 0, 0, 0, 0} - }, - /* Start state location, gain and samples */ - {2, 0, 0, 0, 0}, - {1, 0, 0, 0, 0}, - {6, 0, 0, 0, 0}, - {0, 1, 2, 0, 0}, - /* extra CB index and extra CB gain */ - {{6, 0, 1, 0, 0}, {0, 0, 7, 0, 0}, {0, 0, 7, 0, 0}}, - {{2, 0, 3, 0, 0}, {1, 1, 2, 0, 0}, {0, 0, 3, 0, 0}}, - /* CB index and CB gain */ - { - {{7, 0, 1, 0, 0}, {0, 0, 7, 0, 0}, {0, 0, 7, 0, 0}}, - {{0, 0, 8, 0, 0}, {0, 0, 8, 0, 0}, {0, 0, 8, 0, 0}}, - {{0, 0, 0, 0, 0}, {0, 0, 0, 0, 0}, {0, 0, 0, 0, 0}}, - {{0, 0, 0, 0, 0}, {0, 0, 0, 0, 0}, {0, 0, 0, 0, 0}} - }, - { - {{1, 2, 2, 0, 0}, {1, 1, 2, 0, 0}, {0, 0, 3, 0, 0}}, - {{1, 1, 3, 0, 0}, {0, 2, 2, 0, 0}, {0, 0, 3, 0, 0}}, - {{0, 0, 0, 0, 0}, {0, 0, 0, 0, 0}, {0, 0, 0, 0, 0}}, - {{0, 0, 0, 0, 0}, {0, 0, 0, 0, 0}, {0, 0, 0, 0, 0}} - } -}; - -/* 30 ms frame */ -const ilbc_ulp_inst_t ULP_30msTbl = -{ - /* LSF */ - { - {6, 0, 0, 0, 0}, {7, 0, 0, 0, 0}, {7, 0, 0, 0, 0}, - {6, 0, 0, 0, 0}, {7, 0, 0, 0, 0}, {7, 0, 0, 0, 0} - }, - /* Start state location, gain and samples */ - {3, 0, 0, 0, 0}, - {1, 0, 0, 0, 0}, - {6, 0, 0, 0, 0}, - {0, 1, 2, 0, 0}, - /* extra CB index and extra CB gain */ - {{4, 2, 1, 0, 0}, {0, 0, 7, 0, 0}, {0, 0, 7, 0, 0}}, - {{1, 1, 3, 0, 0}, {1, 1, 2, 0, 0}, {0, 0, 3, 0, 0}}, - /* CB index and CB gain */ - { - {{6, 1, 1, 0, 0}, {0, 0, 7, 0, 0}, {0, 0,7, 0, 0}}, - {{0, 7, 1, 0, 0}, {0, 0, 8, 0, 0}, {0, 0,8, 0, 0}}, - {{0, 7, 1, 0, 0}, {0, 0, 8, 0, 0}, {0, 0,8, 0, 0}}, - {{0, 7, 1, 0, 0}, {0, 0, 8, 0, 0}, {0, 0,8, 0, 0}} - }, - { - {{1, 2, 2, 0, 0}, {1, 2, 1, 0, 0}, {0, 0, 3, 0, 0}}, - {{0, 2, 3, 0, 0}, {0, 2, 2, 0, 0}, {0, 0, 3, 0, 0}}, - {{0, 1, 4, 0, 0}, {0, 1, 3, 0, 0}, {0, 0, 3, 0, 0}}, - {{0, 1, 4, 0, 0}, {0, 1, 3, 0, 0}, {0, 0, 3, 0, 0}} - } -}; - -/* HP Filters */ - -const float hpi_zero_coefsTbl[3] = -{ - 0.92727436f, -1.8544941f, 0.92727436f -}; - -const float hpi_pole_coefsTbl[3] = -{ - 1.0f, -1.9059465f, 0.9114024f -}; - -const float hpo_zero_coefsTbl[3] = -{ - 0.93980581f, -1.8795834f, 0.93980581f -}; - -const float hpo_pole_coefsTbl[3] = -{ - 1.0f, -1.9330735f, 0.93589199f -}; - -/* LP Filter */ - -const float lpFilt_coefsTbl[FILTERORDER_DS] = -{ - -0.066650f, 0.125000f, 0.316650f, - 0.414063f, 0.316650f, - 0.125000f, -0.066650f -}; - -/* State quantization tables */ - -const float state_sq3Tbl[8] = -{ - -3.719849f, -2.177490f, -1.130005f, - -0.309692f, 0.444214f, 1.329712f, - 2.436279f, 3.983887f -}; - -const float state_frgqTbl[64] = -{ - 1.000085f, 1.071695f, 1.140395f, - 1.206868f, 1.277188f, 1.351503f, - 1.429380f, 1.500727f, 1.569049f, - 1.639599f, 1.707071f, 1.781531f, - 1.840799f, 1.901550f, 1.956695f, - 2.006750f, 2.055474f, 2.102787f, - 2.142819f, 2.183592f, 2.217962f, - 2.257177f, 2.295739f, 2.332967f, - 2.369248f, 2.402792f, 2.435080f, - 2.468598f, 2.503394f, 2.539284f, - 2.572944f, 2.605036f, 2.636331f, - 2.668939f, 2.698780f, 2.729101f, - 2.759786f, 2.789834f, 2.818679f, - 2.848074f, 2.877470f, 2.906899f, - 2.936655f, 2.967804f, 3.000115f, - 3.033367f, 3.066355f, 3.104231f, - 3.141499f, 3.183012f, 3.222952f, - 3.265433f, 3.308441f, 3.350823f, - 3.395275f, 3.442793f, 3.490801f, - 3.542514f, 3.604064f, 3.666050f, - 3.740994f, 3.830749f, 3.938770f, - 4.101764f -}; - -/* CB tables */ - -const int search_rangeTbl[5][CB_NSTAGES] = -{ - {58, 58, 58}, - {108, 44, 44}, - {108, 108, 108}, - {108, 108, 108}, - {108, 108, 108} -}; - -const int stMemLTbl = 85; -const int memLfTbl[NASUB_MAX] = {147, 147, 147, 147}; - -/* expansion filter(s) */ - -const float cbfiltersTbl[CB_FILTERLEN] = -{ - -0.034180f, 0.108887f, -0.184326f, - 0.806152f, 0.713379f, -0.144043f, - 0.083740f, -0.033691f -}; - -/* Gain Quantization */ - -const float gain_sq3Tbl[8] = -{ - -1.000000f, -0.659973f, -0.330017f, - 0.000000f, 0.250000f, 0.500000f, - 0.750000f, 1.00000f -}; - -const float gain_sq4Tbl[16] = -{ - -1.049988f, -0.900024f, -0.750000f, - -0.599976f, -0.450012f, -0.299988f, - -0.150024f, 0.000000f, 0.150024f, - 0.299988f, 0.450012f, 0.599976f, - 0.750000f, 0.900024f, 1.049988f, - 1.200012f -}; - -const float gain_sq5Tbl[32]= -{ - 0.037476f, 0.075012f, 0.112488f, - 0.150024f, 0.187500f, 0.224976f, - 0.262512f, 0.299988f, 0.337524f, - 0.375000f, 0.412476f, 0.450012f, - 0.487488f, 0.525024f, 0.562500f, - 0.599976f, 0.637512f, 0.674988f, - 0.712524f, 0.750000f, 0.787476f, - 0.825012f, 0.862488f, 0.900024f, - 0.937500f, 0.974976f, 1.012512f, - 1.049988f, 1.087524f, 1.125000f, - 1.162476f, 1.200012f -}; - -/* Enhancer - Upsamling a factor 4 (ENH_UPS0 = 4) */ -const float polyphaserTbl[ENH_UPS0*(2*ENH_FL0+1)] = -{ - 0.000000f, 0.000000f, 0.000000f, - 1.000000f, - 0.000000f, 0.000000f, 0.000000f, - 0.015625f, -0.076904f, 0.288330f, - 0.862061f, - -0.106445f, 0.018799f, -0.015625f, - 0.023682f, -0.124268f, 0.601563f, - 0.601563f, - -0.124268f, 0.023682f, -0.023682f, - 0.018799f, -0.106445f, 0.862061f, - 0.288330f, - -0.076904f, 0.015625f, -0.018799f -}; - -const float enh_plocsTbl[ENH_NBLOCKS_TOT] = -{ - 40.0f, 120.0f, - 200.0f, 280.0f, 360.0f, - 440.0f, 520.0f, 600.0f -}; - -/* LPC analysis and quantization */ - -const int dim_lsfCbTbl[LSF_NSPLIT] = {3, 3, 4}; -const int size_lsfCbTbl[LSF_NSPLIT] = {64, 128, 128}; - -const float lsfmeanTbl[ILBC_LPC_FILTERORDER] = -{ - 0.281738f, 0.445801f, 0.663330f, - 0.962524f, 1.251831f, 1.533081f, - 1.850586f, 2.137817f, 2.481445f, - 2.777344f -}; - -const float lsf_weightTbl_30ms[6] = -{ - 1.0f/2.0f, 1.0f, - 2.0f/3.0f, - 1.0f/3.0f, 0.0f, 0.0f -}; - -const float lsf_weightTbl_20ms[4] = -{ - 3.0f/4.0f, 2.0f/4.0f, - 1.0f/4.0f, 0.0f -}; - -/* Hanning LPC window */ -const float lpc_winTbl[ILBC_BLOCK_LEN_MAX] = -{ - 0.000183f, 0.000671f, 0.001526f, - 0.002716f, 0.004242f, 0.006104f, - 0.008301f, 0.010834f, 0.013702f, - 0.016907f, 0.020416f, 0.024261f, - 0.028442f, 0.032928f, 0.037750f, - 0.042877f, 0.048309f, 0.054047f, - 0.060089f, 0.066437f, 0.073090f, - 0.080017f, 0.087219f, 0.094727f, - 0.102509f, 0.110535f, 0.118835f, - 0.127411f, 0.136230f, 0.145294f, - 0.154602f, 0.164154f, 0.173920f, - 0.183899f, 0.194122f, 0.204529f, - 0.215149f, 0.225952f, 0.236938f, - 0.248108f, 0.259460f, 0.270966f, - 0.282654f, 0.294464f, 0.306396f, - 0.318481f, 0.330688f, 0.343018f, - 0.355438f, 0.367981f, 0.380585f, - 0.393280f, 0.406067f, 0.418884f, - 0.431763f, 0.444702f, 0.457672f, - 0.470673f, 0.483704f, 0.496735f, - 0.509766f, 0.522797f, 0.535828f, - 0.548798f, 0.561768f, 0.574677f, - 0.587524f, 0.600342f, 0.613068f, - 0.625732f, 0.638306f, 0.650787f, - 0.663147f, 0.675415f, 0.687561f, - 0.699585f, 0.711487f, 0.723206f, - 0.734802f, 0.746216f, 0.757477f, - 0.768585f, 0.779480f, 0.790192f, - 0.800720f, 0.811005f, 0.821106f, - 0.830994f, 0.840668f, 0.850067f, - 0.859253f, 0.868225f, 0.876892f, - 0.885345f, 0.893524f, 0.901428f, - 0.909058f, 0.916412f, 0.923492f, - 0.930267f, 0.936768f, 0.942963f, - 0.948853f, 0.954437f, 0.959717f, - 0.964691f, 0.969360f, 0.973694f, - 0.977692f, 0.981384f, 0.984741f, - 0.987762f, 0.990479f, 0.992828f, - 0.994873f, 0.996552f, 0.997925f, - 0.998932f, 0.999603f, 0.999969f, - 0.999969f, 0.999603f, 0.998932f, - 0.997925f, 0.996552f, 0.994873f, - 0.992828f, 0.990479f, 0.987762f, - 0.984741f, 0.981384f, 0.977692f, - 0.973694f, 0.969360f, 0.964691f, - 0.959717f, 0.954437f, 0.948853f, - 0.942963f, 0.936768f, 0.930267f, - 0.923492f, 0.916412f, 0.909058f, - 0.901428f, 0.893524f, 0.885345f, - 0.876892f, 0.868225f, 0.859253f, - 0.850067f, 0.840668f, 0.830994f, - 0.821106f, 0.811005f, 0.800720f, - 0.790192f, 0.779480f, 0.768585f, - 0.757477f, 0.746216f, 0.734802f, - 0.723206f, 0.711487f, 0.699585f, - 0.687561f, 0.675415f, 0.663147f, - 0.650787f, 0.638306f, 0.625732f, - 0.613068f, 0.600342f, 0.587524f, - 0.574677f, 0.561768f, 0.548798f, - 0.535828f, 0.522797f, 0.509766f, - 0.496735f, 0.483704f, 0.470673f, - 0.457672f, 0.444702f, 0.431763f, - 0.418884f, 0.406067f, 0.393280f, - 0.380585f, 0.367981f, 0.355438f, - 0.343018f, 0.330688f, 0.318481f, - 0.306396f, 0.294464f, 0.282654f, - 0.270966f, 0.259460f, 0.248108f, - 0.236938f, 0.225952f, 0.215149f, - 0.204529f, 0.194122f, 0.183899f, - 0.173920f, 0.164154f, 0.154602f, - 0.145294f, 0.136230f, 0.127411f, - 0.118835f, 0.110535f, 0.102509f, - 0.094727f, 0.087219f, 0.080017f, - 0.073090f, 0.066437f, 0.060089f, - 0.054047f, 0.048309f, 0.042877f, - 0.037750f, 0.032928f, 0.028442f, - 0.024261f, 0.020416f, 0.016907f, - 0.013702f, 0.010834f, 0.008301f, - 0.006104f, 0.004242f, 0.002716f, - 0.001526f, 0.000671f, 0.000183f -}; - -/* Asymmetric LPC window */ -const float lpc_asymwinTbl[ILBC_BLOCK_LEN_MAX] = -{ - 0.000061f, 0.000214f, 0.000458f, - 0.000824f, 0.001282f, 0.001831f, - 0.002472f, 0.003235f, 0.004120f, - 0.005066f, 0.006134f, 0.007294f, - 0.008545f, 0.009918f, 0.011383f, - 0.012939f, 0.014587f, 0.016357f, - 0.018219f, 0.020172f, 0.022217f, - 0.024353f, 0.026611f, 0.028961f, - 0.031372f, 0.033905f, 0.036530f, - 0.039276f, 0.042084f, 0.044983f, - 0.047974f, 0.051086f, 0.054260f, - 0.057526f, 0.060883f, 0.064331f, - 0.067871f, 0.071503f, 0.075226f, - 0.079010f, 0.082916f, 0.086884f, - 0.090942f, 0.095062f, 0.099304f, - 0.103607f, 0.107971f, 0.112427f, - 0.116974f, 0.121582f, 0.126282f, - 0.131073f, 0.135895f, 0.140839f, - 0.145813f, 0.150879f, 0.156006f, - 0.161224f, 0.166504f, 0.171844f, - 0.177246f, 0.182709f, 0.188263f, - 0.193848f, 0.199524f, 0.205231f, - 0.211029f, 0.216858f, 0.222778f, - 0.228729f, 0.234741f, 0.240814f, - 0.246918f, 0.253082f, 0.259308f, - 0.265564f, 0.271881f, 0.278259f, - 0.284668f, 0.291107f, 0.297607f, - 0.304138f, 0.310730f, 0.317322f, - 0.323975f, 0.330658f, 0.337372f, - 0.344147f, 0.350922f, 0.357727f, - 0.364594f, 0.371460f, 0.378357f, - 0.385284f, 0.392212f, 0.399170f, - 0.406158f, 0.413177f, 0.420197f, - 0.427246f, 0.434296f, 0.441376f, - 0.448456f, 0.455536f, 0.462646f, - 0.469757f, 0.476868f, 0.483978f, - 0.491089f, 0.498230f, 0.505341f, - 0.512451f, 0.519592f, 0.526703f, - 0.533813f, 0.540924f, 0.548004f, - 0.555084f, 0.562164f, 0.569244f, - 0.576294f, 0.583313f, 0.590332f, - 0.597321f, 0.604309f, 0.611267f, - 0.618195f, 0.625092f, 0.631989f, - 0.638855f, 0.645660f, 0.652466f, - 0.659241f, 0.665985f, 0.672668f, - 0.679352f, 0.685974f, 0.692566f, - 0.699127f, 0.705658f, 0.712128f, - 0.718536f, 0.724945f, 0.731262f, - 0.737549f, 0.743805f, 0.750000f, - 0.756134f, 0.762238f, 0.768280f, - 0.774261f, 0.780182f, 0.786072f, - 0.791870f, 0.797638f, 0.803314f, - 0.808960f, 0.814514f, 0.820038f, - 0.825470f, 0.830841f, 0.836151f, - 0.841400f, 0.846558f, 0.851654f, - 0.856689f, 0.861633f, 0.866516f, - 0.871338f, 0.876068f, 0.880737f, - 0.885315f, 0.889801f, 0.894226f, - 0.898560f, 0.902832f, 0.907013f, - 0.911102f, 0.915100f, 0.919037f, - 0.922882f, 0.926636f, 0.930328f, - 0.933899f, 0.937408f, 0.940796f, - 0.944122f, 0.947357f, 0.950470f, - 0.953522f, 0.956482f, 0.959351f, - 0.962097f, 0.964783f, 0.967377f, - 0.969849f, 0.972229f, 0.974518f, - 0.976715f, 0.978821f, 0.980835f, - 0.982727f, 0.984528f, 0.986237f, - 0.987854f, 0.989380f, 0.990784f, - 0.992096f, 0.993317f, 0.994415f, - 0.995422f, 0.996338f, 0.997162f, - 0.997864f, 0.998474f, 0.998962f, - 0.999390f, 0.999695f, 0.999878f, - 0.999969f, 0.999969f, 0.996918f, - 0.987701f, 0.972382f, 0.951050f, - 0.923889f, 0.891022f, 0.852631f, - 0.809021f, 0.760406f, 0.707092f, - 0.649445f, 0.587799f, 0.522491f, - 0.453979f, 0.382690f, 0.309021f, - 0.233459f, 0.156433f, 0.078461f -}; - -/* Lag window for LPC */ -const float lpc_lagwinTbl[ILBC_LPC_FILTERORDER + 1] = -{ - 1.000100f, 0.998890f, 0.995569f, - 0.990057f, 0.982392f, - 0.972623f, 0.960816f, 0.947047f, - 0.931405f, 0.913989f, 0.894909f -}; - -/* LSF quantization*/ -const float lsfCbTbl[64 * 3 + 128 * 3 + 128 * 4] = -{ - 0.155396f, 0.273193f, 0.451172f, - 0.390503f, 0.648071f, 1.002075f, - 0.440186f, 0.692261f, 0.955688f, - 0.343628f, 0.642334f, 1.071533f, - 0.318359f, 0.491577f, 0.670532f, - 0.193115f, 0.375488f, 0.725708f, - 0.364136f, 0.510376f, 0.658691f, - 0.297485f, 0.527588f, 0.842529f, - 0.227173f, 0.365967f, 0.563110f, - 0.244995f, 0.396729f, 0.636475f, - 0.169434f, 0.300171f, 0.520264f, - 0.312866f, 0.464478f, 0.643188f, - 0.248535f, 0.429932f, 0.626099f, - 0.236206f, 0.491333f, 0.817139f, - 0.334961f, 0.625122f, 0.895752f, - 0.343018f, 0.518555f, 0.698608f, - 0.372803f, 0.659790f, 0.945435f, - 0.176880f, 0.316528f, 0.581421f, - 0.416382f, 0.625977f, 0.805176f, - 0.303223f, 0.568726f, 0.915039f, - 0.203613f, 0.351440f, 0.588135f, - 0.221191f, 0.375000f, 0.614746f, - 0.199951f, 0.323364f, 0.476074f, - 0.300781f, 0.433350f, 0.566895f, - 0.226196f, 0.354004f, 0.507568f, - 0.300049f, 0.508179f, 0.711670f, - 0.312012f, 0.492676f, 0.763428f, - 0.329956f, 0.541016f, 0.795776f, - 0.373779f, 0.604614f, 0.928833f, - 0.210571f, 0.452026f, 0.755249f, - 0.271118f, 0.473267f, 0.662476f, - 0.285522f, 0.436890f, 0.634399f, - 0.246704f, 0.565552f, 0.859009f, - 0.270508f, 0.406250f, 0.553589f, - 0.361450f, 0.578491f, 0.813843f, - 0.342651f, 0.482788f, 0.622437f, - 0.340332f, 0.549438f, 0.743164f, - 0.200439f, 0.336304f, 0.540894f, - 0.407837f, 0.644775f, 0.895142f, - 0.294678f, 0.454834f, 0.699097f, - 0.193115f, 0.344482f, 0.643188f, - 0.275757f, 0.420776f, 0.598755f, - 0.380493f, 0.608643f, 0.861084f, - 0.222778f, 0.426147f, 0.676514f, - 0.407471f, 0.700195f, 1.053101f, - 0.218384f, 0.377197f, 0.669922f, - 0.313232f, 0.454102f, 0.600952f, - 0.347412f, 0.571533f, 0.874146f, - 0.238037f, 0.405396f, 0.729492f, - 0.223877f, 0.412964f, 0.822021f, - 0.395264f, 0.582153f, 0.743896f, - 0.247925f, 0.485596f, 0.720581f, - 0.229126f, 0.496582f, 0.907715f, - 0.260132f, 0.566895f, 1.012695f, - 0.337402f, 0.611572f, 0.978149f, - 0.267822f, 0.447632f, 0.769287f, - 0.250610f, 0.381714f, 0.530029f, - 0.430054f, 0.805054f, 1.221924f, - 0.382568f, 0.544067f, 0.701660f, - 0.383545f, 0.710327f, 1.149170f, - 0.271362f, 0.529053f, 0.775513f, - 0.246826f, 0.393555f, 0.588623f, - 0.266846f, 0.422119f, 0.676758f, - 0.311523f, 0.580688f, 0.838623f, - 1.331177f, 1.576782f, 1.779541f, - 1.160034f, 1.401978f, 1.768188f, - 1.161865f, 1.525146f, 1.715332f, - 0.759521f, 0.913940f, 1.119873f, - 0.947144f, 1.121338f, 1.282471f, - 1.015015f, 1.557007f, 1.804932f, - 1.172974f, 1.402100f, 1.692627f, - 1.087524f, 1.474243f, 1.665405f, - 0.899536f, 1.105225f, 1.406250f, - 1.148438f, 1.484741f, 1.796265f, - 0.785645f, 1.209839f, 1.567749f, - 0.867798f, 1.166504f, 1.450684f, - 0.922485f, 1.229858f, 1.420898f, - 0.791260f, 1.123291f, 1.409546f, - 0.788940f, 0.966064f, 1.340332f, - 1.051147f, 1.272827f, 1.556641f, - 0.866821f, 1.181152f, 1.538818f, - 0.906738f, 1.373535f, 1.607910f, - 1.244751f, 1.581421f, 1.933838f, - 0.913940f, 1.337280f, 1.539673f, - 0.680542f, 0.959229f, 1.662720f, - 0.887207f, 1.430542f, 1.800781f, - 0.912598f, 1.433594f, 1.683960f, - 0.860474f, 1.060303f, 1.455322f, - 1.005127f, 1.381104f, 1.706909f, - 0.800781f, 1.363892f, 1.829102f, - 0.781860f, 1.124390f, 1.505981f, - 1.003662f, 1.471436f, 1.684692f, - 0.981323f, 1.309570f, 1.618042f, - 1.228760f, 1.554321f, 1.756470f, - 0.734375f, 0.895752f, 1.225586f, - 0.841797f, 1.055664f, 1.249268f, - 0.920166f, 1.119385f, 1.486206f, - 0.894409f, 1.539063f, 1.828979f, - 1.283691f, 1.543335f, 1.858276f, - 0.676025f, 0.933105f, 1.490845f, - 0.821289f, 1.491821f, 1.739868f, - 0.923218f, 1.144653f, 1.580566f, - 1.057251f, 1.345581f, 1.635864f, - 0.888672f, 1.074951f, 1.353149f, - 0.942749f, 1.195435f, 1.505493f, - 1.492310f, 1.788086f, 2.039673f, - 1.070313f, 1.634399f, 1.860962f, - 1.253296f, 1.488892f, 1.686035f, - 0.647095f, 0.864014f, 1.401855f, - 0.866699f, 1.254883f, 1.453369f, - 1.063965f, 1.532593f, 1.731323f, - 1.167847f, 1.521484f, 1.884033f, - 0.956055f, 1.502075f, 1.745605f, - 0.928711f, 1.288574f, 1.479614f, - 1.088013f, 1.380737f, 1.570801f, - 0.905029f, 1.186768f, 1.371948f, - 1.057861f, 1.421021f, 1.617432f, - 1.108276f, 1.312500f, 1.501465f, - 0.979492f, 1.416992f, 1.624268f, - 1.276001f, 1.661011f, 2.007935f, - 0.993042f, 1.168579f, 1.331665f, - 0.778198f, 0.944946f, 1.235962f, - 1.223755f, 1.491333f, 1.815674f, - 0.852661f, 1.350464f, 1.722290f, - 1.134766f, 1.593140f, 1.787354f, - 1.051392f, 1.339722f, 1.531006f, - 0.803589f, 1.271240f, 1.652100f, - 0.755737f, 1.143555f, 1.639404f, - 0.700928f, 0.837280f, 1.130371f, - 0.942749f, 1.197876f, 1.669800f, - 0.993286f, 1.378296f, 1.566528f, - 0.801025f, 1.095337f, 1.298950f, - 0.739990f, 1.032959f, 1.383667f, - 0.845703f, 1.072266f, 1.543823f, - 0.915649f, 1.072266f, 1.224487f, - 1.021973f, 1.226196f, 1.481323f, - 0.999878f, 1.204102f, 1.555908f, - 0.722290f, 0.913940f, 1.340210f, - 0.673340f, 0.835938f, 1.259521f, - 0.832397f, 1.208374f, 1.394165f, - 0.962158f, 1.576172f, 1.912842f, - 1.166748f, 1.370850f, 1.556763f, - 0.946289f, 1.138550f, 1.400391f, - 1.035034f, 1.218262f, 1.386475f, - 1.393799f, 1.717773f, 2.000244f, - 0.972656f, 1.260986f, 1.760620f, - 1.028198f, 1.288452f, 1.484619f, - 0.773560f, 1.258057f, 1.756714f, - 1.080322f, 1.328003f, 1.742676f, - 0.823975f, 1.450806f, 1.917725f, - 0.859009f, 1.016602f, 1.191895f, - 0.843994f, 1.131104f, 1.645020f, - 1.189697f, 1.702759f, 1.894409f, - 1.346680f, 1.763184f, 2.066040f, - 0.980469f, 1.253784f, 1.441650f, - 1.338135f, 1.641968f, 1.932739f, - 1.223267f, 1.424194f, 1.626465f, - 0.765747f, 1.004150f, 1.579102f, - 1.042847f, 1.269165f, 1.647461f, - 0.968750f, 1.257568f, 1.555786f, - 0.826294f, 0.993408f, 1.275146f, - 0.742310f, 0.950439f, 1.430542f, - 1.054321f, 1.439819f, 1.828003f, - 1.072998f, 1.261719f, 1.441895f, - 0.859375f, 1.036377f, 1.314819f, - 0.895752f, 1.267212f, 1.605591f, - 0.805420f, 0.962891f, 1.142334f, - 0.795654f, 1.005493f, 1.468506f, - 1.105347f, 1.313843f, 1.584839f, - 0.792236f, 1.221802f, 1.465698f, - 1.170532f, 1.467651f, 1.664063f, - 0.838257f, 1.153198f, 1.342163f, - 0.968018f, 1.198242f, 1.391235f, - 1.250122f, 1.623535f, 1.823608f, - 0.711670f, 1.058350f, 1.512085f, - 1.204834f, 1.454468f, 1.739136f, - 1.137451f, 1.421753f, 1.620117f, - 0.820435f, 1.322754f, 1.578247f, - 0.798706f, 1.005005f, 1.213867f, - 0.980713f, 1.324951f, 1.512939f, - 1.112305f, 1.438843f, 1.735596f, - 1.135498f, 1.356689f, 1.635742f, - 1.101318f, 1.387451f, 1.686523f, - 0.849854f, 1.276978f, 1.523438f, - 1.377930f, 1.627563f, 1.858154f, - 0.884888f, 1.095459f, 1.287476f, - 1.289795f, 1.505859f, 1.756592f, - 0.817505f, 1.384155f, 1.650513f, - 1.446655f, 1.702148f, 1.931885f, - 0.835815f, 1.023071f, 1.385376f, - 0.916626f, 1.139038f, 1.335327f, - 0.980103f, 1.174072f, 1.453735f, - 1.705688f, 2.153809f, 2.398315f, 2.743408f, - 1.797119f, 2.016846f, 2.445679f, 2.701904f, - 1.990356f, 2.219116f, 2.576416f, 2.813477f, - 1.849365f, 2.190918f, 2.611572f, 2.835083f, - 1.657959f, 1.854370f, 2.159058f, 2.726196f, - 1.437744f, 1.897705f, 2.253174f, 2.655396f, - 2.028687f, 2.247314f, 2.542358f, 2.875854f, - 1.736938f, 1.922119f, 2.185913f, 2.743408f, - 1.521606f, 1.870972f, 2.526855f, 2.786987f, - 1.841431f, 2.050659f, 2.463623f, 2.857666f, - 1.590088f, 2.067261f, 2.427979f, 2.794434f, - 1.746826f, 2.057373f, 2.320190f, 2.800781f, - 1.734619f, 1.940552f, 2.306030f, 2.826416f, - 1.786255f, 2.204468f, 2.457520f, 2.795288f, - 1.861084f, 2.170532f, 2.414551f, 2.763672f, - 2.001465f, 2.307617f, 2.552734f, 2.811890f, - 1.784424f, 2.124146f, 2.381592f, 2.645508f, - 1.888794f, 2.135864f, 2.418579f, 2.861206f, - 2.301147f, 2.531250f, 2.724976f, 2.913086f, - 1.837769f, 2.051270f, 2.261963f, 2.553223f, - 2.012939f, 2.221191f, 2.440186f, 2.678101f, - 1.429565f, 1.858276f, 2.582275f, 2.845703f, - 1.622803f, 1.897705f, 2.367310f, 2.621094f, - 1.581543f, 1.960449f, 2.515869f, 2.736450f, - 1.419434f, 1.933960f, 2.394653f, 2.746704f, - 1.721924f, 2.059570f, 2.421753f, 2.769653f, - 1.911011f, 2.220703f, 2.461060f, 2.740723f, - 1.581177f, 1.860840f, 2.516968f, 2.874634f, - 1.870361f, 2.098755f, 2.432373f, 2.656494f, - 2.059692f, 2.279785f, 2.495605f, 2.729370f, - 1.815674f, 2.181519f, 2.451538f, 2.680542f, - 1.407959f, 1.768311f, 2.343018f, 2.668091f, - 2.168701f, 2.394653f, 2.604736f, 2.829346f, - 1.636230f, 1.865723f, 2.329102f, 2.824219f, - 1.878906f, 2.139526f, 2.376709f, 2.679810f, - 1.765381f, 1.971802f, 2.195435f, 2.586914f, - 2.164795f, 2.410889f, 2.673706f, 2.903198f, - 2.071899f, 2.331055f, 2.645874f, 2.907104f, - 2.026001f, 2.311523f, 2.594849f, 2.863892f, - 1.948975f, 2.180786f, 2.514893f, 2.797852f, - 1.881836f, 2.130859f, 2.478149f, 2.804199f, - 2.238159f, 2.452759f, 2.652832f, 2.868286f, - 1.897949f, 2.101685f, 2.524292f, 2.880127f, - 1.856445f, 2.074585f, 2.541016f, 2.791748f, - 1.695557f, 2.199097f, 2.506226f, 2.742676f, - 1.612671f, 1.877075f, 2.435425f, 2.732910f, - 1.568848f, 1.786499f, 2.194580f, 2.768555f, - 1.953369f, 2.164551f, 2.486938f, 2.874023f, - 1.388306f, 1.725342f, 2.384521f, 2.771851f, - 2.115356f, 2.337769f, 2.592896f, 2.864014f, - 1.905762f, 2.111328f, 2.363525f, 2.789307f, - 1.882568f, 2.332031f, 2.598267f, 2.827637f, - 1.683594f, 2.088745f, 2.361938f, 2.608643f, - 1.874023f, 2.182129f, 2.536133f, 2.766968f, - 1.861938f, 2.070435f, 2.309692f, 2.700562f, - 1.722168f, 2.107422f, 2.477295f, 2.837646f, - 1.926880f, 2.184692f, 2.442627f, 2.663818f, - 2.123901f, 2.337280f, 2.553101f, 2.777466f, - 1.588135f, 1.911499f, 2.212769f, 2.543945f, - 2.053955f, 2.370850f, 2.712158f, 2.939941f, - 2.210449f, 2.519653f, 2.770386f, 2.958618f, - 2.199463f, 2.474731f, 2.718262f, 2.919922f, - 1.960083f, 2.175415f, 2.608032f, 2.888794f, - 1.953735f, 2.185181f, 2.428223f, 2.809570f, - 1.615234f, 2.036499f, 2.576538f, 2.834595f, - 1.621094f, 2.028198f, 2.431030f, 2.664673f, - 1.824951f, 2.267456f, 2.514526f, 2.747925f, - 1.994263f, 2.229126f, 2.475220f, 2.833984f, - 1.746338f, 2.011353f, 2.588257f, 2.826904f, - 1.562866f, 2.135986f, 2.471680f, 2.687256f, - 1.748901f, 2.083496f, 2.460938f, 2.686279f, - 1.758057f, 2.131470f, 2.636597f, 2.891602f, - 2.071289f, 2.299072f, 2.550781f, 2.814331f, - 1.839600f, 2.094360f, 2.496460f, 2.723999f, - 1.882202f, 2.088257f, 2.636841f, 2.923096f, - 1.957886f, 2.153198f, 2.384399f, 2.615234f, - 1.992920f, 2.351196f, 2.654419f, 2.889771f, - 2.012817f, 2.262451f, 2.643799f, 2.903076f, - 2.025635f, 2.254761f, 2.508423f, 2.784058f, - 2.316040f, 2.589355f, 2.794189f, 2.963623f, - 1.741211f, 2.279541f, 2.578491f, 2.816284f, - 1.845337f, 2.055786f, 2.348511f, 2.822021f, - 1.679932f, 1.926514f, 2.499756f, 2.835693f, - 1.722534f, 1.946899f, 2.448486f, 2.728760f, - 1.829834f, 2.043213f, 2.580444f, 2.867676f, - 1.676636f, 2.071655f, 2.322510f, 2.704834f, - 1.791504f, 2.113525f, 2.469727f, 2.784058f, - 1.977051f, 2.215088f, 2.497437f, 2.726929f, - 1.800171f, 2.106689f, 2.357788f, 2.738892f, - 1.827759f, 2.170166f, 2.525879f, 2.852417f, - 1.918335f, 2.132813f, 2.488403f, 2.728149f, - 1.916748f, 2.225098f, 2.542603f, 2.857666f, - 1.761230f, 1.976074f, 2.507446f, 2.884521f, - 2.053711f, 2.367432f, 2.608032f, 2.837646f, - 1.595337f, 2.000977f, 2.307129f, 2.578247f, - 1.470581f, 2.031250f, 2.375854f, 2.647583f, - 1.801392f, 2.128052f, 2.399780f, 2.822876f, - 1.853638f, 2.066650f, 2.429199f, 2.751465f, - 1.956299f, 2.163696f, 2.394775f, 2.734253f, - 1.963623f, 2.275757f, 2.585327f, 2.865234f, - 1.887451f, 2.105469f, 2.331787f, 2.587402f, - 2.120117f, 2.443359f, 2.733887f, 2.941406f, - 1.506348f, 1.766968f, 2.400513f, 2.851807f, - 1.664551f, 1.981079f, 2.375732f, 2.774414f, - 1.720703f, 1.978882f, 2.391479f, 2.640991f, - 1.483398f, 1.814819f, 2.434448f, 2.722290f, - 1.769043f, 2.136597f, 2.563721f, 2.774414f, - 1.810791f, 2.049316f, 2.373901f, 2.613647f, - 1.788330f, 2.005981f, 2.359131f, 2.723145f, - 1.785156f, 1.993164f, 2.399780f, 2.832520f, - 1.695313f, 2.022949f, 2.522583f, 2.745117f, - 1.584106f, 1.965576f, 2.299927f, 2.715576f, - 1.894897f, 2.249878f, 2.655884f, 2.897705f, - 1.720581f, 1.995728f, 2.299438f, 2.557007f, - 1.619385f, 2.173950f, 2.574219f, 2.787964f, - 1.883179f, 2.220459f, 2.474365f, 2.825073f, - 1.447632f, 2.045044f, 2.555542f, 2.744873f, - 1.502686f, 2.156616f, 2.653320f, 2.846558f, - 1.711548f, 1.944092f, 2.282959f, 2.685791f, - 1.499756f, 1.867554f, 2.341064f, 2.578857f, - 1.916870f, 2.135132f, 2.568237f, 2.826050f, - 1.498047f, 1.711182f, 2.223267f, 2.755127f, - 1.808716f, 1.997559f, 2.256470f, 2.758545f, - 2.088501f, 2.402710f, 2.667358f, 2.890259f, - 1.545044f, 1.819214f, 2.324097f, 2.692993f, - 1.796021f, 2.012573f, 2.505737f, 2.784912f, - 1.786499f, 2.041748f, 2.290405f, 2.650757f, - 1.938232f, 2.264404f, 2.529053f, 2.796143f -}; diff --git a/libs/ilbc/src/constants.h b/libs/ilbc/src/constants.h deleted file mode 100644 index 290b494b06..0000000000 --- a/libs/ilbc/src/constants.h +++ /dev/null @@ -1,76 +0,0 @@ -/* - * iLBC - a library for the iLBC codec - * - * constants.h - The iLBC low bit rate speech codec. - * - * Adapted by Steve Underwood from the reference - * iLBC code supplied in RFC3951. - * - * Original code Copyright (C) The Internet Society (2004). - * All changes to produce this version Copyright (C) 2008 by Steve Underwood - * All Rights Reserved. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Id: constants.h,v 1.2 2008/03/06 12:27:38 steveu Exp $ - */ - -#ifndef __iLBC_CONSTANTS_H -#define __iLBC_CONSTANTS_H - -#include "iLBC_define.h" -#include "ilbc.h" - -/* ULP bit allocation */ - -extern const ilbc_ulp_inst_t ULP_20msTbl; -extern const ilbc_ulp_inst_t ULP_30msTbl; - -/* high pass filters */ - -extern const float hpi_zero_coefsTbl[]; -extern const float hpi_pole_coefsTbl[]; -extern const float hpo_zero_coefsTbl[]; -extern const float hpo_pole_coefsTbl[]; - -/* low pass filters */ -extern const float lpFilt_coefsTbl[]; - -/* LPC analysis and quantization */ - -extern const float lpc_winTbl[]; -extern const float lpc_asymwinTbl[]; -extern const float lpc_lagwinTbl[]; -extern const float lsfCbTbl[]; -extern const float lsfmeanTbl[]; -extern const int dim_lsfCbTbl[]; -extern const int size_lsfCbTbl[]; -extern const float lsf_weightTbl_30ms[]; -extern const float lsf_weightTbl_20ms[]; - -/* state quantization tables */ - -extern const float state_sq3Tbl[]; -extern const float state_frgqTbl[]; - -/* gain quantization tables */ - -extern const float gain_sq3Tbl[]; -extern const float gain_sq4Tbl[]; -extern const float gain_sq5Tbl[]; - -/* adaptive codebook definitions */ - -extern const int search_rangeTbl[5][CB_NSTAGES]; -extern const int memLfTbl[]; -extern const int stMemLTbl; -extern const float cbfiltersTbl[CB_FILTERLEN]; - -/* enhancer definitions */ - -extern const float polyphaserTbl[]; -extern const float enh_plocsTbl[]; - -#endif diff --git a/libs/ilbc/src/createCB.c b/libs/ilbc/src/createCB.c deleted file mode 100644 index 2e1498cbdc..0000000000 --- a/libs/ilbc/src/createCB.c +++ /dev/null @@ -1,241 +0,0 @@ -/* - * iLBC - a library for the iLBC codec - * - * createCB.c - The iLBC low bit rate speech codec. - * - * Adapted by Steve Underwood from the reference - * iLBC code supplied in RFC3951. - * - * Original code Copyright (C) The Internet Society (2004). - * All changes to produce this version Copyright (C) 2008 by Steve Underwood - * All Rights Reserved. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Id: createCB.c,v 1.2 2008/03/06 12:27:38 steveu Exp $ - */ - -/*! \file */ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include -#include -#include - -#include "ilbc.h" -#include "constants.h" -#include "createCB.h" - -/*----------------------------------------------------------------* - * Construct an additional codebook vector by filtering the - * initial codebook buffer. This vector is then used to expand - * the codebook with an additional section. - *---------------------------------------------------------------*/ - -void filteredCBvecs(float *cbvectors, /* (o) Codebook vectors for the - higher section */ - float *mem, /* (i) Buffer to create codebook - vector from */ - int lMem) /* (i) Length of buffer */ -{ - int j; - int k; - const float *pp; - const float *pp1; - float tempbuff2[CB_MEML + CB_FILTERLEN]; - float *pos; - - memset(tempbuff2, 0, (CB_HALFFILTERLEN - 1)*sizeof(float)); - memcpy(&tempbuff2[CB_HALFFILTERLEN - 1], mem, lMem*sizeof(float)); - memset(&tempbuff2[lMem + CB_HALFFILTERLEN - 1], 0, (CB_HALFFILTERLEN + 1)*sizeof(float)); - - /* Create codebook vector for higher section by filtering */ - - /* do filtering */ - pos = cbvectors; - memset(pos, 0, lMem*sizeof(float)); - for (k = 0; k < lMem; k++) - { - pp = &tempbuff2[k]; - pp1 = &cbfiltersTbl[CB_FILTERLEN - 1]; - for (j = 0; j < CB_FILTERLEN; j++) - (*pos) += (*pp++)*(*pp1--); - pos++; - } -} - -/*----------------------------------------------------------------* - * Search the augmented part of the codebook to find the best - * measure. - *----------------------------------------------------------------*/ - -void searchAugmentedCB(int low, /* (i) Start index for the search */ - int high, /* (i) End index for the search */ - int stage, /* (i) Current stage */ - int startIndex, /* (i) Codebook index for the first - aug vector */ - float *target, /* (i) Target vector for encoding */ - float *buffer, /* (i) Pointer to the end of the buffer for - augmented codebook construction */ - float *max_measure, /* (i/o) Currently maximum measure */ - int *best_index, /* (o) Currently the best index */ - float *gain, /* (o) Currently the best gain */ - float *energy, /* (o) Energy of augmented codebook - vectors */ - float *invenergy) /* (o) Inv energy of augmented codebook - vectors */ -{ - int icount; - int ilow; - int j; - int tmpIndex; - float *pp; - float *ppo; - float *ppi; - float *ppe; - float crossDot; - float alfa; - float weighted; - float measure; - float nrjRecursive; - float ftmp; - - /* Compute the energy for the first (low-5) - noninterpolated samples */ - nrjRecursive = 0.0f; - pp = buffer - low + 1; - for (j = 0; j < (low - 5); j++) - { - nrjRecursive += ((*pp)*(*pp)); - pp++; - } - ppe = buffer - low; - - for (icount = low; icount <= high; icount++) - { - /* Index of the codebook vector used for retrieving - energy values */ - tmpIndex = startIndex+icount - 20; - - ilow = icount - 4; - - /* Update the energy recursively to save complexity */ - nrjRecursive = nrjRecursive + (*ppe)*(*ppe); - ppe--; - energy[tmpIndex] = nrjRecursive; - - /* Compute cross dot product for the first (low - 5) samples */ - - crossDot = 0.0f; - pp = buffer - icount; - for (j = 0; j < ilow; j++) - crossDot += target[j]*(*pp++); - - /* interpolation */ - alfa = 0.2f; - ppo = buffer - 4; - ppi = buffer - icount - 4; - for (j = ilow; j < icount; j++) - { - weighted = (1.0f - alfa)*(*ppo) +alfa*(*ppi); - ppo++; - ppi++; - energy[tmpIndex] += weighted*weighted; - crossDot += target[j]*weighted; - alfa += 0.2f; - } - - /* Compute energy and cross dot product for the - remaining samples */ - pp = buffer - icount; - for (j = icount; j < SUBL; j++) - { - energy[tmpIndex] += (*pp)*(*pp); - crossDot += target[j]*(*pp++); - } - - if (energy[tmpIndex] > 0.0f) - { - invenergy[tmpIndex] = 1.0f/(energy[tmpIndex] + EPS); - } - else - { - invenergy[tmpIndex] = 0.0f; - } - - if (stage == 0) - { - measure = -10000000.0f; - - if (crossDot > 0.0f) - measure = crossDot*crossDot*invenergy[tmpIndex]; - } - else - { - measure = crossDot*crossDot*invenergy[tmpIndex]; - } - - /* check if measure is better */ - ftmp = crossDot*invenergy[tmpIndex]; - - if ((measure > *max_measure) && (fabsf(ftmp) < CB_MAXGAIN)) - { - *best_index = tmpIndex; - *max_measure = measure; - *gain = ftmp; - } - } -} - -/*----------------------------------------------------------------* - * Recreate a specific codebook vector from the augmented part. - * - *----------------------------------------------------------------*/ - -void createAugmentedVec(int index, /* (i) Index for the augmented vector - to be created */ - float *buffer, /* (i) Pointer to the end of the buffer for - augmented codebook construction */ - float *cbVec) /* (o) The construced codebook vector */ -{ - int ilow; - int j; - float *pp; - float *ppo; - float *ppi; - float alfa; - float alfa1; - float weighted; - - ilow = index - 5; - - /* copy the first noninterpolated part */ - - pp = buffer - index; - memcpy(cbVec, pp, sizeof(float)*index); - - /* interpolation */ - - alfa1 = 0.2f; - alfa = 0.0f; - ppo = buffer - 5; - ppi = buffer - index - 5; - for (j = ilow; j < index; j++) - { - weighted = (1.0f - alfa)*(*ppo) + alfa*(*ppi); - ppo++; - ppi++; - cbVec[j] = weighted; - alfa += alfa1; - } - - /* copy the second noninterpolated part */ - - pp = buffer - index; - memcpy(cbVec + index, pp, sizeof(float)*(SUBL - index)); -} diff --git a/libs/ilbc/src/createCB.h b/libs/ilbc/src/createCB.h deleted file mode 100644 index 7763698088..0000000000 --- a/libs/ilbc/src/createCB.h +++ /dev/null @@ -1,51 +0,0 @@ -/* - * iLBC - a library for the iLBC codec - * - * createCB.h - The iLBC low bit rate speech codec. - * - * Adapted by Steve Underwood from the reference - * iLBC code supplied in RFC3951. - * - * Original code Copyright (C) The Internet Society (2004). - * All changes to produce this version Copyright (C) 2008 by Steve Underwood - * All Rights Reserved. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Id: createCB.h,v 1.2 2008/03/06 12:27:38 steveu Exp $ - */ - -#ifndef __iLBC_CREATECB_H -#define __iLBC_CREATECB_H - -void filteredCBvecs(float *cbvectors, /* (o) Codebook vector for the - higher section */ - float *mem, /* (i) Buffer to create codebook - vectors from */ - int lMem); /* (i) Length of buffer */ - -void searchAugmentedCB(int low, /* (i) Start index for the search */ - int high, /* (i) End index for the search */ - int stage, /* (i) Current stage */ - int startIndex, /* (i) CB index for the first - augmented vector */ - float *target, /* (i) Target vector for encoding */ - float *buffer, /* (i) Pointer to the end of the - buffer for augmented codebook - construction */ - float *max_measure, /* (i/o) Currently maximum measure */ - int *best_index, /* (o) Currently the best index */ - float *gain, /* (o) Currently the best gain */ - float *energy, /* (o) Energy of augmented - codebook vectors */ - float *invenergy); /* (o) Inv energy of aug codebook vectors */ - -void createAugmentedVec(int index, /* (i) Index for the aug vector to be created */ - float *buffer, /* (i) Pointer to the end of the - buffer for augmented codebook - construction */ - float *cbVec); /* (o) The construced codebook vector */ - -#endif diff --git a/libs/ilbc/src/doCPLC.c b/libs/ilbc/src/doCPLC.c deleted file mode 100644 index 1439a0e4db..0000000000 --- a/libs/ilbc/src/doCPLC.c +++ /dev/null @@ -1,236 +0,0 @@ -/* - * iLBC - a library for the iLBC codec - * - * doCPLC.c - The iLBC low bit rate speech codec. - * - * Adapted by Steve Underwood from the reference - * iLBC code supplied in RFC3951. - * - * Original code Copyright (C) The Internet Society (2004). - * All changes to produce this version Copyright (C) 2008 by Steve Underwood - * All Rights Reserved. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Id: doCPLC.c,v 1.2 2008/03/06 12:27:38 steveu Exp $ - */ - -/*! \file */ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include -#include -#include - -#include "ilbc.h" -#include "doCPLC.h" - -/*----------------------------------------------------------------* - * Compute cross correlation and pitch gain for pitch prediction - * of last subframe at given lag. - *---------------------------------------------------------------*/ - -static void compCorr(float *cc, /* (o) cross correlation coefficient */ - float *gc, /* (o) gain */ - float *pm, - float *buffer, /* (i) signal buffer */ - int lag, /* (i) pitch lag */ - int bLen, /* (i) length of buffer */ - int sRange) /* (i) correlation search length */ -{ - int i; - float ftmp1; - float ftmp2; - float ftmp3; - - /* Guard against getting outside buffer */ - if ((bLen - sRange - lag) < 0) - sRange = bLen - lag; - - ftmp1 = 0.0f; - ftmp2 = 0.0f; - ftmp3 = 0.0f; - for (i = 0; i < sRange; i++) - { - ftmp1 += buffer[bLen - sRange + i]*buffer[bLen - sRange + i - lag]; - ftmp2 += buffer[bLen - sRange + i - lag]*buffer[bLen - sRange + i - lag]; - ftmp3 += buffer[bLen - sRange + i]*buffer[bLen - sRange + i]; - } - - if (ftmp2 > 0.0f) - { - *cc = ftmp1*ftmp1/ftmp2; - *gc = fabsf(ftmp1/ftmp2); - *pm = fabsf(ftmp1)/(sqrtf(ftmp2)*sqrtf(ftmp3)); - } - else - { - *cc = 0.0f; - *gc = 0.0f; - *pm = 0.0f; - } -} - -/*----------------------------------------------------------------* - * Packet loss concealment routine. Conceals a residual signal - * and LP parameters. If no packet loss, update state. - *---------------------------------------------------------------*/ - -void doThePLC(float *PLCresidual, /* (o) concealed residual */ - float *PLClpc, /* (o) concealed LP parameters */ - int PLI, /* (i) packet loss indicator - 0 - no PL, 1 = PL */ - float *decresidual, /* (i) decoded residual */ - float *lpc, /* (i) decoded LPC (only used for no PL) */ - int inlag, /* (i) pitch lag */ - ilbc_decode_state_t *iLBCdec_inst) /* (i/o) decoder instance */ -{ - int lag = 20l; - int randlag; - float gain; - float maxcc; - float use_gain; - float gain_comp, maxcc_comp, per, max_per = 0; - int i; - int pick; - int use_lag; - float ftmp; - float randvec[ILBC_BLOCK_LEN_MAX]; - float pitchfact; - float energy; - - /* Packet Loss */ - if (PLI == 1) - { - iLBCdec_inst->consPLICount += 1; - - if (iLBCdec_inst->prevPLI != 1) - { - /* previous frame not lost, determine pitch pred. gain */ - /* Search around the previous lag to find the best pitch period */ - - lag = inlag - 3; - compCorr(&maxcc, - &gain, - &max_per, - iLBCdec_inst->prevResidual, - lag, - iLBCdec_inst->blockl, - 60); - for (i = inlag - 2; i <= inlag + 3; i++) - { - compCorr(&maxcc_comp, - &gain_comp, - &per, - iLBCdec_inst->prevResidual, - i, - iLBCdec_inst->blockl, - 60); - if (maxcc_comp>maxcc) - { - maxcc = maxcc_comp; - gain = gain_comp; - lag = i; - max_per = per; - } - } - } - else - { - /* previous frame lost, use recorded lag and periodicity */ - lag = iLBCdec_inst->prevLag; - max_per = iLBCdec_inst->per; - } - - /* downscaling */ - use_gain = 1.0f; - if (iLBCdec_inst->consPLICount*iLBCdec_inst->blockl > 320) - use_gain = 0.9f; - else if (iLBCdec_inst->consPLICount*iLBCdec_inst->blockl > 2*320) - use_gain = 0.7f; - else if (iLBCdec_inst->consPLICount*iLBCdec_inst->blockl > 3*320) - use_gain = 0.5f; - else if (iLBCdec_inst->consPLICount*iLBCdec_inst->blockl > 4*320) - use_gain = 0.0f; - - /* mix noise and pitch repeatition */ - ftmp = sqrtf(max_per); - if (ftmp > 0.7f) - pitchfact = 1.0f; - else if (ftmp > 0.4f) - pitchfact = (ftmp - 0.4f)/(0.7f - 0.4f); - else - pitchfact = 0.0f; - - /* avoid repetition of same pitch cycle */ - use_lag = lag; - if (lag < 80) - use_lag = 2*lag; - - /* compute concealed residual */ - energy = 0.0f; - for (i = 0; i < iLBCdec_inst->blockl; i++) - { - /* noise component */ - iLBCdec_inst->seed = (iLBCdec_inst->seed*69069L + 1) & (0x80000000L - 1); - randlag = 50 + ((signed long) iLBCdec_inst->seed)%70; - pick = i - randlag; - - if (pick < 0) - randvec[i] = iLBCdec_inst->prevResidual[iLBCdec_inst->blockl + pick]; - else - randvec[i] = randvec[pick]; - - /* pitch repeatition component */ - pick = i - use_lag; - - if (pick < 0) - PLCresidual[i] = iLBCdec_inst->prevResidual[iLBCdec_inst->blockl + pick]; - else - PLCresidual[i] = PLCresidual[pick]; - - /* mix random and periodicity component */ - if (i < 80) - PLCresidual[i] = use_gain*(pitchfact*PLCresidual[i] + (1.0f - pitchfact) * randvec[i]); - else if (i < 160) - PLCresidual[i] = 0.95f*use_gain*(pitchfact*PLCresidual[i] + (1.0f - pitchfact) * randvec[i]); - else - PLCresidual[i] = 0.9f*use_gain*(pitchfact*PLCresidual[i] + (1.0f - pitchfact) * randvec[i]); - energy += PLCresidual[i] * PLCresidual[i]; - } - - /* less than 30 dB, use only noise */ - if (sqrt(energy/(float) iLBCdec_inst->blockl) < 30.0f) - { - gain = 0.0f; - for (i = 0; i < iLBCdec_inst->blockl; i++) - PLCresidual[i] = randvec[i]; - } - - /* use old LPC */ - memcpy(PLClpc, iLBCdec_inst->prevLpc, (ILBC_LPC_FILTERORDER + 1)*sizeof(float)); - } - else - { - /* no packet loss, copy input */ - memcpy(PLCresidual, decresidual, iLBCdec_inst->blockl*sizeof(float)); - memcpy(PLClpc, lpc, (ILBC_LPC_FILTERORDER + 1)*sizeof(float)); - iLBCdec_inst->consPLICount = 0; - } - - /* update state */ - if (PLI) - { - iLBCdec_inst->prevLag = lag; - iLBCdec_inst->per = max_per; - } - - iLBCdec_inst->prevPLI = PLI; - memcpy(iLBCdec_inst->prevLpc, PLClpc, (ILBC_LPC_FILTERORDER + 1)*sizeof(float)); - memcpy(iLBCdec_inst->prevResidual, PLCresidual, iLBCdec_inst->blockl*sizeof(float)); -} diff --git a/libs/ilbc/src/doCPLC.h b/libs/ilbc/src/doCPLC.h deleted file mode 100644 index 65d80db6a4..0000000000 --- a/libs/ilbc/src/doCPLC.h +++ /dev/null @@ -1,31 +0,0 @@ -/* - * iLBC - a library for the iLBC codec - * - * doCPLC.h - The iLBC low bit rate speech codec. - * - * Adapted by Steve Underwood from the reference - * iLBC code supplied in RFC3951. - * - * Original code Copyright (C) The Internet Society (2004). - * All changes to produce this version Copyright (C) 2008 by Steve Underwood - * All Rights Reserved. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Id: doCPLC.h,v 1.2 2008/03/06 12:27:38 steveu Exp $ - */ - -#ifndef __iLBC_DOCLPC_H -#define __iLBC_DOCLPC_H - -void doThePLC(float *PLCresidual, /* (o) concealed residual */ - float *PLClpc, /* (o) concealed LP parameters */ - int PLI, /* (i) packet loss indicator, 0 - no PL, 1 = PL */ - float *decresidual, /* (i) decoded residual */ - float *lpc, /* (i) decoded LPC (only used for no PL) */ - int inlag, /* (i) pitch lag */ - ilbc_decode_state_t *iLBCdec_inst); /* (i/o) decoder instance */ - -#endif diff --git a/libs/ilbc/src/enhancer.c b/libs/ilbc/src/enhancer.c deleted file mode 100644 index b4c7f8e125..0000000000 --- a/libs/ilbc/src/enhancer.c +++ /dev/null @@ -1,686 +0,0 @@ -/* - * iLBC - a library for the iLBC codec - * - * enhancer.c - The iLBC low bit rate speech codec. - * - * Adapted by Steve Underwood from the reference - * iLBC code supplied in RFC3951. - * - * Original code Copyright (C) The Internet Society (2004). - * All changes to produce this version Copyright (C) 2008 by Steve Underwood - * All Rights Reserved. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Id: enhancer.c,v 1.2 2008/03/06 12:27:38 steveu Exp $ - */ - -/*! \file */ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include -#include -#include - -#include "ilbc.h" -#include "constants.h" -#include "filter.h" -#include "enhancer.h" - -/*----------------------------------------------------------------* - * Find index in array such that the array element with said - * index is the element of said array closest to "value" - * according to the squared-error criterion - *---------------------------------------------------------------*/ - -static void NearestNeighbor(int *index, /* (o) index of array element closest to value */ - const float *array, /* (i) data array */ - float value, /* (i) value */ - int arlength) /* (i) dimension of data array */ -{ - int i; - float bestcrit; - float crit; - - crit = array[0] - value; - bestcrit = crit*crit; - *index = 0; - for (i = 1; i < arlength; i++) - { - crit = array[i] - value; - crit = crit*crit; - - if (crit < bestcrit) - { - bestcrit= crit; - *index = i; - } - } -} - -/*----------------------------------------------------------------* - * compute cross correlation between sequences - *---------------------------------------------------------------*/ - -static void mycorr1(float *corr, /* (o) correlation of seq1 and seq2 */ - float *seq1, /* (i) first sequence */ - int dim1, /* (i) dimension first seq1 */ - const float *seq2, /* (i) second sequence */ - int dim2) /* (i) dimension seq2 */ -{ - int i; - int j; - - for (i = 0; i <= dim1 - dim2; i++) - { - corr[i] = 0.0f; - for (j = 0; j < dim2; j++) - corr[i] += seq1[i + j]*seq2[j]; - } -} - -/*----------------------------------------------------------------* - * upsample finite array assuming zeros outside bounds - *---------------------------------------------------------------*/ - -static void enh_upsample(float *useq1, /* (o) upsampled output sequence */ - float *seq1, /* (i) unupsampled sequence */ - int dim1, /* (i) dimension seq1 */ - int hfl) /* (i) polyphase filter length=2*hfl+1 */ -{ - float *pu; - float *ps; - int i; - int j; - int k; - int q; - int filterlength; - int hfl2; - const float *polyp[ENH_UPS0]; /* pointers to polyphase columns */ - const float *pp; - - /* define pointers for filter */ - - filterlength = 2*hfl + 1; - - if (filterlength > dim1) - { - hfl2 = (int) (dim1/2); - for (j = 0; j < ENH_UPS0; j++) - polyp[j] = polyphaserTbl + j*filterlength + hfl - hfl2; - hfl = hfl2; - filterlength = 2*hfl + 1; - } - else - { - for (j = 0; j < ENH_UPS0; j++) - polyp[j] = polyphaserTbl+j*filterlength; - } - - /* filtering: filter overhangs left side of sequence */ - pu = useq1; - for (i = hfl; i < filterlength; i++) - { - for (j = 0; j < ENH_UPS0; j++) - { - *pu = 0.0f; - pp = polyp[j]; - ps = seq1 + i; - for (k = 0; k <= i; k++) - *pu += *ps-- * *pp++; - pu++; - } - } - - /* filtering: simple convolution=inner products */ - for (i = filterlength; i < dim1; i++) - { - for (j = 0; j < ENH_UPS0; j++) - { - *pu = 0.0f; - pp = polyp[j]; - ps = seq1 + i; - for (k = 0; k < filterlength; k++) - *pu += *ps-- * *pp++; - pu++; - } - } - - /* filtering: filter overhangs right side of sequence */ - for (q = 1; q <= hfl; q++) - { - for (j = 0; j < ENH_UPS0; j++) - { - *pu = 0.0f; - pp = polyp[j] + q; - ps = seq1 + dim1 - 1; - for (k = 0; k < filterlength - q; k++) - *pu += *ps-- * *pp++; - pu++; - } - } -} - -/*----------------------------------------------------------------* - * find segment starting near idata+estSegPos that has highest - * correlation with idata+centerStartPos through - * idata+centerStartPos+ENH_BLOCKL-1 segment is found at a - * resolution of ENH_UPSO times the original of the original - * sampling rate - *---------------------------------------------------------------*/ - -static void refiner(float *seg, /* (o) segment array */ - float *updStartPos, /* (o) updated start point */ - float *idata, /* (i) original data buffer */ - int idatal, /* (i) dimension of idata */ - int centerStartPos, /* (i) beginning center segment */ - float estSegPos, /* (i) estimated beginning other segment */ - float period) /* (i) estimated pitch period */ -{ - int estSegPosRounded; - int searchSegStartPos; - int searchSegEndPos; - int corrdim; - int tloc; - int tloc2; - int i; - int st; - int en; - int fraction; - float vect[ENH_VECTL]; - float corrVec[ENH_CORRDIM]; - float maxv; - float corrVecUps[ENH_CORRDIM*ENH_UPS0]; - - period = period; - - /* defining array bounds */ - estSegPosRounded = (int)(estSegPos - 0.5f); - - searchSegStartPos = estSegPosRounded - ENH_SLOP; - - if (searchSegStartPos < 0) - searchSegStartPos = 0; - searchSegEndPos = estSegPosRounded + ENH_SLOP; - - if (searchSegEndPos + ENH_BLOCKL >= idatal) - searchSegEndPos = idatal - ENH_BLOCKL - 1; - corrdim = searchSegEndPos - searchSegStartPos + 1; - - /* compute upsampled correlation (corr33) and find location of max */ - mycorr1(corrVec, idata + searchSegStartPos, corrdim + ENH_BLOCKL - 1, idata + centerStartPos, ENH_BLOCKL); - enh_upsample(corrVecUps, corrVec, corrdim, ENH_FL0); - tloc = 0; - maxv = corrVecUps[0]; - for (i = 1; i < ENH_UPS0*corrdim; i++) - { - if (corrVecUps[i]>maxv) - { - tloc = i; - maxv = corrVecUps[i]; - } - } - - /* make vector can be upsampled without ever running outside bounds */ - *updStartPos = (float) searchSegStartPos + (float) tloc/(float) ENH_UPS0 + 1.0f; - tloc2 = (int) (tloc/ENH_UPS0); - - if (tloc > tloc2*ENH_UPS0) - tloc2++; - st = searchSegStartPos + tloc2 - ENH_FL0; - - if (st < 0) - { - memset(vect, 0, -st*sizeof(float)); - memcpy(&vect[-st], idata, (ENH_VECTL + st)*sizeof(float)); - } - else - { - en = st + ENH_VECTL; - - if (en>idatal) - { - memcpy(vect, &idata[st], (ENH_VECTL - (en - idatal))*sizeof(float)); - memset(&vect[ENH_VECTL - (en - idatal)], 0, (en - idatal)*sizeof(float)); - } - else - { - memcpy(vect, &idata[st], ENH_VECTL*sizeof(float)); - } - } - fraction = tloc2*ENH_UPS0 - tloc; - - /* compute the segment (this is actually a convolution) */ - mycorr1(seg, vect, ENH_VECTL, polyphaserTbl + (2*ENH_FL0 + 1)*fraction, 2*ENH_FL0 + 1); -} - -/*----------------------------------------------------------------* - * find the smoothed output data - *---------------------------------------------------------------*/ - -static void smath(float *odata, /* (o) smoothed output */ - float *sseq, /* (i) said second sequence of waveforms */ - int hl, /* (i) 2*hl+1 is sseq dimension */ - float alpha0) /* (i) max smoothing energy fraction */ -{ - int i; - int k; - float w00; - float w10; - float w11; - float A; - float B; - float C; - float *psseq; - float err,errs; - float surround[ILBC_BLOCK_LEN_MAX]; /* shape contributed by other than current */ - float wt[2*ENH_HL + 1]; /* waveform weighting to get surround shape */ - float denom; - - /* create shape of contribution from all waveforms except the - current one */ - - for (i = 1; i <= 2*hl + 1; i++) - wt[i - 1] = 0.5f*(1.0f - cosf(2.0f*PI*i/(2.0f*hl + 2.0f))); - wt[hl] = 0.0f; /* for clarity, not used */ - for (i = 0; i < ENH_BLOCKL; i++) - surround[i] = sseq[i]*wt[0]; - - for (k = 1; k < hl; k++) - { - psseq = sseq + k*ENH_BLOCKL; - for (i = 0; i < ENH_BLOCKL; i++) - surround[i] += psseq[i]*wt[k]; - } - for (k = hl + 1; k <= 2*hl; k++) - { - psseq = sseq + k*ENH_BLOCKL; - for (i = 0; i < ENH_BLOCKL; i++) - surround[i] += psseq[i]*wt[k]; - } - - /* compute some inner products */ - w00 = - w10 = - w11 = 0.0f; - psseq = sseq + hl*ENH_BLOCKL; /* current block */ - for (i = 0; i < ENH_BLOCKL; i++) - { - w00 += psseq[i]*psseq[i]; - w11 += surround[i]*surround[i]; - w10 += surround[i]*psseq[i]; - } - - if (fabsf(w11) < 1.0f) - w11 = 1.0f; - C = sqrtf(w00/w11); - - /* first try enhancement without power-constraint */ - errs = 0.0f; - psseq = sseq + hl*ENH_BLOCKL; - for (i = 0; i < ENH_BLOCKL; i++) - { - odata[i] = C*surround[i]; - err = psseq[i] - odata[i]; - errs += err*err; - } - - /* if constraint violated by first try, add constraint */ - if (errs > alpha0 * w00) - { - if (w00 < 1) - w00 = 1; - denom = (w11*w00 - w10*w10)/(w00*w00); - - if (denom > 0.0001f) - { - /* eliminates numerical problems for if smooth */ - A = sqrtf((alpha0 - alpha0*alpha0/4)/denom); - B = -alpha0/2.0f - A*w10/w00; - B = B + 1.0f; - } - else - { - /* essentially no difference between cycles; smoothing not needed */ - A = 0.0f; - B = 1.0f; - } - - /* create smoothed sequence */ - psseq = sseq + hl*ENH_BLOCKL; - for (i = 0; i < ENH_BLOCKL; i++) - odata[i] = A*surround[i] + B*psseq[i]; - } -} - -/*----------------------------------------------------------------* - * get the pitch-synchronous sample sequence - *---------------------------------------------------------------*/ - -static void getsseq(float *sseq, /* (o) the pitch-synchronous sequence */ - float *idata, /* (i) original data */ - int idatal, /* (i) dimension of data */ - int centerStartPos, /* (i) where current block starts */ - float *period, /* (i) rough-pitch-period array */ - const float *plocs, /* (i) where periods of period array are taken */ - int periodl, /* (i) dimension period array */ - int hl) /* (i) 2*hl+1 is the number of sequences */ -{ - int i; - int centerEndPos; - int q; - float blockStartPos[2*ENH_HL + 1]; - int lagBlock[2*ENH_HL + 1]; - float plocs2[ENH_PLOCSL]; - float *psseq; - - centerEndPos = centerStartPos + ENH_BLOCKL - 1; - - /* present */ - NearestNeighbor(lagBlock + hl, - plocs, - 0.5f*(centerStartPos + centerEndPos), - periodl); - - blockStartPos[hl] = (float) centerStartPos; - - psseq = sseq + ENH_BLOCKL*hl; - memcpy(psseq, idata + centerStartPos, ENH_BLOCKL*sizeof(float)); - - /* past */ - for (q = hl - 1; q >= 0; q--) - { - blockStartPos[q] = blockStartPos[q + 1] - period[lagBlock[q + 1]]; - NearestNeighbor(lagBlock + q, - plocs, - blockStartPos[q] + ENH_BLOCKL_HALF - period[lagBlock[q + 1]], - periodl); - - if (blockStartPos[q] - ENH_OVERHANG >= 0) - { - refiner(sseq + q*ENH_BLOCKL, - blockStartPos + q, - idata, - idatal, - centerStartPos, - blockStartPos[q], - period[lagBlock[q + 1]]); - } - else - { - psseq = sseq + q*ENH_BLOCKL; - memset(psseq, 0, ENH_BLOCKL*sizeof(float)); - } - } - - /* future */ - for (i = 0; i < periodl; i++) - plocs2[i] = plocs[i] - period[i]; - for (q = hl + 1; q <= 2*hl; q++) - { - NearestNeighbor(lagBlock + q, plocs2, blockStartPos[q - 1] + ENH_BLOCKL_HALF, periodl); - - blockStartPos[q] = blockStartPos[q - 1] + period[lagBlock[q]]; - if (blockStartPos[q] + ENH_BLOCKL + ENH_OVERHANG < idatal) - { - refiner(sseq + ENH_BLOCKL*q, - blockStartPos + q, - idata, - idatal, - centerStartPos, - blockStartPos[q], - period[lagBlock[q]]); - } - else - { - psseq = sseq + q*ENH_BLOCKL; - memset(psseq, 0, ENH_BLOCKL*sizeof(float)); - } - } -} - -/*----------------------------------------------------------------* - * perform enhancement on idata+centerStartPos through - * idata+centerStartPos+ENH_BLOCKL-1 - *---------------------------------------------------------------*/ - -static void enhancer(float *odata, /* (o) smoothed block, dimension blockl */ - float *idata, /* (i) data buffer used for enhancing */ - int idatal, /* (i) dimension idata */ - int centerStartPos, /* (i) first sample current block within idata */ - float alpha0, /* (i) max correction-energy-fraction (in [0,1]) */ - float *period, /* (i) pitch period array */ - const float *plocs, /* (i) locations where period array values valid */ - int periodl) /* (i) dimension of period and plocs */ -{ - float sseq[(2*ENH_HL + 1)*ENH_BLOCKL]; - - /* get said second sequence of segments */ - getsseq(sseq, idata, idatal, centerStartPos, period, plocs, periodl, ENH_HL); - - /* compute the smoothed output from said second sequence */ - smath(odata, sseq, ENH_HL, alpha0); -} - -/*----------------------------------------------------------------* - * cross correlation - *---------------------------------------------------------------*/ - -float xCorrCoef(float *target, /* (i) first array */ - float *regressor, /* (i) second array */ - int subl) /* (i) dimension arrays */ -{ - int i; - float ftmp1; - float ftmp2; - - ftmp1 = 0.0f; - ftmp2 = 0.0f; - for (i = 0; i < subl; i++) - { - ftmp1 += target[i]*regressor[i]; - ftmp2 += regressor[i]*regressor[i]; - } - - if (ftmp1 > 0.0f) - return (float)(ftmp1*ftmp1/ftmp2); - return 0.0f; -} - -/*----------------------------------------------------------------* - * interface for enhancer - *---------------------------------------------------------------*/ - -int enhancerInterface(float *out, /* (o) enhanced signal */ - float *in, /* (i) unenhanced signal */ - ilbc_decode_state_t *iLBCdec_inst) /* (i) buffers etc */ -{ - float *enh_buf; - float *enh_period; - int iblock; - int isample; - int lag = 0; - int ilag; - int i; - int ioffset; - float cc; - float maxcc; - float ftmp1; - float ftmp2; - float *inPtr; - float *enh_bufPtr1; - float *enh_bufPtr2; - float plc_pred[ENH_BLOCKL]; - - float lpState[6]; - float downsampled[(ENH_NBLOCKS*ENH_BLOCKL + 120)/2]; - int inLen = ENH_NBLOCKS*ENH_BLOCKL + 120; - int start; - int plc_blockl; - int inlag; - - enh_buf = iLBCdec_inst->enh_buf; - enh_period = iLBCdec_inst->enh_period; - - memmove(enh_buf, - &enh_buf[iLBCdec_inst->blockl], - (ENH_BUFL - iLBCdec_inst->blockl)*sizeof(float)); - - memcpy(&enh_buf[ENH_BUFL - iLBCdec_inst->blockl], - in, - iLBCdec_inst->blockl*sizeof(float)); - - if (iLBCdec_inst->mode == 30) - plc_blockl = ENH_BLOCKL; - else - plc_blockl = 40; - - /* when 20 ms frame, move processing one block */ - ioffset = 0; - if (iLBCdec_inst->mode == 20) - ioffset = 1; - - i = 3 - ioffset; - memmove(enh_period, &enh_period[i], (ENH_NBLOCKS_TOT - i)*sizeof(float)); - - /* Set state information to the 6 samples right before - the samples to be downsampled. */ - - memcpy(lpState, - enh_buf + (ENH_NBLOCKS_EXTRA + ioffset)*ENH_BLOCKL - 126, - 6*sizeof(float)); - - /* Down sample a factor 2 to save computations */ - DownSample(enh_buf + (ENH_NBLOCKS_EXTRA + ioffset)*ENH_BLOCKL - 120, - lpFilt_coefsTbl, - inLen - ioffset*ENH_BLOCKL, - lpState, - downsampled); - - /* Estimate the pitch in the down sampled domain. */ - for (iblock = 0; iblock maxcc) - { - maxcc = cc; - lag = ilag; - } - } - - /* Store the estimated lag in the non-downsampled domain */ - enh_period[iblock + ENH_NBLOCKS_EXTRA + ioffset] = (float) lag*2.0f; - } - /* PLC was performed on the previous packet */ - if (iLBCdec_inst->prev_enh_pl == 1) - { - inlag = (int) enh_period[ENH_NBLOCKS_EXTRA + ioffset]; - - lag = inlag - 1; - maxcc = xCorrCoef(in, in + lag, plc_blockl); - for (ilag = inlag; ilag <= inlag + 1; ilag++) - { - cc = xCorrCoef(in, in + ilag, plc_blockl); - if (cc > maxcc) - { - maxcc = cc; - lag = ilag; - } - } - - enh_period[ENH_NBLOCKS_EXTRA + ioffset - 1] = (float) lag; - - /* compute new concealed residual for the old lookahead, - mix the forward PLC with a backward PLC from - the new frame */ - - inPtr = &in[lag - 1]; - - enh_bufPtr1 = &plc_pred[plc_blockl - 1]; - - if (lag > plc_blockl) - start = plc_blockl; - else - start = lag; - - for (isample = start; isample > 0; isample--) - *enh_bufPtr1-- = *inPtr--; - - enh_bufPtr2=&enh_buf[ENH_BUFL - 1 - iLBCdec_inst->blockl]; - for (isample = (plc_blockl - 1 - lag); isample >= 0; isample--) - *enh_bufPtr1-- = *enh_bufPtr2--; - - /* limit energy change */ - ftmp2 = 0.0f; - ftmp1 = 0.0f; - for (i = 0; i < plc_blockl; i++) - { - ftmp2 += enh_buf[ENH_BUFL - 1 - iLBCdec_inst->blockl - i]*enh_buf[ENH_BUFL - 1 - iLBCdec_inst->blockl - i]; - ftmp1 += plc_pred[i]*plc_pred[i]; - } - ftmp1 = sqrtf(ftmp1/(float) plc_blockl); - ftmp2 = sqrtf(ftmp2/(float) plc_blockl); - if (ftmp1 > 2.0f*ftmp2 && ftmp1 > 0.0f) - { - for (i = 0; i < plc_blockl - 10; i++) - plc_pred[i] *= 2.0f*ftmp2/ftmp1; - for (i = plc_blockl - 10; i < plc_blockl; i++) - plc_pred[i]*=(float)(i - plc_blockl + 10)*(1.0f - 2.0f*ftmp2/ftmp1)/10.0f + 2.0f*ftmp2/ftmp1; - } - - enh_bufPtr1 = &enh_buf[ENH_BUFL - 1 - iLBCdec_inst->blockl]; - for (i = 0; i < plc_blockl; i++) - { - ftmp1 = (float) (i + 1)/(float) (plc_blockl + 1); - *enh_bufPtr1 *= ftmp1; - *enh_bufPtr1 += (1.0f - ftmp1)*plc_pred[plc_blockl - 1 - i]; - enh_bufPtr1--; - } - } - - if (iLBCdec_inst->mode == 20) - { - /* Enhancer with 40 samples delay */ - for (iblock = 0; iblock < 2; iblock++) - { - enhancer(out + iblock*ENH_BLOCKL, - enh_buf, - ENH_BUFL, - (5 + iblock)*ENH_BLOCKL + 40, - ENH_ALPHA0, - enh_period, - enh_plocsTbl, - ENH_NBLOCKS_TOT); - } - } - else if (iLBCdec_inst->mode == 30) - { - /* Enhancer with 80 samples delay */ - for (iblock = 0; iblock < 3; iblock++) - { - enhancer(out + iblock*ENH_BLOCKL, - enh_buf, - ENH_BUFL, - (4 + iblock)*ENH_BLOCKL, - ENH_ALPHA0, - enh_period, - enh_plocsTbl, - ENH_NBLOCKS_TOT); - } - } - - return lag*2; -} diff --git a/libs/ilbc/src/enhancer.h b/libs/ilbc/src/enhancer.h deleted file mode 100644 index a8e2993ad8..0000000000 --- a/libs/ilbc/src/enhancer.h +++ /dev/null @@ -1,31 +0,0 @@ -/* - * iLBC - a library for the iLBC codec - * - * enhancer.h - The iLBC low bit rate speech codec. - * - * Adapted by Steve Underwood from the reference - * iLBC code supplied in RFC3951. - * - * Original code Copyright (C) The Internet Society (2004). - * All changes to produce this version Copyright (C) 2008 by Steve Underwood - * All Rights Reserved. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Id: enhancer.h,v 1.2 2008/03/06 12:27:38 steveu Exp $ - */ - -#ifndef __ENHANCER_H -#define __ENHANCER_H - -float xCorrCoef(float *target, /* (i) first array */ - float *regressor, /* (i) second array */ - int subl); /* (i) dimension arrays */ - -int enhancerInterface(float *out, /* (o) the enhanced recidual signal */ - float *in, /* (i) the recidual signal to enhance */ - ilbc_decode_state_t *iLBCdec_inst); /* (i/o) the decoder state structure */ - -#endif diff --git a/libs/ilbc/src/filter.c b/libs/ilbc/src/filter.c deleted file mode 100644 index 85f300db97..0000000000 --- a/libs/ilbc/src/filter.c +++ /dev/null @@ -1,166 +0,0 @@ -/* - * iLBC - a library for the iLBC codec - * - * filter.c - The iLBC low bit rate speech codec. - * - * Adapted by Steve Underwood from the reference - * iLBC code supplied in RFC3951. - * - * Original code Copyright (C) The Internet Society (2004). - * All changes to produce this version Copyright (C) 2008 by Steve Underwood - * All Rights Reserved. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Id: filter.c,v 1.2 2008/03/06 12:27:38 steveu Exp $ - */ - -/*! \file */ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include - -#include "iLBC_define.h" -#include "filter.h" - -/*----------------------------------------------------------------* - * all-pole filter - *---------------------------------------------------------------*/ - -void AllPoleFilter(float *InOut, /* (i/o) on entrance InOut[-orderCoef] to - InOut[-1] contain the state of the - filter (delayed samples). InOut[0] to - InOut[lengthInOut-1] contain the filter - input, on en exit InOut[-orderCoef] to - InOut[-1] is unchanged and InOut[0] to - InOut[lengthInOut-1] contain filtered - samples */ - const float *Coef, /* (i) filter coefficients, Coef[0] is assumed to be 1.0 */ - int lengthInOut, /* (i) number of input/output samples */ - int orderCoef) /* (i) number of filter coefficients */ -{ - int n; - int k; - - for (n = 0; n < lengthInOut; n++) - { - for (k = 1; k <= orderCoef; k++) - *InOut -= Coef[k]*InOut[-k]; - InOut++; - } -} - -/*----------------------------------------------------------------* - * all-zero filter - *---------------------------------------------------------------*/ - -void AllZeroFilter(float *In, /* (i) In[0] to In[lengthInOut-1] contain - filter input samples */ - const float *Coef, /* (i) filter coefficients (Coef[0] is assumed to be 1.0) */ - int lengthInOut, /* (i) number of input/output samples */ - int orderCoef, /* (i) number of filter coefficients */ - float *Out) /* (i/o) on entrance Out[-orderCoef] to Out[-1] - contain the filter state, on exit Out[0] - to Out[lengthInOut-1] contain filtered - samples */ -{ - int n; - int k; - - for (n = 0; n < lengthInOut; n++) - { - *Out = Coef[0]*In[0]; - for (k = 1; k <= orderCoef; k++) - *Out += Coef[k]*In[-k]; - Out++; - In++; - } -} - -/*----------------------------------------------------------------* - * pole-zero filter - *---------------------------------------------------------------*/ - -void ZeroPoleFilter(float *In, /* (i) In[0] to In[lengthInOut-1] contain - filter input samples In[-orderCoef] to - In[-1] contain state of all-zero - section */ - const float *ZeroCoef, /* (i) filter coefficients for all-zero - section (ZeroCoef[0] is assumed to - be 1.0) */ - const float *PoleCoef, /* (i) filter coefficients for all-pole section - (ZeroCoef[0] is assumed to be 1.0) */ - int lengthInOut, /* (i) number of input/output samples */ - int orderCoef, /* (i) number of filter coefficients */ - float *Out) /* (i/o) on entrance Out[-orderCoef] to Out[-1] - contain state of all-pole section. On - exit Out[0] to Out[lengthInOut-1] - contain filtered samples */ -{ - AllZeroFilter(In, ZeroCoef, lengthInOut, orderCoef, Out); - AllPoleFilter(Out, PoleCoef, lengthInOut, orderCoef); -} - -/*----------------------------------------------------------------* - * downsample (LP filter and decimation) - *---------------------------------------------------------------*/ - -void DownSample(const float *In, /* (i) input samples */ - const float *Coef, /* (i) filter coefficients */ - int lengthIn, /* (i) number of input samples */ - float *state, /* (i) filter state */ - float *Out) /* (o) downsampled output */ -{ - float o; - float *Out_ptr = Out; - const float *Coef_ptr; - const float *In_ptr; - float *state_ptr; - int i; - int j; - int stop; - - /* LP filter and decimate at the same time */ - for (i = DELAY_DS; i < lengthIn; i += FACTOR_DS) - { - Coef_ptr = &Coef[0]; - In_ptr = &In[i]; - state_ptr = &state[FILTERORDER_DS - 2]; - - o = 0.0f; - - stop = (i < FILTERORDER_DS) ? (i + 1) : FILTERORDER_DS; - - for (j = 0; j < stop; j++) - o += *Coef_ptr++ * (*In_ptr--); - for (j = i + 1; j < FILTERORDER_DS; j++) - o += *Coef_ptr++ * (*state_ptr--); - *Out_ptr++ = o; - } - - /* Get the last part (use zeros as input for the future) */ - for (i = (lengthIn + FACTOR_DS); i < (lengthIn + DELAY_DS); i += FACTOR_DS) - { - o = 0.0f; - - if (i from the reference - * iLBC code supplied in RFC3951. - * - * Original code Copyright (C) The Internet Society (2004). - * All changes to produce this version Copyright (C) 2008 by Steve Underwood - * All Rights Reserved. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Id: filter.h,v 1.2 2008/03/06 12:27:38 steveu Exp $ - */ - -#ifndef __iLBC_FILTER_H -#define __iLBC_FILTER_H - -void AllPoleFilter(float *InOut, /* (i/o) on entrance InOut[-orderCoef] to - InOut[-1] contain the state of the - filter (delayed samples). InOut[0] to - InOut[lengthInOut-1] contain the filter - input, on en exit InOut[-orderCoef] to - InOut[-1] is unchanged and InOut[0] to - InOut[lengthInOut-1] contain filtered - samples */ - const float *Coef, /* (i) filter coefficients, Coef[0] is assumed to be 1.0 */ - int lengthInOut, /* (i) number of input/output samples */ - int orderCoef); /* (i) number of filter coefficients */ - -void AllZeroFilter(float *In, /* (i) In[0] to In[lengthInOut-1] contain - filter input samples */ - const float *Coef, /* (i) filter coefficients (Coef[0] is assumed to be 1.0) */ - int lengthInOut, /* (i) number of input/output samples */ - int orderCoef, /* (i) number of filter coefficients */ - float *Out); /* (i/o) on entrance Out[-orderCoef] to Out[-1] - contain the filter state, on exit Out[0] - to Out[lengthInOut-1] contain filtered - samples */ - -void ZeroPoleFilter(float *In, /* (i) In[0] to In[lengthInOut-1] contain filter - input samples In[-orderCoef] to In[-1] - contain state of all-zero section */ - const float *ZeroCoef, /* (i) filter coefficients for all-zero - section (ZeroCoef[0] is assumed to - be 1.0) */ - const float *PoleCoef, /* (i) filter coefficients for all-pole section - (ZeroCoef[0] is assumed to be 1.0) */ - int lengthInOut, /* (i) number of input/output samples */ - int orderCoef, /* (i) number of filter coefficients */ - float *Out); /* (i/o) on entrance Out[-orderCoef] to Out[-1] - contain state of all-pole section. On - exit Out[0] to Out[lengthInOut-1] - contain filtered samples */ - -void DownSample(const float *In, /* (i) input samples */ - const float *Coef, /* (i) filter coefficients */ - int lengthIn, /* (i) number of input samples */ - float *state, /* (i) filter state */ - float *Out); /* (o) downsampled output */ - -#endif diff --git a/libs/ilbc/src/gainquant.c b/libs/ilbc/src/gainquant.c deleted file mode 100644 index d03947a59a..0000000000 --- a/libs/ilbc/src/gainquant.c +++ /dev/null @@ -1,111 +0,0 @@ -/* - * iLBC - a library for the iLBC codec - * - * gainquant.c - The iLBC low bit rate speech codec. - * - * Adapted by Steve Underwood from the reference - * iLBC code supplied in RFC3951. - * - * Original code Copyright (C) The Internet Society (2004). - * All changes to produce this version Copyright (C) 2008 by Steve Underwood - * All Rights Reserved. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Id: gainquant.c,v 1.2 2008/03/06 12:27:38 steveu Exp $ - */ - -/*! \file */ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include -#include -#include - -#include "constants.h" -#include "filter.h" -#include "gainquant.h" - -/*----------------------------------------------------------------* - * quantizer for the gain in the gain-shape coding of residual - *---------------------------------------------------------------*/ - -float gainquant( /* (o) quantized gain value */ - float in, /* (i) gain value */ - float maxIn, /* (i) maximum of gain value */ - int cblen, /* (i) number of quantization indices */ - int *index) /* (o) quantization index */ -{ - int i; - int tindex; - float minmeasure; - float measure; - const float *cb; - float scale; - - /* ensure a lower bound on the scaling factor */ - scale = maxIn; - - if (scale < 0.1f) - scale = 0.1f; - - /* select the quantization table */ - if (cblen == 8) - cb = gain_sq3Tbl; - else if (cblen == 16) - cb = gain_sq4Tbl; - else - cb = gain_sq5Tbl; - - /* select the best index in the quantization table */ - minmeasure = 10000000.0f; - tindex = 0; - for (i = 0; i < cblen; i++) - { - measure = (in-scale*cb[i])*(in-scale*cb[i]); - - if (measure < minmeasure) - { - tindex = i; - minmeasure = measure; - } - } - *index = tindex; - - /* return the quantized value */ - return scale*cb[tindex]; -} - -/*----------------------------------------------------------------* - * decoder for quantized gains in the gain-shape coding of - * residual - *---------------------------------------------------------------*/ - -float gaindequant( /* (o) quantized gain value */ - int index, /* (i) quantization index */ - float maxIn, /* (i) maximum of unquantized gain */ - int cblen) /* (i) number of quantization indices */ -{ - float scale; - - /* obtain correct scale factor */ - scale = fabsf(maxIn); - - if (scale < 0.1f) - scale = 0.1f; - - /* select the quantization table and return the decoded value */ - if (cblen == 8) - return scale*gain_sq3Tbl[index]; - if (cblen == 16) - return scale*gain_sq4Tbl[index]; - if (cblen == 32) - return scale*gain_sq5Tbl[index]; - - return 0.0; -} diff --git a/libs/ilbc/src/gainquant.h b/libs/ilbc/src/gainquant.h deleted file mode 100644 index ecb94c8903..0000000000 --- a/libs/ilbc/src/gainquant.h +++ /dev/null @@ -1,34 +0,0 @@ -/* - * iLBC - a library for the iLBC codec - * - * gainquant.h - The iLBC low bit rate speech codec. - * - * Adapted by Steve Underwood from the reference - * iLBC code supplied in RFC3951. - * - * Original code Copyright (C) The Internet Society (2004). - * All changes to produce this version Copyright (C) 2008 by Steve Underwood - * All Rights Reserved. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Id: gainquant.h,v 1.2 2008/03/06 12:27:38 steveu Exp $ - */ - -#ifndef __iLBC_GAINQUANT_H -#define __iLBC_GAINQUANT_H - -float gainquant( /* (o) quantized gain value */ - float in, /* (i) gain value */ - float maxIn, /* (i) maximum of gain value */ - int cblen, /* (i) number of quantization indices */ - int *index); /* (o) quantization index */ - -float gaindequant( /* (o) quantized gain value */ - int index, /* (i) quantization index */ - float maxIn, /* (i) maximum of unquantized gain */ - int cblen); /* (i) number of quantization indices */ - -#endif diff --git a/libs/ilbc/src/getCBvec.c b/libs/ilbc/src/getCBvec.c deleted file mode 100644 index 5aa6a1e163..0000000000 --- a/libs/ilbc/src/getCBvec.c +++ /dev/null @@ -1,169 +0,0 @@ -/* - * iLBC - a library for the iLBC codec - * - * getCBvec.c - The iLBC low bit rate speech codec. - * - * Adapted by Steve Underwood from the reference - * iLBC code supplied in RFC3951. - * - * Original code Copyright (C) The Internet Society (2004). - * All changes to produce this version Copyright (C) 2008 by Steve Underwood - * All Rights Reserved. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Id: getCBvec.c,v 1.2 2008/03/06 12:27:38 steveu Exp $ - */ - -/*! \file */ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include -#include - -#include "ilbc.h" -#include "constants.h" -#include "getCBvec.h" - -/*----------------------------------------------------------------* - * Construct codebook vector for given index. - *---------------------------------------------------------------*/ - -void getCBvec(float *cbvec, /* (o) Constructed codebook vector */ - float *mem, /* (i) Codebook buffer */ - int index, /* (i) Codebook index */ - int lMem, /* (i) Length of codebook buffer */ - int cbveclen) /* (i) Codebook vector length */ -{ - int j; - int k; - int n; - int memInd; - int sFilt; - float tmpbuf[CB_MEML]; - int base_size; - int ilow; - int ihigh; - float alfa; - float alfa1; - - /* Determine size of codebook sections */ - base_size = lMem - cbveclen + 1; - - if (cbveclen == SUBL) - base_size += cbveclen/2; - - /* No filter -> First codebook section */ - if (index < lMem - cbveclen + 1) - { - /* First non-interpolated vectors */ - k = index + cbveclen; - /* Get vector */ - memcpy(cbvec, mem + lMem - k, cbveclen*sizeof(float)); - } - else if (index < base_size) - { - k = 2*(index - (lMem - cbveclen + 1)) + cbveclen; - - ihigh = k/2; - ilow = ihigh - 5; - - /* Copy first noninterpolated part */ - memcpy(cbvec, mem + lMem - k/2, ilow*sizeof(float)); - - /* Interpolation */ - alfa1 = 0.2f; - alfa = 0.0f; - for (j = ilow; j < ihigh; j++) - { - cbvec[j] = (1.0f - alfa)*mem[lMem - k/2 + j] + alfa*mem[lMem - k + j]; - alfa += alfa1; - } - - /* Copy second noninterpolated part */ - memcpy(cbvec + ihigh, mem + lMem - k + ihigh, (cbveclen - ihigh)*sizeof(float)); - } - /* Higher codebook section based on filtering */ - else - { - if (index - base_size < lMem - cbveclen + 1) - { - float tempbuff2[CB_MEML + CB_FILTERLEN + 1]; - float *pos; - const float *pp; - const float *pp1; - - /* Non-interpolated vectors */ - memset(tempbuff2, 0, CB_HALFFILTERLEN*sizeof(float)); - memcpy(&tempbuff2[CB_HALFFILTERLEN], mem, lMem*sizeof(float)); - memset(&tempbuff2[lMem + CB_HALFFILTERLEN], 0, (CB_HALFFILTERLEN + 1)*sizeof(float)); - - k = index - base_size + cbveclen; - sFilt = lMem - k; - memInd = sFilt + 1 - CB_HALFFILTERLEN; - - /* do filtering */ - pos = cbvec; - memset(pos, 0, cbveclen*sizeof(float)); - for (n = 0; n < cbveclen; n++) - { - pp = &tempbuff2[memInd + n + CB_HALFFILTERLEN]; - pp1 = &cbfiltersTbl[CB_FILTERLEN - 1]; - for (j = 0; j < CB_FILTERLEN; j++) - (*pos) += (*pp++)*(*pp1--); - pos++; - } - } - else - { - float tempbuff2[CB_MEML + CB_FILTERLEN + 1]; - float *pos; - const float *pp; - const float *pp1; - int i; - - /* Interpolated vectors */ - memset(tempbuff2, 0, CB_HALFFILTERLEN*sizeof(float)); - memcpy(&tempbuff2[CB_HALFFILTERLEN], mem, lMem*sizeof(float)); - memset(&tempbuff2[lMem + CB_HALFFILTERLEN], 0, (CB_HALFFILTERLEN + 1)*sizeof(float)); - - k = 2*(index-base_size - (lMem - cbveclen + 1)) + cbveclen; - sFilt = lMem - k; - memInd = sFilt + 1 - CB_HALFFILTERLEN; - - /* do filtering */ - pos = &tmpbuf[sFilt]; - memset(pos, 0, k*sizeof(float)); - for (i = 0; i < k; i++) - { - pp = &tempbuff2[memInd + i + CB_HALFFILTERLEN]; - pp1 = &cbfiltersTbl[CB_FILTERLEN - 1]; - for (j = 0; j < CB_FILTERLEN; j++) - (*pos) += (*pp++)*(*pp1--); - pos++; - } - - ihigh = k/2; - ilow = ihigh - 5; - - /* Copy first noninterpolated part */ - memcpy(cbvec, tmpbuf + lMem - k/2, ilow*sizeof(float)); - - /* interpolation */ - alfa1 = 0.2f; - alfa = 0.0f; - for (j = ilow; j < ihigh; j++) - { - cbvec[j] = (1.0f - alfa)*tmpbuf[lMem - k/2 + j]+alfa*tmpbuf[lMem - k + j]; - alfa += alfa1; - } - /* Copy second noninterpolated part */ - memcpy(cbvec + ihigh, tmpbuf + lMem - k + ihigh, (cbveclen - ihigh)*sizeof(float)); - } - } -} diff --git a/libs/ilbc/src/getCBvec.h b/libs/ilbc/src/getCBvec.h deleted file mode 100644 index db45027219..0000000000 --- a/libs/ilbc/src/getCBvec.h +++ /dev/null @@ -1,29 +0,0 @@ -/* - * iLBC - a library for the iLBC codec - * - * getCBvec.h - The iLBC low bit rate speech codec. - * - * Adapted by Steve Underwood from the reference - * iLBC code supplied in RFC3951. - * - * Original code Copyright (C) The Internet Society (2004). - * All changes to produce this version Copyright (C) 2008 by Steve Underwood - * All Rights Reserved. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Id: getCBvec.h,v 1.2 2008/03/06 12:27:38 steveu Exp $ - */ - -#ifndef __iLBC_GETCBVEC_H -#define __iLBC_GETCBVEC_H - -void getCBvec(float *cbvec, /* (o) Constructed codebook vector */ - float *mem, /* (i) Codebook buffer */ - int index, /* (i) Codebook index */ - int lMem, /* (i) Length of codebook buffer */ - int cbveclen); /* (i) Codebook vector length */ - -#endif diff --git a/libs/ilbc/src/helpfun.c b/libs/ilbc/src/helpfun.c deleted file mode 100644 index 372f13637e..0000000000 --- a/libs/ilbc/src/helpfun.c +++ /dev/null @@ -1,334 +0,0 @@ -/* - * iLBC - a library for the iLBC codec - * - * helpfun.c - The iLBC low bit rate speech codec. - * - * Adapted by Steve Underwood from the reference - * iLBC code supplied in RFC3951. - * - * Original code Copyright (C) The Internet Society (2004). - * All changes to produce this version Copyright (C) 2008 by Steve Underwood - * All Rights Reserved. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Id: helpfun.c,v 1.2 2008/03/06 12:27:38 steveu Exp $ - */ - -/*! \file */ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include -#include - -#include "ilbc.h" -#include "constants.h" -#include "helpfun.h" - -/*----------------------------------------------------------------* - * calculation of auto correlation - *----------------------------------------------------------------*/ - -void autocorr(float *r, /* (o) autocorrelation vector */ - const float *x, /* (i) data vector */ - int N, /* (i) length of data vector */ - int order) /* largest lag for calculated autocorrelations */ -{ - int lag; - int n; - float sum; - - for (lag = 0; lag <= order; lag++) - { - sum = 0; - for (n = 0; n < N - lag; n++) - sum += x[n]*x[n + lag]; - r[lag] = sum; - } -} - -/*----------------------------------------------------------------* - * window multiplication - *---------------------------------------------------------------*/ - -void window(float *z, /* (o) the windowed data */ - const float *x, /* (i) the original data vector */ - const float *y, /* (i) the window */ - int N) /* (i) length of all vectors */ -{ - int i; - - for (i = 0; i < N; i++) - z[i] = x[i]*y[i]; -} - -/*----------------------------------------------------------------* - * levinson-durbin solution for lpc coefficients - *---------------------------------------------------------------*/ - -void levdurb(float *a, /* (o) lpc coefficient vector starting with 1.0 */ - float *k, /* (o) reflection coefficients */ - float *r, /* (i) autocorrelation vector */ - int order) /* (i) order of lpc filter */ -{ - float sum; - float alpha; - int m; - int m_h; - int i; - - a[0] = 1.0f; - - if (r[0] < EPS) - { - /* if r[0] <= 0, set LPC coeff. to zero */ - for (i = 0; i < order; i++) - { - k[i] = 0; - a[i+1] = 0; - } - } - else - { - a[1] = k[0] = -r[1]/r[0]; - alpha = r[0] + r[1]*k[0]; - for (m = 1; m < order; m++) - { - sum = r[m + 1]; - for (i = 0; i < m; i++) - sum += a[i + 1]*r[m - i]; - k[m] = -sum/alpha; - alpha += k[m]*sum; - m_h = (m + 1) >> 1; - for (i = 0; i < m_h; i++) - { - sum = a[i + 1] + k[m]*a[m - i]; - a[m - i] += k[m]*a[i+1]; - a[i + 1] = sum; - } - a[m + 1] = k[m]; - } - } -} - -/*----------------------------------------------------------------* - * interpolation between vectors - *---------------------------------------------------------------*/ - -void interpolate(float *out, /* (o) the interpolated vector */ - float *in1, /* (i) the first vector for the - interpolation */ - float *in2, /* (i) the second vector for the - interpolation */ - float coef, /* (i) interpolation weights */ - int length) /* (i) length of all vectors */ -{ - int i; - float invcoef; - - invcoef = 1.0f - coef; - for (i = 0; i < length; i++) - out[i] = coef*in1[i] + invcoef*in2[i]; -} - -/*----------------------------------------------------------------* - * lpc bandwidth expansion - *---------------------------------------------------------------*/ - -void bwexpand(float *out, /* (o) the bandwidth expanded lpc coefficients */ - float *in, /* (i) the lpc coefficients before bandwidth expansion */ - float coef, /* (i) the bandwidth expansion factor */ - int length) /* (i) the length of lpc coefficient vectors */ -{ - int i; - float chirp; - - chirp = coef; - - out[0] = in[0]; - for (i = 1; i < length; i++) - { - out[i] = chirp*in[i]; - chirp *= coef; - } -} - -/*----------------------------------------------------------------* - * vector quantization - *---------------------------------------------------------------*/ - -void vq(float *Xq, /* (o) the quantized vector */ - int *index, /* (o) the quantization index */ - const float *CB, /* (i) the vector quantization codebook */ - float *X, /* (i) the vector to quantize */ - int n_cb, /* (i) the number of vectors in the codebook */ - int dim) /* (i) the dimension of all vectors */ -{ - int i; - int j; - int pos; - int minindex; - float dist; - float tmp; - float mindist; - - pos = 0; - mindist = FLOAT_MAX; - minindex = 0; - for (j = 0; j < n_cb; j++) - { - dist = X[0] - CB[pos]; - dist *= dist; - for (i = 1; i < dim; i++) - { - tmp = X[i] - CB[pos + i]; - dist += tmp*tmp; - } - - if (dist < mindist) - { - mindist = dist; - minindex = j; - } - pos += dim; - } - for (i = 0; i < dim; i++) - Xq[i] = CB[minindex*dim + i]; - *index = minindex; -} - -/*----------------------------------------------------------------* - * split vector quantization - *---------------------------------------------------------------*/ - -void SplitVQ(float *qX, /* (o) the quantized vector */ - int *index, /* (o) a vector of indexes for all vector - codebooks in the split */ - float *X, /* (i) the vector to quantize */ - const float *CB, /* (i) the quantizer codebook */ - int nsplit, /* the number of vector splits */ - const int *dim, /* the dimension of X and qX */ - const int *cbsize) /* the number of vectors in the codebook */ -{ - int cb_pos; - int X_pos; - int i; - - cb_pos = 0; - X_pos = 0; - for (i = 0; i < nsplit; i++) - { - vq(qX + X_pos, index + i, CB + cb_pos, X + X_pos, cbsize[i], dim[i]); - X_pos += dim[i]; - cb_pos += dim[i]*cbsize[i]; - } -} - -/*----------------------------------------------------------------* - * scalar quantization - *---------------------------------------------------------------*/ - -void sort_sq(float *xq, /* (o) the quantized value */ - int *index, /* (o) the quantization index */ - float x, /* (i) the value to quantize */ - const float *cb, /* (i) the quantization codebook */ - int cb_size) /* (i) the size of the quantization codebook */ -{ - int i; - - if (x <= cb[0]) - { - *index = 0; - *xq = cb[0]; - } - else - { - i = 0; - while ((x > cb[i]) && i < cb_size - 1) - { - i++; - } - - if (x > ((cb[i] + cb[i - 1])/2)) - { - *index = i; - *xq = cb[i]; - } - else - { - *index = i - 1; - *xq = cb[i - 1]; - } - } -} - -/*----------------------------------------------------------------* - * check for stability of lsf coefficients - *---------------------------------------------------------------*/ - -int LSF_check( /* (o) 1 for stable lsf vectors and 0 for nonstable ones */ - float *lsf, /* (i) a table of lsf vectors */ - int dim, /* (i) the dimension of each lsf vector */ - int NoAn) /* (i) the number of lsf vectors in the table */ -{ - int k; - int n; - int m; - int Nit = 2; - int change = 0; - int pos; - float tmp; - static const float eps = 0.039f; /* 50 Hz */ - static const float eps2 = 0.0195f; - static const float maxlsf = 3.14f; /* 4000 Hz */ - static const float minlsf = 0.01f; /* 0 Hz */ - - /* LSF separation check*/ - for (n = 0; n < Nit; n++) - { - /* Run through a couple of times */ - for (m = 0; m < NoAn; m++) - { - /* Number of analyses per frame */ - for (k = 0; k < (dim - 1); k++) - { - pos = m*dim + k; - - if ((lsf[pos + 1] - lsf[pos]) < eps) - { - if (lsf[pos + 1] < lsf[pos]) - { - tmp = lsf[pos + 1]; - lsf[pos + 1] = lsf[pos] + eps2; - lsf[pos] = lsf[pos + 1] - eps2; - } - else - { - lsf[pos] -= eps2; - lsf[pos+1] += eps2; - } - change = 1; - } - - if (lsf[pos] < minlsf) - { - lsf[pos] = minlsf; - change = 1; - } - - if (lsf[pos] > maxlsf) - { - lsf[pos] = maxlsf; - change = 1; - } - } - } - } - - return change; -} diff --git a/libs/ilbc/src/helpfun.h b/libs/ilbc/src/helpfun.h deleted file mode 100644 index ec4b5b0561..0000000000 --- a/libs/ilbc/src/helpfun.h +++ /dev/null @@ -1,80 +0,0 @@ -/* - * iLBC - a library for the iLBC codec - * - * helpfun.h - The iLBC low bit rate speech codec. - * - * Adapted by Steve Underwood from the reference - * iLBC code supplied in RFC3951. - * - * Original code Copyright (C) The Internet Society (2004). - * All changes to produce this version Copyright (C) 2008 by Steve Underwood - * All Rights Reserved. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Id: helpfun.h,v 1.2 2008/03/06 12:27:38 steveu Exp $ - */ - -#ifndef __iLBC_HELPFUN_H -#define __iLBC_HELPFUN_H - -void autocorr(float *r, /* (o) autocorrelation vector */ - const float *x, /* (i) data vector */ - int N, /* (i) length of data vector */ - int order); /* largest lag for calculated - autocorrelations */ - -void window(float *z, /* (o) the windowed data */ - const float *x, /* (i) the original data vector */ - const float *y, /* (i) the window */ - int N); /* (i) length of all vectors */ - -void levdurb(float *a, /* (o) lpc coefficient vector starting with 1.0 */ - float *k, /* (o) reflection coefficients */ - float *r, /* (i) autocorrelation vector */ - int order); /* (i) order of lpc filter */ - -void interpolate(float *out, /* (o) the interpolated vector */ - float *in1, /* (i) the first vector for the - interpolation */ - float *in2, /* (i) the second vector for the - interpolation */ - float coef, /* (i) interpolation weights */ - int length); /* (i) length of all vectors */ - -void bwexpand(float *out, /* (o) the bandwidth expanded lpc coefficients */ - float *in, /* (i) the lpc coefficients before bandwidth - expansion */ - float coef, /* (i) the bandwidth expansion factor */ - int length); /* (i) the length of lpc coefficient vectors */ - -void vq(float *Xq, /* (o) the quantized vector */ - int *index, /* (o) the quantization index */ - const float *CB, /* (i) the vector quantization codebook */ - float *X, /* (i) the vector to quantize */ - int n_cb, /* (i) the number of vectors in the codebook */ - int dim); /* (i) the dimension of all vectors */ - -void SplitVQ(float *qX, /* (o) the quantized vector */ - int *index, /* (o) a vector of indexes for all vector - codebooks in the split */ - float *X, /* (i) the vector to quantize */ - const float *CB, /* (i) the quantizer codebook */ - int nsplit, /* the number of vector splits */ - const int *dim, /* the dimension of X and qX */ - const int *cbsize); /* the number of vectors in the codebook */ - -void sort_sq(float *xq, /* (o) the quantized value */ - int *index, /* (o) the quantization index */ - float x, /* (i) the value to quantize */ - const float *cb, /* (i) the quantization codebook */ - int cb_size); /* (i) the size of the quantization codebook */ - -int LSF_check( /* (o) 1 for stable lsf vectors and 0 for nonstable ones */ - float *lsf, /* (i) a table of lsf vectors */ - int dim, /* (i) the dimension of each lsf vector */ - int NoAn); /* (i) the number of lsf vectors in the table */ - -#endif diff --git a/libs/ilbc/src/hpInput.c b/libs/ilbc/src/hpInput.c deleted file mode 100644 index 0445d21d46..0000000000 --- a/libs/ilbc/src/hpInput.c +++ /dev/null @@ -1,70 +0,0 @@ -/* - * iLBC - a library for the iLBC codec - * - * hpInput.c - The iLBC low bit rate speech codec. - * - * Adapted by Steve Underwood from the reference - * iLBC code supplied in RFC3951. - * - * Original code Copyright (C) The Internet Society (2004). - * All changes to produce this version Copyright (C) 2008 by Steve Underwood - * All Rights Reserved. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Id: hpInput.c,v 1.2 2008/03/06 12:27:38 steveu Exp $ - */ - -/*! \file */ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include - -#include "constants.h" -#include "hpInput.h" - -/*----------------------------------------------------------------* - * Input high-pass filter - *---------------------------------------------------------------*/ - -void hpInput(const float *In, /* (i) vector to filter */ - int len, /* (i) length of vector to filter */ - float *Out, /* (o) the resulting filtered vector */ - float *mem) /* (i/o) the filter state */ -{ - int i; - const float *pi; - float *po; - - /* all-zero section*/ - pi = &In[0]; - po = &Out[0]; - for (i = 0; i < len; i++) - { - *po = hpi_zero_coefsTbl[0]*(*pi); - *po += hpi_zero_coefsTbl[1]*mem[0]; - *po += hpi_zero_coefsTbl[2]*mem[1]; - - mem[1] = mem[0]; - mem[0] = *pi; - po++; - pi++; - } - - /* all-pole section*/ - po = &Out[0]; - for (i = 0; i < len; i++) - { - *po -= hpi_pole_coefsTbl[1]*mem[2]; - *po -= hpi_pole_coefsTbl[2]*mem[3]; - - mem[3] = mem[2]; - mem[2] = *po; - po++; - } -} diff --git a/libs/ilbc/src/hpInput.h b/libs/ilbc/src/hpInput.h deleted file mode 100644 index 3aed4d4fe9..0000000000 --- a/libs/ilbc/src/hpInput.h +++ /dev/null @@ -1,28 +0,0 @@ -/* - * iLBC - a library for the iLBC codec - * - * hpInput.h - The iLBC low bit rate speech codec. - * - * Adapted by Steve Underwood from the reference - * iLBC code supplied in RFC3951. - * - * Original code Copyright (C) The Internet Society (2004). - * All changes to produce this version Copyright (C) 2008 by Steve Underwood - * All Rights Reserved. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Id: hpInput.h,v 1.2 2008/03/06 12:27:38 steveu Exp $ - */ - -#ifndef __iLBC_HPINPUT_H -#define __iLBC_HPINPUT_H - -void hpInput(const float *In, /* (i) vector to filter */ - int len, /* (i) length of vector to filter */ - float *Out, /* (o) the resulting filtered vector */ - float *mem); /* (i/o) the filter state */ - -#endif diff --git a/libs/ilbc/src/hpOutput.c b/libs/ilbc/src/hpOutput.c deleted file mode 100644 index f5fa227280..0000000000 --- a/libs/ilbc/src/hpOutput.c +++ /dev/null @@ -1,70 +0,0 @@ -/* - * iLBC - a library for the iLBC codec - * - * hpOutput.c - The iLBC low bit rate speech codec. - * - * Adapted by Steve Underwood from the reference - * iLBC code supplied in RFC3951. - * - * Original code Copyright (C) The Internet Society (2004). - * All changes to produce this version Copyright (C) 2008 by Steve Underwood - * All Rights Reserved. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Id: hpOutput.c,v 1.2 2008/03/06 12:27:38 steveu Exp $ - */ - -/*! \file */ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include - -#include "constants.h" -#include "hpOutput.h" - -/*----------------------------------------------------------------* - * Output high-pass filter - *---------------------------------------------------------------*/ - -void hpOutput(float *In, /* (i) vector to filter */ - int len, /* (i) length of vector to filter */ - float *Out, /* (o) the resulting filtered vector */ - float *mem) /* (i/o) the filter state */ -{ - int i; - float *pi; - float *po; - - /* all-zero section*/ - pi = &In[0]; - po = &Out[0]; - for (i = 0; i < len; i++) - { - *po = hpo_zero_coefsTbl[0]*(*pi); - *po += hpo_zero_coefsTbl[1]*mem[0]; - *po += hpo_zero_coefsTbl[2]*mem[1]; - - mem[1] = mem[0]; - mem[0] = *pi; - po++; - pi++; - } - - /* all-pole section*/ - po = &Out[0]; - for (i = 0; i < len; i++) - { - *po -= hpo_pole_coefsTbl[1]*mem[2]; - *po -= hpo_pole_coefsTbl[2]*mem[3]; - - mem[3] = mem[2]; - mem[2] = *po; - po++; - } -} diff --git a/libs/ilbc/src/hpOutput.h b/libs/ilbc/src/hpOutput.h deleted file mode 100644 index a110c51264..0000000000 --- a/libs/ilbc/src/hpOutput.h +++ /dev/null @@ -1,28 +0,0 @@ -/* - * iLBC - a library for the iLBC codec - * - * hpOutput.h - The iLBC low bit rate speech codec. - * - * Adapted by Steve Underwood from the reference - * iLBC code supplied in RFC3951. - * - * Original code Copyright (C) The Internet Society (2004). - * All changes to produce this version Copyright (C) 2008 by Steve Underwood - * All Rights Reserved. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Id: hpOutput.h,v 1.2 2008/03/06 12:27:38 steveu Exp $ - */ - -#ifndef __iLBC_HPOUTPUT_H -#define __iLBC_HPOUTPUT_H - -void hpOutput(float *In, /* (i) vector to filter */ - int len, /* (i) length of vector to filter */ - float *Out, /* (o) the resulting filtered vector */ - float *mem); /* (i/o) the filter state */ - -#endif diff --git a/libs/ilbc/src/iCBConstruct.c b/libs/ilbc/src/iCBConstruct.c deleted file mode 100644 index d56e13451f..0000000000 --- a/libs/ilbc/src/iCBConstruct.c +++ /dev/null @@ -1,117 +0,0 @@ -/* - * iLBC - a library for the iLBC codec - * - * iCBConstruct.c - The iLBC low bit rate speech codec. - * - * Adapted by Steve Underwood from the reference - * iLBC code supplied in RFC3951. - * - * Original code Copyright (C) The Internet Society (2004). - * All changes to produce this version Copyright (C) 2008 by Steve Underwood - * All Rights Reserved. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Id: iCBConstruct.c,v 1.2 2008/03/06 12:27:38 steveu Exp $ - */ - -/*! \file */ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include -#include - -#include "ilbc.h" -#include "gainquant.h" -#include "getCBvec.h" -#include "iCBConstruct.h" - -/*----------------------------------------------------------------* - * Convert the codebook indexes to make the search easier - *---------------------------------------------------------------*/ - -void index_conv_enc(int *index) /* (i/o) Codebook indexes */ -{ - int k; - - for (k = 1; k < CB_NSTAGES; k++) - { - if ((index[k] >= 108) && (index[k] < 172)) - { - index[k] -= 64; - } - else if (index[k] >= 236) - { - index[k] -= 128; - } - else - { - /* ERROR */ - } - } -} - -void index_conv_dec(int *index) /* (i/o) Codebook indexes */ -{ - int k; - - for (k = 1; k < CB_NSTAGES; k++) - { - if ((index[k] >= 44) && (index[k] < 108)) - { - index[k] += 64; - } - else if ((index[k] >= 108) && (index[k] < 128)) - { - index[k] += 128; - } - else - { - /* ERROR */ - } - } -} - -/*----------------------------------------------------------------* - * Construct decoded vector from codebook and gains. - *---------------------------------------------------------------*/ - -void iCBConstruct(float *decvector, /* (o) Decoded vector */ - int *index, /* (i) Codebook indices */ - int *gain_index, /* (i) Gain quantization indices */ - float *mem, /* (i) Buffer for codevector construction */ - int lMem, /* (i) Length of buffer */ - int veclen, /* (i) Length of vector */ - int nStages) /* (i) Number of codebook stages */ -{ - int j; - int k; - float gain[CB_NSTAGES]; - float cbvec[SUBL]; - - /* Gain de-quantization */ - gain[0] = gaindequant(gain_index[0], 1.0, 32); - if (nStages > 1) - gain[1] = gaindequant(gain_index[1], fabsf(gain[0]), 16); - if (nStages > 2) - gain[2] = gaindequant(gain_index[2], fabsf(gain[1]), 8); - - /* Codebook vector construction and construction of total vector */ - getCBvec(cbvec, mem, index[0], lMem, veclen); - for (j = 0; j < veclen; j++) - decvector[j] = gain[0]*cbvec[j]; - if (nStages > 1) - { - for (k = 1; k < nStages; k++) - { - getCBvec(cbvec, mem, index[k], lMem, veclen); - for (j = 0; j < veclen; j++) - decvector[j] += gain[k]*cbvec[j]; - } - } -} diff --git a/libs/ilbc/src/iCBConstruct.h b/libs/ilbc/src/iCBConstruct.h deleted file mode 100644 index 2dfbf7d955..0000000000 --- a/libs/ilbc/src/iCBConstruct.h +++ /dev/null @@ -1,35 +0,0 @@ -/* - * iLBC - a library for the iLBC codec - * - * iCBConstruct.h - The iLBC low bit rate speech codec. - * - * Adapted by Steve Underwood from the reference - * iLBC code supplied in RFC3951. - * - * Original code Copyright (C) The Internet Society (2004). - * All changes to produce this version Copyright (C) 2008 by Steve Underwood - * All Rights Reserved. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Id: iCBConstruct.h,v 1.2 2008/03/06 12:27:38 steveu Exp $ - */ - -#ifndef __iLBC_ICBCONSTRUCT_H -#define __iLBC_ICBCONSTRUCT_H - -void index_conv_enc(int *index); /* (i/o) Codebook indexes */ - -void index_conv_dec(int *index); /* (i/o) Codebook indexes */ - -void iCBConstruct(float *decvector, /* (o) Decoded vector */ - int *index, /* (i) Codebook indices */ - int *gain_index, /* (i) Gain quantization indices */ - float *mem, /* (i) Buffer for codevector construction */ - int lMem, /* (i) Length of buffer */ - int veclen, /* (i) Length of vector */ - int nStages); /* (i) Number of codebook stages */ - -#endif diff --git a/libs/ilbc/src/iCBSearch.c b/libs/ilbc/src/iCBSearch.c deleted file mode 100644 index 2b40ed8077..0000000000 --- a/libs/ilbc/src/iCBSearch.c +++ /dev/null @@ -1,478 +0,0 @@ -/* - * iLBC - a library for the iLBC codec - * - * iCBSearch.c - The iLBC low bit rate speech codec. - * - * Adapted by Steve Underwood from the reference - * iLBC code supplied in RFC3951. - * - * Original code Copyright (C) The Internet Society (2004). - * All changes to produce this version Copyright (C) 2008 by Steve Underwood - * All Rights Reserved. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Id: iCBSearch.c,v 1.2 2008/03/06 12:27:38 steveu Exp $ - */ - -/*! \file */ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include -#include -#include - -#include "ilbc.h" -#include "gainquant.h" -#include "createCB.h" -#include "filter.h" -#include "constants.h" -#include "iCBSearch.h" - -/*----------------------------------------------------------------* - * Search routine for codebook encoding and gain quantization. - *---------------------------------------------------------------*/ - -void iCBSearch(ilbc_encode_state_t *iLBCenc_inst, /* (i) the encoder state structure */ - int *index, /* (o) Codebook indices */ - int *gain_index, /* (o) Gain quantization indices */ - float *intarget, /* (i) Target vector for encoding */ - float *mem, /* (i) Buffer for codebook construction */ - int lMem, /* (i) Length of buffer */ - int lTarget, /* (i) Length of vector */ - int nStages, /* (i) Number of codebook stages */ - float *weightDenum, /* (i) weighting filter coefficients */ - float *weightState, /* (i) weighting filter state */ - int block) /* (i) the sub-block number */ -{ - int i; - int j; - int icount; - int stage; - int best_index; - int range; - int counter; - float max_measure; - float gain; - float measure; - float crossDot; - float ftmp; - float gains[CB_NSTAGES]; - float target[SUBL]; - int base_index; - int sInd; - int eInd; - int base_size; - int sIndAug = 0; - int eIndAug = 0; - float buf[CB_MEML + SUBL + 2*ILBC_LPC_FILTERORDER]; - float invenergy[CB_EXPAND*128]; - float energy[CB_EXPAND*128]; - float *pp; - float *ppi = 0; - float *ppo = 0; - float *ppe = 0; - float cbvectors[CB_MEML]; - float tene; - float cene; - float cvec[SUBL]; - float aug_vec[SUBL]; - - memset(cvec, 0, SUBL*sizeof(float)); - - /* Determine size of codebook sections */ - base_size = lMem - lTarget + 1; - - if (lTarget == SUBL) - base_size = lMem - lTarget + 1 + lTarget/2; - - /* setup buffer for weighting */ - memcpy(buf, weightState, sizeof(float)*ILBC_LPC_FILTERORDER); - memcpy(buf + ILBC_LPC_FILTERORDER, mem, lMem*sizeof(float)); - memcpy(buf + ILBC_LPC_FILTERORDER + lMem, intarget, lTarget*sizeof(float)); - - /* weighting */ - AllPoleFilter(buf + ILBC_LPC_FILTERORDER, weightDenum, lMem + lTarget, ILBC_LPC_FILTERORDER); - - /* Construct the codebook and target needed */ - memcpy(target, buf + ILBC_LPC_FILTERORDER + lMem, lTarget*sizeof(float)); - - tene = 0.0f; - for (i = 0; i < lTarget; i++) - tene += target[i]*target[i]; - - /* Prepare search over one more codebook section. This section - is created by filtering the original buffer with a filter. */ - - filteredCBvecs(cbvectors, buf + ILBC_LPC_FILTERORDER, lMem); - - /* The Main Loop over stages */ - for (stage = 0; stage < nStages; stage++) - { - range = search_rangeTbl[block][stage]; - - /* initialize search measure */ - max_measure = -10000000.0f; - gain = 0.0f; - best_index = 0; - - /* Compute cross dot product between the target and the CB memory */ - - crossDot = 0.0f; - pp = buf + ILBC_LPC_FILTERORDER + lMem - lTarget; - for (j = 0; j < lTarget; j++) - { - crossDot += target[j]*(*pp++); - } - - if (stage == 0) - { - /* Calculate energy in the first block of 'lTarget' samples. */ - ppe = energy; - ppi = buf + ILBC_LPC_FILTERORDER + lMem - lTarget - 1; - ppo = buf + ILBC_LPC_FILTERORDER + lMem - 1; - - *ppe = 0.0f; - pp = buf + ILBC_LPC_FILTERORDER + lMem - lTarget; - for (j = 0; j < lTarget; j++, pp++) - *ppe += (*pp)*(*pp); - - if (*ppe > 0.0) - { - invenergy[0] = 1.0f/(*ppe + EPS); - } - else - { - invenergy[0] = 0.0f; - } - ppe++; - - measure = -10000000.0f; - - if (crossDot > 0.0f) - measure = crossDot*crossDot*invenergy[0]; - } - else - { - measure = crossDot*crossDot*invenergy[0]; - } - - /* Check if measure is better */ - ftmp = crossDot*invenergy[0]; - - if ((measure>max_measure) && (fabs(ftmp) < CB_MAXGAIN)) - { - best_index = 0; - max_measure = measure; - gain = ftmp; - } - - /* loop over the main first codebook section, full search */ - for (icount = 1; icount < range; icount++) - { - /* calculate measure */ - crossDot = 0.0f; - pp = buf + ILBC_LPC_FILTERORDER + lMem - lTarget - icount; - - for (j = 0; j < lTarget; j++) - crossDot += target[j]*(*pp++); - - if (stage == 0) - { - *ppe++ = energy[icount-1] + (*ppi)*(*ppi) - (*ppo)*(*ppo); - ppo--; - ppi--; - - if (energy[icount] > 0.0f) - { - invenergy[icount] = 1.0f/(energy[icount] + EPS); - } - else - { - invenergy[icount] = 0.0f; - } - measure = -10000000.0f; - - if (crossDot > 0.0f) - measure = crossDot*crossDot*invenergy[icount]; - } - else - { - measure = crossDot*crossDot*invenergy[icount]; - } - - /* check if measure is better */ - ftmp = crossDot*invenergy[icount]; - - if ((measure > max_measure) && (fabs(ftmp) < CB_MAXGAIN)) - { - best_index = icount; - max_measure = measure; - gain = ftmp; - } - } - - /* Loop over augmented part in the first codebook - * section, full search. - * The vectors are interpolated. - */ - if (lTarget == SUBL) - { - /* Search for best possible cb vector and compute the CB-vectors' energy. */ - searchAugmentedCB(20, 39, stage, base_size - lTarget/2, - target, buf + ILBC_LPC_FILTERORDER + lMem, - &max_measure, &best_index, &gain, energy, - invenergy); - } - - /* set search range for following codebook sections */ - base_index = best_index; - - /* unrestricted search */ - if (CB_RESRANGE == -1) - { - sInd = 0; - eInd = range - 1; - sIndAug = 20; - eIndAug = 39; - } - /* restricted search around best index from first codebook section */ - else - { - /* Initialize search indices */ - sIndAug = 0; - eIndAug = 0; - sInd = base_index - CB_RESRANGE/2; - eInd = sInd + CB_RESRANGE; - - if (lTarget == SUBL) - { - if (sInd < 0) - { - sIndAug = 40 + sInd; - eIndAug = 39; - sInd=0; - } - else if (base_index < (base_size - 20)) - { - if (eInd > range) - { - sInd -= (eInd-range); - eInd = range; - } - } - else - { - /* base_index >= (base_size-20) */ - if (sInd < (base_size - 20)) - { - sIndAug = 20; - sInd = 0; - eInd = 0; - eIndAug = 19 + CB_RESRANGE; - - if (eIndAug > 39) - { - eInd = eIndAug - 39; - eIndAug = 39; - } - } - else - { - sIndAug = 20 + sInd - (base_size - 20); - eIndAug = 39; - sInd = 0; - eInd = CB_RESRANGE - (eIndAug - sIndAug + 1); - } - } - - } - else - { - /* lTarget = 22 or 23 */ - if (sInd < 0) - { - eInd -= sInd; - sInd = 0; - } - - if (eInd > range) - { - sInd -= (eInd - range); - eInd = range; - } - } - } - - /* search of higher codebook section */ - - /* index search range */ - counter = sInd; - sInd += base_size; - eInd += base_size; - - - if (stage == 0) - { - ppe = energy+base_size; - *ppe = 0.0f; - pp = cbvectors + lMem - lTarget; - for (j = 0; j < lTarget; j++, pp++) - *ppe += (*pp)*(*pp); - - ppi = cbvectors + lMem - 1 - lTarget; - ppo = cbvectors + lMem - 1; - - for (j = 0; j < (range - 1); j++) - { - *(ppe+1) = *ppe + (*ppi)*(*ppi) - (*ppo)*(*ppo); - ppo--; - ppi--; - ppe++; - } - } - - /* loop over search range */ - for (icount = sInd; icount < eInd; icount++) - { - /* calculate measure */ - crossDot = 0.0f; - pp = cbvectors + lMem - (counter++) - lTarget; - - for (j = 0; j < lTarget; j++) - crossDot += target[j]*(*pp++); - - if (energy[icount] > 0.0f) - invenergy[icount] = 1.0f/(energy[icount] + EPS); - else - invenergy[icount] = 0.0f; - - if (stage == 0) - { - - measure = -10000000.0f; - - if (crossDot > 0.0f) - measure = crossDot*crossDot*invenergy[icount]; - } - else - { - measure = crossDot*crossDot*invenergy[icount]; - } - - /* check if measure is better */ - ftmp = crossDot*invenergy[icount]; - - if ((measure > max_measure) && (fabs(ftmp) < CB_MAXGAIN)) - { - best_index = icount; - max_measure = measure; - gain = ftmp; - } - } - - /* Search the augmented CB inside the limited range. */ - if ((lTarget == SUBL) && (sIndAug != 0)) - { - searchAugmentedCB(sIndAug, eIndAug, stage, - 2*base_size-20, target, cbvectors + lMem, - &max_measure, &best_index, &gain, energy, - invenergy); - } - - /* record best index */ - index[stage] = best_index; - - /* gain quantization */ - if (stage == 0) - { - if (gain < 0.0f) - gain = 0.0f; - - if (gain > CB_MAXGAIN) - gain = (float) CB_MAXGAIN; - gain = gainquant(gain, 1.0, 32, &gain_index[stage]); - } - else - { - if (stage == 1) - gain = gainquant(gain, fabsf(gains[stage - 1]), 16, &gain_index[stage]); - else - gain = gainquant(gain, fabsf(gains[stage - 1]), 8, &gain_index[stage]); - } - - /* Extract the best (according to measure) codebook vector */ - if (lTarget == (STATE_LEN - iLBCenc_inst->state_short_len)) - { - if (index[stage] < base_size) - pp = buf + ILBC_LPC_FILTERORDER + lMem - lTarget - index[stage]; - else - pp = cbvectors + lMem - lTarget - index[stage] + base_size; - } - else - { - if (index[stage] < base_size) - { - if (index[stage] < (base_size - 20)) - { - pp = buf + ILBC_LPC_FILTERORDER + lMem - lTarget - index[stage]; - } - else - { - createAugmentedVec(index[stage] - base_size + 40, - buf + ILBC_LPC_FILTERORDER + lMem, - aug_vec); - pp = aug_vec; - } - } - else - { - int filterno, position; - - filterno = index[stage]/base_size; - position = index[stage] - filterno*base_size; - if (position < (base_size - 20)) - { - pp = cbvectors + filterno*lMem - lTarget - index[stage] + filterno*base_size; - } - else - { - createAugmentedVec(index[stage] - (filterno + 1)*base_size + 40, - cbvectors + filterno*lMem, - aug_vec); - pp = aug_vec; - } - } - } - - /* Subtract the best codebook vector, according to measure, from the target vector */ - for (j = 0; j < lTarget; j++) - { - cvec[j] += gain*(*pp); - target[j] -= gain*(*pp++); - } - - /* record quantized gain */ - gains[stage] = gain; - } - - /* Gain adjustment for energy matching */ - cene = 0.0f; - for (i = 0; i < lTarget; i++) - cene += cvec[i]*cvec[i]; - j = gain_index[0]; - - for (i = gain_index[0]; i < 32; i++) - { - ftmp = cene*gain_sq5Tbl[i]*gain_sq5Tbl[i]; - - if ((ftmp < (tene*gains[0]*gains[0])) && (gain_sq5Tbl[j] < (2.0*gains[0]))) - j = i; - } - gain_index[0] = j; -} diff --git a/libs/ilbc/src/iCBSearch.h b/libs/ilbc/src/iCBSearch.h deleted file mode 100644 index 8fc26b1938..0000000000 --- a/libs/ilbc/src/iCBSearch.h +++ /dev/null @@ -1,35 +0,0 @@ -/* - * iLBC - a library for the iLBC codec - * - * iCBSearch.h - The iLBC low bit rate speech codec. - * - * Adapted by Steve Underwood from the reference - * iLBC code supplied in RFC3951. - * - * Original code Copyright (C) The Internet Society (2004). - * All changes to produce this version Copyright (C) 2008 by Steve Underwood - * All Rights Reserved. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Id: iCBSearch.h,v 1.2 2008/03/06 12:27:38 steveu Exp $ - */ - -#ifndef __iLBC_ICBSEARCH_H -#define __iLBC_ICBSEARCH_H - -void iCBSearch(ilbc_encode_state_t *iLBCenc_inst, /* (i) the encoder state structure */ - int *index, /* (o) Codebook indices */ - int *gain_index, /* (o) Gain quantization indices */ - float *intarget, /* (i) Target vector for encoding */ - float *mem, /* (i) Buffer for codebook construction */ - int lMem, /* (i) Length of buffer */ - int lTarget, /* (i) Length of vector */ - int nStages, /* (i) Number of codebook stages */ - float *weightDenum, /* (i) weighting filter coefficients */ - float *weightState, /* (i) weighting filter state */ - int block); /* (i) the sub-block number */ - -#endif diff --git a/libs/ilbc/src/iLBC_decode.c b/libs/ilbc/src/iLBC_decode.c deleted file mode 100644 index b9c21aa598..0000000000 --- a/libs/ilbc/src/iLBC_decode.c +++ /dev/null @@ -1,646 +0,0 @@ -/* - * iLBC - a library for the iLBC codec - * - * iLBC_decode.c - The iLBC low bit rate speech codec. - * - * Adapted by Steve Underwood from the reference - * iLBC code supplied in RFC3951. - * - * Original code Copyright (C) The Internet Society (2004). - * All changes to produce this version Copyright (C) 2008 by Steve Underwood - * All Rights Reserved. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Id: iLBC_decode.c,v 1.2 2008/03/06 12:27:38 steveu Exp $ - */ - -/*! \file */ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include -#include -#include - -#include "ilbc.h" -#include "StateConstructW.h" -#include "LPCdecode.h" -#include "iCBConstruct.h" -#include "doCPLC.h" -#include "helpfun.h" -#include "constants.h" -#include "packing.h" -#include "string.h" -#include "enhancer.h" -#include "hpOutput.h" -#include "syntFilter.h" - -#if (defined(WIN32) || defined(_WIN32)) && (_MSC_VER < 1800) -#if (defined(WIN32) || defined(_WIN32)) && !defined(_WIN64) - __inline long int rint(double dbl) - { - _asm - { - fld dbl - frndint - fstp dbl - } - return (long int) dbl; - } -#elif defined (_WIN64) -#include - __inline__ long int rint(double x) - { -#ifdef _M_X64 - return (long int)_mm_cvtsd_si64x( _mm_loadu_pd ((const double*)&x) ); -#else -#warning "Not Supported: Replacing with a simple C cast." - return (long int) (x); -#endif - } -#endif -#endif - -/*----------------------------------------------------------------* - * frame residual decoder function (subrutine to iLBC_decode) - *---------------------------------------------------------------*/ - -static void Decode(ilbc_decode_state_t *iLBCdec_inst, /* (i/o) the decoder state structure */ - float *decresidual, /* (o) decoded residual frame */ - int start, /* (i) location of start state */ - int idxForMax, /* (i) codebook index for the maximum value */ - int *idxVec, /* (i) codebook indexes for the samples in the - start state */ - float *syntdenum, /* (i) the decoded synthesis filter coefficients */ - int *cb_index, /* (i) the indexes for the adaptive codebook */ - int *gain_index, /* (i) the indexes for the corresponding gains */ - int *extra_cb_index, /* (i) the indexes for the adaptive codebook part - of start state */ - int *extra_gain_index, /* (i) the indexes for the corresponding gains */ - int state_first) /* (i) 1 if non adaptive part of start state comes - first. 0 if that part comes last */ -{ - float reverseDecresidual[ILBC_BLOCK_LEN_MAX]; - float mem[CB_MEML]; - int k; - int meml_gotten; - int Nfor; - int Nback; - int i; - int diff; - int start_pos; - int subcount; - int subframe; - - diff = STATE_LEN - iLBCdec_inst->state_short_len; - - if (state_first == 1) - start_pos = (start - 1)*SUBL; - else - start_pos = (start - 1)*SUBL + diff; - - /* decode scalar part of start state */ - StateConstructW(idxForMax, - idxVec, - &syntdenum[(start - 1)*(ILBC_LPC_FILTERORDER + 1)], - &decresidual[start_pos], - iLBCdec_inst->state_short_len); - - if (state_first) - { - /* put adaptive part in the end */ - - /* setup memory */ - memset(mem, 0, (CB_MEML - iLBCdec_inst->state_short_len)*sizeof(float)); - memcpy(&mem[CB_MEML - iLBCdec_inst->state_short_len], - decresidual + start_pos, - iLBCdec_inst->state_short_len*sizeof(float)); - - /* construct decoded vector */ - iCBConstruct(&decresidual[start_pos+iLBCdec_inst->state_short_len], - extra_cb_index, extra_gain_index, mem+CB_MEML-stMemLTbl, - stMemLTbl, - diff, - CB_NSTAGES); - } - else - { - /* Put adaptive part in the beginning */ - - /* Create reversed vectors for prediction */ - for (k = 0; k < diff; k++) - { - reverseDecresidual[k] = - decresidual[(start + 1)*SUBL - 1 - (k + iLBCdec_inst->state_short_len)]; - } - - /* Setup memory */ - - meml_gotten = iLBCdec_inst->state_short_len; - for (k = 0; k < meml_gotten; k++) - mem[CB_MEML - 1 - k] = decresidual[start_pos + k]; - memset(mem, 0, (CB_MEML - k)*sizeof(float)); - - /* Construct decoded vector */ - iCBConstruct(reverseDecresidual, extra_cb_index, - extra_gain_index, - mem + CB_MEML - stMemLTbl, - stMemLTbl, - diff, - CB_NSTAGES); - - /* Get decoded residual from reversed vector */ - for (k = 0; k < diff; k++) - decresidual[start_pos - 1 - k] = reverseDecresidual[k]; - } - - /* Counter for predicted sub-frames */ - subcount = 0; - - /* Forward prediction of sub-frames */ - Nfor = iLBCdec_inst->nsub-start - 1; - - if (Nfor > 0) - { - /* Setup memory */ - memset(mem, 0, (CB_MEML - STATE_LEN)*sizeof(float)); - memcpy(&mem[CB_MEML - STATE_LEN], decresidual + (start - 1)*SUBL, STATE_LEN*sizeof(float)); - - /* Loop over sub-frames to encode */ - for (subframe = 0; subframe < Nfor; subframe++) - { - /* Construct decoded vector */ - iCBConstruct(&decresidual[(start + 1 + subframe)*SUBL], - cb_index+subcount*CB_NSTAGES, - gain_index+subcount*CB_NSTAGES, - mem + CB_MEML - memLfTbl[subcount], - memLfTbl[subcount], - SUBL, - CB_NSTAGES); - - /* Update memory */ - memmove(mem, &mem[SUBL], (CB_MEML - SUBL)*sizeof(float)); - memmove(&mem[CB_MEML - SUBL], - &decresidual[(start + 1 + subframe)*SUBL], - SUBL*sizeof(float)); - - subcount++; - } - } - - /* Backward prediction of sub-frames */ - Nback = start - 1; - - if (Nback > 0) - { - /* Setup memory */ - meml_gotten = SUBL*(iLBCdec_inst->nsub + 1 - start); - - if (meml_gotten > CB_MEML) - meml_gotten = CB_MEML; - for (k = 0; k < meml_gotten; k++) - mem[CB_MEML - 1 - k] = decresidual[(start - 1)*SUBL + k]; - memset(mem, 0, (CB_MEML - k)*sizeof(float)); - - /* Loop over subframes to decode */ - for (subframe = 0; subframe < Nback; subframe++) - { - /* Construct decoded vector */ - iCBConstruct(&reverseDecresidual[subframe*SUBL], - cb_index + subcount*CB_NSTAGES, - gain_index + subcount*CB_NSTAGES, - mem + CB_MEML - memLfTbl[subcount], - memLfTbl[subcount], - SUBL, - CB_NSTAGES); - - /* Update memory */ - memmove(mem, &mem[SUBL], (CB_MEML - SUBL)*sizeof(float)); - memmove(&mem[CB_MEML - SUBL], - &reverseDecresidual[subframe*SUBL], - SUBL*sizeof(float)); - - subcount++; - } - - /* Get decoded residual from reversed vector */ - for (i = 0; i < SUBL*Nback; i++) - decresidual[SUBL*Nback - i - 1] = reverseDecresidual[i]; - } -} - -/*----------------------------------------------------------------* - * main decoder function - *---------------------------------------------------------------*/ - -static void ilbc_decode_frame(ilbc_decode_state_t *iLBCdec_inst, /* (i/o) the decoder state structure */ - float decblock[], /* (o) decoded signal block */ - const uint8_t bytes[], /* (i) encoded signal bits */ - int mode) /* (i) 0: bad packet, PLC, 1: normal */ -{ - float data[ILBC_BLOCK_LEN_MAX]; - float lsfdeq[ILBC_LPC_FILTERORDER*LPC_N_MAX]; - float PLCresidual[ILBC_BLOCK_LEN_MAX]; - float PLClpc[ILBC_LPC_FILTERORDER + 1]; - float zeros[ILBC_BLOCK_LEN_MAX]; - float one[ILBC_LPC_FILTERORDER + 1]; - int k; - int i; - int start; - int idxForMax; - int pos; - int lastpart; - int ulp; - int lag; - int ilag; - float cc; - float maxcc; - int idxVec[STATE_LEN]; - int gain_index[NASUB_MAX*CB_NSTAGES]; - int extra_gain_index[CB_NSTAGES]; - int cb_index[CB_NSTAGES*NASUB_MAX]; - int extra_cb_index[CB_NSTAGES]; - int lsf_i[LSF_NSPLIT*LPC_N_MAX]; - int state_first; - int last_bit; - const uint8_t *pbytes; - float weightdenum[(ILBC_LPC_FILTERORDER + 1)*ILBC_NUM_SUB_MAX]; - int order_plus_one; - float syntdenum[ILBC_NUM_SUB_MAX*(ILBC_LPC_FILTERORDER + 1)]; - float decresidual[ILBC_BLOCK_LEN_MAX]; - - if (mode > 0) - { - /* The data is good. decode it. */ - pbytes = bytes; - pos = 0; - - /* Set everything to zero before decoding */ - for (k = 0; k < LSF_NSPLIT*LPC_N_MAX; k++) - lsf_i[k] = 0; - start = 0; - state_first = 0; - idxForMax = 0; - for (k = 0; k < iLBCdec_inst->state_short_len; k++) - idxVec[k] = 0; - for (k = 0; k < CB_NSTAGES; k++) - { - extra_cb_index[k] = 0; - extra_gain_index[k] = 0; - } - for (i = 0; i < iLBCdec_inst->nasub; i++) - { - for (k = 0; k < CB_NSTAGES; k++) - { - cb_index[i*CB_NSTAGES + k] = 0; - gain_index[i*CB_NSTAGES + k] = 0; - } - } - - /* Loop over ULP classes */ - for (ulp = 0; ulp < 3; ulp++) - { - /* LSF */ - for (k = 0; k < LSF_NSPLIT*iLBCdec_inst->lpc_n; k++) - { - unpack(&pbytes, &lastpart, iLBCdec_inst->ULP_inst->lsf_bits[k][ulp], &pos); - packcombine(&lsf_i[k], lastpart, iLBCdec_inst->ULP_inst->lsf_bits[k][ulp]); - } - - /* Start block info */ - unpack(&pbytes, &lastpart, iLBCdec_inst->ULP_inst->start_bits[ulp], &pos); - packcombine(&start, lastpart, iLBCdec_inst->ULP_inst->start_bits[ulp]); - - unpack(&pbytes, &lastpart, iLBCdec_inst->ULP_inst->startfirst_bits[ulp], &pos); - packcombine(&state_first, lastpart, iLBCdec_inst->ULP_inst->startfirst_bits[ulp]); - - unpack(&pbytes, &lastpart, iLBCdec_inst->ULP_inst->scale_bits[ulp], &pos); - packcombine(&idxForMax, lastpart, iLBCdec_inst->ULP_inst->scale_bits[ulp]); - - for (k = 0; k < iLBCdec_inst->state_short_len; k++) - { - unpack(&pbytes, &lastpart, iLBCdec_inst->ULP_inst->state_bits[ulp], &pos); - packcombine(idxVec + k, lastpart, iLBCdec_inst->ULP_inst->state_bits[ulp]); - } - - /* 23/22 (20ms/30ms) sample block */ - for (k = 0; k < CB_NSTAGES; k++) - { - unpack(&pbytes, &lastpart, iLBCdec_inst->ULP_inst->extra_cb_index[k][ulp], &pos); - packcombine(extra_cb_index + k, lastpart, iLBCdec_inst->ULP_inst->extra_cb_index[k][ulp]); - } - for (k = 0; k < CB_NSTAGES; k++) - { - unpack(&pbytes, &lastpart, iLBCdec_inst->ULP_inst->extra_cb_gain[k][ulp], &pos); - packcombine(extra_gain_index + k, lastpart, iLBCdec_inst->ULP_inst->extra_cb_gain[k][ulp]); - } - - /* The two/four (20ms/30ms) 40 sample sub-blocks */ - for (i = 0; i < iLBCdec_inst->nasub; i++) - { - for (k = 0; k < CB_NSTAGES; k++) - { - unpack(&pbytes, &lastpart, iLBCdec_inst->ULP_inst->cb_index[i][k][ulp], &pos); - packcombine(cb_index + i*CB_NSTAGES + k, lastpart, iLBCdec_inst->ULP_inst->cb_index[i][k][ulp]); - } - } - for (i = 0; i < iLBCdec_inst->nasub; i++) - { - for (k = 0; k < CB_NSTAGES; k++) - { - unpack(&pbytes, &lastpart, iLBCdec_inst->ULP_inst->cb_gain[i][k][ulp], &pos); - packcombine(gain_index + i*CB_NSTAGES + k, lastpart, iLBCdec_inst->ULP_inst->cb_gain[i][k][ulp]); - } - } - } - /* Extract last bit. If it is 1 this indicates an empty/lost frame */ - unpack(&pbytes, &last_bit, 1, &pos); - - /* Check for bit errors or empty/lost frames */ - if (start < 1) - mode = 0; - if (iLBCdec_inst->mode == 20 && start > 3) - mode = 0; - if (iLBCdec_inst->mode == 30 && start > 5) - mode = 0; - if (last_bit == 1) - mode = 0; - - if (mode == 1) - { - /* No bit errors was detected, continue decoding */ - - /* Adjust index */ - index_conv_dec(cb_index); - - /* Decode the LSF */ - SimplelsfDEQ(lsfdeq, lsf_i, iLBCdec_inst->lpc_n); - LSF_check(lsfdeq, ILBC_LPC_FILTERORDER, iLBCdec_inst->lpc_n); - DecoderInterpolateLSF(syntdenum, weightdenum, lsfdeq, ILBC_LPC_FILTERORDER, iLBCdec_inst); - - Decode(iLBCdec_inst, - decresidual, - start, - idxForMax, - idxVec, - syntdenum, - cb_index, - gain_index, - extra_cb_index, - extra_gain_index, - state_first); - - /* Preparing the plc for a future loss! */ - doThePLC(PLCresidual, - PLClpc, - 0, - decresidual, - syntdenum + (ILBC_LPC_FILTERORDER + 1)*(iLBCdec_inst->nsub - 1), - (*iLBCdec_inst).last_lag, - iLBCdec_inst); - - memcpy(decresidual, PLCresidual, iLBCdec_inst->blockl*sizeof(float)); - } - } - - if (mode == 0) - { - /* The data is bad (either a PLC call - * was made or a severe bit error was detected) - */ - - /* Apply packet loss concealmeant */ - memset(zeros, 0, ILBC_BLOCK_LEN_MAX*sizeof(float)); - - one[0] = 1; - memset(one + 1, 0, ILBC_LPC_FILTERORDER*sizeof(float)); - - start = 0; - - doThePLC(PLCresidual, PLClpc, 1, zeros, one, (*iLBCdec_inst).last_lag, iLBCdec_inst); - memcpy(decresidual, PLCresidual, iLBCdec_inst->blockl*sizeof(float)); - - order_plus_one = ILBC_LPC_FILTERORDER + 1; - for (i = 0; i < iLBCdec_inst->nsub; i++) - memcpy(&syntdenum[i*order_plus_one], PLClpc, order_plus_one*sizeof(float)); - } - - if (iLBCdec_inst->use_enhancer == 1) - { - /* Post filtering */ - iLBCdec_inst->last_lag = enhancerInterface(data, decresidual, iLBCdec_inst); - - /* Synthesis filtering */ - if (iLBCdec_inst->mode == 20) - { - /* Enhancer has 40 samples delay */ - i = 0; - syntFilter(data + i*SUBL, - iLBCdec_inst->old_syntdenum + (i + iLBCdec_inst->nsub - 1)*(ILBC_LPC_FILTERORDER + 1), - SUBL, - iLBCdec_inst->syntMem); - - for (i = 1; i < iLBCdec_inst->nsub; i++) - { - syntFilter(data + i*SUBL, - syntdenum + (i - 1)*(ILBC_LPC_FILTERORDER + 1), - SUBL, - iLBCdec_inst->syntMem); - } - } - else if (iLBCdec_inst->mode == 30) - { - /* Enhancer has 80 samples delay */ - for (i = 0; i < 2; i++) - { - syntFilter(data + i*SUBL, - iLBCdec_inst->old_syntdenum + (i + iLBCdec_inst->nsub - 2)*(ILBC_LPC_FILTERORDER+1), - SUBL, - iLBCdec_inst->syntMem); - } - for (i = 2; i < iLBCdec_inst->nsub; i++) - { - syntFilter(data + i*SUBL, - syntdenum + (i - 2)*(ILBC_LPC_FILTERORDER + 1), - SUBL, - iLBCdec_inst->syntMem); - } - } - } - else - { - /* Find last lag */ - lag = 20; - maxcc = xCorrCoef(&decresidual[ILBC_BLOCK_LEN_MAX - ENH_BLOCKL], - &decresidual[ILBC_BLOCK_LEN_MAX - ENH_BLOCKL - lag], - ENH_BLOCKL); - - for (ilag = 21; ilag < 120; ilag++) - { - cc = xCorrCoef(&decresidual[ILBC_BLOCK_LEN_MAX - ENH_BLOCKL], - &decresidual[ILBC_BLOCK_LEN_MAX - ENH_BLOCKL - ilag], - ENH_BLOCKL); - if (cc > maxcc) - { - maxcc = cc; - lag = ilag; - } - } - iLBCdec_inst->last_lag = lag; - - /* Copy data and run synthesis filter */ - memcpy(data, decresidual, iLBCdec_inst->blockl*sizeof(float)); - for (i = 0; i < iLBCdec_inst->nsub; i++) - { - syntFilter(data + i*SUBL, - syntdenum + i*(ILBC_LPC_FILTERORDER + 1), - SUBL, - iLBCdec_inst->syntMem); - } - } - - /* High pass filtering on output if desired, otherwise copy to out */ - hpOutput(data, iLBCdec_inst->blockl, decblock, iLBCdec_inst->hpomem); - - /* memcpy(decblock, data, iLBCdec_inst->blockl*sizeof(float));*/ - memcpy(iLBCdec_inst->old_syntdenum, - syntdenum, - iLBCdec_inst->nsub*(ILBC_LPC_FILTERORDER + 1)*sizeof(float)); - - iLBCdec_inst->prev_enh_pl = 0; - - if (mode == 0) - { - /* PLC was used */ - iLBCdec_inst->prev_enh_pl = 1; - } -} - -int ilbc_decode(ilbc_decode_state_t *s, /* (i/o) the decoder state structure */ - int16_t amp[], /* (o) decoded signal block */ - const uint8_t bytes[], /* (i) encoded signal bits */ - int len) -{ - int i; - int j; - int k; - float decblock[ILBC_BLOCK_LEN_MAX]; - float dtmp; - - for (i = 0, j = 0; j < len; i += s->blockl, j += s->no_of_bytes) - { - ilbc_decode_frame(s, decblock, bytes + j, 1); - /* Convert to int16_t */ - for (k = 0; k < s->blockl; k++) - { - dtmp = decblock[k]; - - if (dtmp < MIN_SAMPLE) - dtmp = MIN_SAMPLE; - else if (dtmp > MAX_SAMPLE) - dtmp = MAX_SAMPLE; - amp[i + k] = (int16_t) rint(dtmp); - } - } - return i; -} - -int ilbc_fillin(ilbc_decode_state_t *s, /* (i/o) the decoder state structure */ - int16_t amp[], /* (o) decoded signal block */ - int len) -{ - int i; - int j; - int k; - float decblock[ILBC_BLOCK_LEN_MAX]; - float dtmp; - - for (i = 0, j = 0; j < len; i += s->blockl, j += s->no_of_bytes) - { - ilbc_decode_frame(s, decblock, NULL, 0); - /* Convert to int16_t */ - for (k = 0; k < s->blockl; k++) - { - dtmp = decblock[k]; - - if (dtmp < MIN_SAMPLE) - dtmp = MIN_SAMPLE; - else if (dtmp > MAX_SAMPLE) - dtmp = MAX_SAMPLE; - amp[i + k] = (int16_t) rint(dtmp); - } - } - return i; -} - -ilbc_decode_state_t *ilbc_decode_init(ilbc_decode_state_t *iLBCdec_inst, /* (i/o) Decoder instance */ - int mode, /* (i) frame size mode */ - int use_enhancer) /* (i) 1 to use enhancer - 0 to run without enhancer */ -{ - int i; - - iLBCdec_inst->mode = mode; - - if (mode == 30) - { - iLBCdec_inst->blockl = ILBC_BLOCK_LEN_30MS; - iLBCdec_inst->nsub = NSUB_30MS; - iLBCdec_inst->nasub = NASUB_30MS; - iLBCdec_inst->lpc_n = LPC_N_30MS; - iLBCdec_inst->no_of_bytes = ILBC_NO_OF_BYTES_30MS; - iLBCdec_inst->state_short_len = STATE_SHORT_LEN_30MS; - /* ULP init */ - iLBCdec_inst->ULP_inst = &ULP_30msTbl; - } - else if (mode == 20) - { - iLBCdec_inst->blockl = ILBC_BLOCK_LEN_20MS; - iLBCdec_inst->nsub = NSUB_20MS; - iLBCdec_inst->nasub = NASUB_20MS; - iLBCdec_inst->lpc_n = LPC_N_20MS; - iLBCdec_inst->no_of_bytes = ILBC_NO_OF_BYTES_20MS; - iLBCdec_inst->state_short_len = STATE_SHORT_LEN_20MS; - /* ULP init */ - iLBCdec_inst->ULP_inst = &ULP_20msTbl; - } - else - { - return NULL; - } - - memset(iLBCdec_inst->syntMem, 0, ILBC_LPC_FILTERORDER*sizeof(float)); - memcpy((*iLBCdec_inst).lsfdeqold, lsfmeanTbl, ILBC_LPC_FILTERORDER*sizeof(float)); - - memset(iLBCdec_inst->old_syntdenum, - 0, - ((ILBC_LPC_FILTERORDER + 1)*ILBC_NUM_SUB_MAX)*sizeof(float)); - for (i = 0; i < ILBC_NUM_SUB_MAX; i++) - iLBCdec_inst->old_syntdenum[i*(ILBC_LPC_FILTERORDER + 1)] = 1.0f; - - iLBCdec_inst->last_lag = 20; - - iLBCdec_inst->prevLag = 120; - iLBCdec_inst->per = 0.0; - iLBCdec_inst->consPLICount = 0; - iLBCdec_inst->prevPLI = 0; - iLBCdec_inst->prevLpc[0] = 1.0f; - memset(iLBCdec_inst->prevLpc + 1, 0, ILBC_LPC_FILTERORDER*sizeof(float)); - memset(iLBCdec_inst->prevResidual, 0, ILBC_BLOCK_LEN_MAX*sizeof(float)); - iLBCdec_inst->seed = 777; - memset(iLBCdec_inst->hpomem, 0, 4*sizeof(float)); - - iLBCdec_inst->use_enhancer = use_enhancer; - memset(iLBCdec_inst->enh_buf, 0, ENH_BUFL*sizeof(float)); - for (i = 0; i < ENH_NBLOCKS_TOT; i++) - iLBCdec_inst->enh_period[i] = 40.0f; - - iLBCdec_inst->prev_enh_pl = 0; - - return iLBCdec_inst; -} diff --git a/libs/ilbc/src/iLBC_define.h b/libs/ilbc/src/iLBC_define.h deleted file mode 100644 index 4f268dd076..0000000000 --- a/libs/ilbc/src/iLBC_define.h +++ /dev/null @@ -1,107 +0,0 @@ -/* - * iLBC - a library for the iLBC codec - * - * iLBC_define.h - The head guy amongst the headers - * - * Adapted by Steve Underwood from the reference - * iLBC code supplied in RFC3951. - * - * Original code Copyright (C) The Internet Society (2004). - * All changes to produce this version Copyright (C) 2008 by Steve Underwood - * All Rights Reserved. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Id: iLBC_define.h,v 1.2 2008/03/06 12:27:38 steveu Exp $ - */ - -/*! \file */ - -#if !defined(_ILBC_DEFINE_H_) -#define _ILBC_DEFINE_H_ - -#include - -#define FS 8000.0f -#define NSUB_20MS 4 -#define NSUB_30MS 6 -#define NASUB_20MS 2 - - -#define NASUB_30MS 4 -#define NASUB_MAX 4 -#define SUBL 40 -#define STATE_LEN 80 -#define STATE_SHORT_LEN_30MS 58 -#define STATE_SHORT_LEN_20MS 57 - -/* LPC settings */ - -#define ILBC_LPC_FILTERORDER 10 -#define LPC_CHIRP_SYNTDENUM 0.9025f -#define LPC_CHIRP_WEIGHTDENUM 0.4222f -#define LPC_LOOKBACK 60 -#define LPC_N_20MS 1 -#define LPC_N_30MS 2 -#define LPC_N_MAX 2 -#define LPC_ASYMDIFF 20 -#define LPC_BW 60.0f -#define LPC_WN 1.0001f -#define LSF_NSPLIT 3 -#define LSF_NUMBER_OF_STEPS 4 -#define LPC_HALFORDER (ILBC_LPC_FILTERORDER/2) - -/* cb settings */ - -#define CB_NSTAGES 3 -#define CB_EXPAND 2 -#define CB_MEML 147 -#define CB_FILTERLEN 2*4 -#define CB_HALFFILTERLEN 4 -#define CB_RESRANGE 34 -#define CB_MAXGAIN 1.3f - -/* enhancer */ - -#define ENH_BLOCKL 80 /* block length */ -#define ENH_BLOCKL_HALF (ENH_BLOCKL/2) -#define ENH_HL 3 /* 2*ENH_HL+1 is number blocks in said second sequence */ -#define ENH_SLOP 2 /* max difference estimated and correct pitch period */ -#define ENH_PLOCSL 20 /* pitch-estimates and pitch-locations buffer length */ -#define ENH_OVERHANG 2 -#define ENH_UPS0 4 /* upsampling rate */ -#define ENH_FL0 3 /* 2*FLO+1 is the length of each filter */ -#define ENH_VECTL (ENH_BLOCKL + 2*ENH_FL0) - -#define ENH_CORRDIM (2*ENH_SLOP + 1) -#define ENH_NBLOCKS (ILBC_BLOCK_LEN_MAX/ENH_BLOCKL) -#define ENH_NBLOCKS_EXTRA 5 -#define ENH_NBLOCKS_TOT 8 /* ENH_NBLOCKS + ENH_NBLOCKS_EXTRA */ -#define ENH_BUFL (ENH_NBLOCKS_TOT*ENH_BLOCKL) -#define ENH_ALPHA0 0.05f - -/* Down sampling */ - -#define FILTERORDER_DS 7 -#define DELAY_DS 3 -#define FACTOR_DS 2 - -/* bit stream defs */ - -#define STATE_BITS 3 -#define BYTE_LEN 8 - -/* help parameters */ - -#define FLOAT_MAX 1.0e37f -#define EPS 2.220446049250313e-016f -#define PI 3.14159265358979323846f -#define MIN_SAMPLE -32768 -#define MAX_SAMPLE 32767 -#define TWO_PI 6.283185307f -#define PI2 0.159154943f - -#endif -/*- End of file ------------------------------------------------------------*/ diff --git a/libs/ilbc/src/iLBC_encode.c b/libs/ilbc/src/iLBC_encode.c deleted file mode 100644 index 1a36575d50..0000000000 --- a/libs/ilbc/src/iLBC_encode.c +++ /dev/null @@ -1,520 +0,0 @@ -/* - * iLBC - a library for the iLBC codec - * - * iLBC_encode.c - The iLBC low bit rate speech codec. - * - * Adapted by Steve Underwood from the reference - * iLBC code supplied in RFC3951. - * - * Original code Copyright (C) The Internet Society (2004). - * All changes to produce this version Copyright (C) 2008 by Steve Underwood - * All Rights Reserved. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Id: iLBC_encode.c,v 1.2 2008/03/06 12:27:38 steveu Exp $ - */ - -/*! \file */ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include -#include -#include -#include - -#include "ilbc.h" -#include "LPCencode.h" -#include "FrameClassify.h" -#include "StateSearchW.h" -#include "StateConstructW.h" -#include "helpfun.h" -#include "constants.h" -#include "packing.h" -#include "iCBSearch.h" -#include "iCBConstruct.h" -#include "hpInput.h" -#include "anaFilter.h" -#include "syntFilter.h" - -/*----------------------------------------------------------------* - * Initiation of encoder instance. - *---------------------------------------------------------------*/ - -/*----------------------------------------------------------------* - * main encoder function - *---------------------------------------------------------------*/ - -static int ilbc_encode_frame(ilbc_encode_state_t *iLBCenc_inst, /* (i/o) the general encoder state */ - uint8_t bytes[], /* (o) encoded data bits iLBC */ - const float block[]) /* (o) speech vector to encode */ -{ - float data[ILBC_BLOCK_LEN_MAX]; - float residual[ILBC_BLOCK_LEN_MAX]; - float reverseResidual[ILBC_BLOCK_LEN_MAX]; - int start; - int idxForMax; - int idxVec[STATE_LEN]; - float reverseDecresidual[ILBC_BLOCK_LEN_MAX]; - float mem[CB_MEML]; - int n; - int k; - int meml_gotten; - int Nfor; - int Nback; - int i; - int pos; - int gain_index[CB_NSTAGES*NASUB_MAX], - extra_gain_index[CB_NSTAGES]; - int cb_index[CB_NSTAGES*NASUB_MAX]; - int extra_cb_index[CB_NSTAGES]; - int lsf_i[LSF_NSPLIT*LPC_N_MAX]; - uint8_t *pbytes; - int diff; - int start_pos; - int state_first; - float en1; - int en2; - int index; - int ulp; - int firstpart; - int subcount; - int subframe; - float weightState[ILBC_LPC_FILTERORDER]; - float syntdenum[ILBC_NUM_SUB_MAX*(ILBC_LPC_FILTERORDER + 1)]; - float weightdenum[ILBC_NUM_SUB_MAX*(ILBC_LPC_FILTERORDER + 1)]; - float decresidual[ILBC_BLOCK_LEN_MAX]; - - /* High pass filtering of input signal if such is not done - prior to calling this function */ - hpInput(block, iLBCenc_inst->blockl, data, (*iLBCenc_inst).hpimem); - - /* Otherwise simply copy */ - /*memcpy(data, block, iLBCenc_inst->blockl*sizeof(float));*/ - - /* LPC of hp filtered input data */ - LPCencode(syntdenum, weightdenum, lsf_i, data, iLBCenc_inst); - - - /* Inverse filter to get residual */ - for (n = 0; n < iLBCenc_inst->nsub; n++) - anaFilter(&data[n*SUBL], &syntdenum[n*(ILBC_LPC_FILTERORDER + 1)], SUBL, &residual[n*SUBL], iLBCenc_inst->anaMem); - - /* Find state location */ - start = FrameClassify(iLBCenc_inst, residual); - - /* Check if state should be in first or last part of the two subframes */ - diff = STATE_LEN - iLBCenc_inst->state_short_len; - en1 = 0; - index = (start - 1)*SUBL; - - for (i = 0; i < iLBCenc_inst->state_short_len; i++) - en1 += residual[index + i]*residual[index + i]; - en2 = 0; - index = (start - 1)*SUBL+diff; - for (i = 0; i < iLBCenc_inst->state_short_len; i++) - en2 = (int)(en2 + residual[index + i]*residual[index + i]); - - if (en1 > en2) - { - state_first = 1; - start_pos = (start - 1)*SUBL; - } - else - { - state_first = 0; - start_pos = (start - 1)*SUBL + diff; - } - - /* Scalar quantization of state */ - StateSearchW(iLBCenc_inst, - &residual[start_pos], - &syntdenum[(start - 1)*(ILBC_LPC_FILTERORDER + 1)], - &weightdenum[(start - 1)*(ILBC_LPC_FILTERORDER + 1)], - &idxForMax, - idxVec, - iLBCenc_inst->state_short_len, - state_first); - - StateConstructW(idxForMax, - idxVec, - &syntdenum[(start - 1)*(ILBC_LPC_FILTERORDER + 1)], - &decresidual[start_pos], - iLBCenc_inst->state_short_len); - - /* predictive quantization in state */ - if (state_first) - { - /* Put adaptive part in the end */ - - /* Setup memory */ - - memset(mem, 0, (CB_MEML - iLBCenc_inst->state_short_len)*sizeof(float)); - memcpy(&mem[CB_MEML - iLBCenc_inst->state_short_len], &decresidual[start_pos], iLBCenc_inst->state_short_len*sizeof(float)); - memset(weightState, 0, ILBC_LPC_FILTERORDER*sizeof(float)); - - /* Encode sub-frames */ - iCBSearch(iLBCenc_inst, - extra_cb_index, - extra_gain_index, - &residual[start_pos + iLBCenc_inst->state_short_len], - mem + CB_MEML - stMemLTbl, - stMemLTbl, - diff, - CB_NSTAGES, - &weightdenum[start*(ILBC_LPC_FILTERORDER + 1)], - weightState, - 0); - - /* Construct decoded vector */ - iCBConstruct(&decresidual[start_pos + iLBCenc_inst->state_short_len], - extra_cb_index, - extra_gain_index, - &mem[CB_MEML - stMemLTbl], - stMemLTbl, - diff, - CB_NSTAGES); - } - else - { - /* Put adaptive part in the beginning */ - - /* Create reversed vectors for prediction */ - for (k = 0; k < diff; k++) - reverseResidual[k] = residual[(start + 1)*SUBL - 1 - (k + iLBCenc_inst->state_short_len)]; - - /* Setup memory */ - meml_gotten = iLBCenc_inst->state_short_len; - for (k = 0; k < meml_gotten; k++) - mem[CB_MEML - 1 - k] = decresidual[start_pos + k]; - memset(mem, 0, (CB_MEML - k)*sizeof(float)); - memset(weightState, 0, ILBC_LPC_FILTERORDER*sizeof(float)); - - /* Encode sub-frames */ - iCBSearch(iLBCenc_inst, - extra_cb_index, - extra_gain_index, - reverseResidual, - mem + CB_MEML - stMemLTbl, - stMemLTbl, - diff, - CB_NSTAGES, - &weightdenum[(start - 1)*(ILBC_LPC_FILTERORDER + 1)], - weightState, - 0); - - /* Construct decoded vector */ - iCBConstruct(reverseDecresidual, - extra_cb_index, - extra_gain_index, - &mem[CB_MEML - stMemLTbl], - stMemLTbl, - diff, - CB_NSTAGES); - - /* Get decoded residual from reversed vector */ - for (k = 0; k < diff; k++) - decresidual[start_pos - 1 - k] = reverseDecresidual[k]; - } - - /* Counter for predicted sub-frames */ - subcount = 0; - - /* Forward prediction of sub-frames */ - Nfor = iLBCenc_inst->nsub-start - 1; - - if (Nfor > 0) - { - /* Setup memory */ - memset(mem, 0, (CB_MEML - STATE_LEN)*sizeof(float)); - memcpy(&mem[CB_MEML - STATE_LEN], decresidual + (start - 1)*SUBL, STATE_LEN*sizeof(float)); - memset(weightState, 0, ILBC_LPC_FILTERORDER*sizeof(float)); - - /* Loop over sub-frames to encode */ - for (subframe = 0; subframe < Nfor; subframe++) - { - /* Encode sub-frame */ - iCBSearch(iLBCenc_inst, - &cb_index[subcount*CB_NSTAGES], - &gain_index[subcount*CB_NSTAGES], - &residual[(start + 1 + subframe)*SUBL], - &mem[CB_MEML - memLfTbl[subcount]], - memLfTbl[subcount], - SUBL, - CB_NSTAGES, - &weightdenum[(start + 1 + subframe)*(ILBC_LPC_FILTERORDER + 1)], - weightState, - subcount + 1); - - /* Construct decoded vector */ - iCBConstruct(&decresidual[(start + 1 + subframe)*SUBL], - &cb_index[subcount*CB_NSTAGES], - &gain_index[subcount*CB_NSTAGES], - &mem[CB_MEML - memLfTbl[subcount]], - memLfTbl[subcount], - SUBL, - CB_NSTAGES); - - /* Update memory */ - memmove(mem, &mem[SUBL], (CB_MEML-SUBL)*sizeof(float)); - memmove(&mem[CB_MEML - SUBL], &decresidual[(start + 1 + subframe)*SUBL], SUBL*sizeof(float)); - memset(weightState, 0, ILBC_LPC_FILTERORDER*sizeof(float)); - subcount++; - } - } - - /* backward prediction of sub-frames */ - Nback = start - 1; - - if (Nback > 0) - { - /* Create reverse order vectors */ - for (n = 0; n < Nback; n++) - { - for (k = 0; k < SUBL; k++) - { - reverseResidual[n*SUBL + k] = residual[(start - 1)*SUBL - 1 - n*SUBL - k]; - reverseDecresidual[n*SUBL + k] = decresidual[(start - 1)*SUBL - 1 - n*SUBL - k]; - } - } - - /* Setup memory */ - meml_gotten = SUBL*(iLBCenc_inst->nsub + 1 - start); - - - if (meml_gotten > CB_MEML) - meml_gotten = CB_MEML; - for (k = 0; k < meml_gotten; k++) - mem[CB_MEML - 1 - k] = decresidual[(start - 1)*SUBL + k]; - memset(mem, 0, (CB_MEML - k)*sizeof(float)); - memset(weightState, 0, ILBC_LPC_FILTERORDER*sizeof(float)); - - /* Loop over sub-frames to encode */ - for (subframe = 0; subframe < Nback; subframe++) - { - /* Encode sub-frame */ - iCBSearch(iLBCenc_inst, - &cb_index[subcount*CB_NSTAGES], - &gain_index[subcount*CB_NSTAGES], - &reverseResidual[subframe*SUBL], - &mem[CB_MEML - memLfTbl[subcount]], - memLfTbl[subcount], - SUBL, - CB_NSTAGES, - &weightdenum[(start - 2 - subframe)*(ILBC_LPC_FILTERORDER + 1)], - weightState, - subcount + 1); - - /* Construct decoded vector */ - iCBConstruct(&reverseDecresidual[subframe*SUBL], - &cb_index[subcount*CB_NSTAGES], - &gain_index[subcount*CB_NSTAGES], - &mem[CB_MEML - memLfTbl[subcount]], - memLfTbl[subcount], - SUBL, - CB_NSTAGES); - - /* Update memory */ - memmove(mem, &mem[SUBL], (CB_MEML - SUBL)*sizeof(float)); - memmove(&mem[CB_MEML - SUBL], - &reverseDecresidual[subframe*SUBL], - SUBL*sizeof(float)); - memset(weightState, 0, ILBC_LPC_FILTERORDER*sizeof(float)); - - subcount++; - } - - /* Get decoded residual from reversed vector */ - for (i = 0; i < SUBL*Nback; i++) - decresidual[SUBL*Nback - i - 1] = reverseDecresidual[i]; - } - - /* Adjust index */ - index_conv_enc(cb_index); - - /* Pack bytes */ - pbytes = bytes; - pos = 0; - - /* Loop over the 3 ULP classes */ - for (ulp = 0; ulp < 3; ulp++) - { - /* LSF */ - for (k = 0; k < LSF_NSPLIT*iLBCenc_inst->lpc_n; k++) - { - packsplit(&lsf_i[k], - &firstpart, - &lsf_i[k], - iLBCenc_inst->ULP_inst->lsf_bits[k][ulp], - iLBCenc_inst->ULP_inst->lsf_bits[k][ulp] - + iLBCenc_inst->ULP_inst->lsf_bits[k][ulp + 1] - + iLBCenc_inst->ULP_inst->lsf_bits[k][ulp + 2]); - dopack(&pbytes, firstpart, iLBCenc_inst->ULP_inst->lsf_bits[k][ulp], &pos); - } - - /* Start block info */ - packsplit(&start, - &firstpart, - &start, - iLBCenc_inst->ULP_inst->start_bits[ulp], - iLBCenc_inst->ULP_inst->start_bits[ulp] - + iLBCenc_inst->ULP_inst->start_bits[ulp + 1] - + iLBCenc_inst->ULP_inst->start_bits[ulp + 2]); - dopack(&pbytes, firstpart, iLBCenc_inst->ULP_inst->start_bits[ulp], &pos); - - packsplit(&state_first, - &firstpart, - &state_first, - iLBCenc_inst->ULP_inst->startfirst_bits[ulp], - iLBCenc_inst->ULP_inst->startfirst_bits[ulp] - + iLBCenc_inst->ULP_inst->startfirst_bits[ulp + 1] - + iLBCenc_inst->ULP_inst->startfirst_bits[ulp + 2]); - dopack(&pbytes, firstpart, iLBCenc_inst->ULP_inst->startfirst_bits[ulp], &pos); - - packsplit(&idxForMax, - &firstpart, - &idxForMax, - iLBCenc_inst->ULP_inst->scale_bits[ulp], - iLBCenc_inst->ULP_inst->scale_bits[ulp] - + iLBCenc_inst->ULP_inst->scale_bits[ulp + 1] - + iLBCenc_inst->ULP_inst->scale_bits[ulp + 2]); - dopack(&pbytes, firstpart, iLBCenc_inst->ULP_inst->scale_bits[ulp], &pos); - - for (k = 0; k < iLBCenc_inst->state_short_len; k++) - { - packsplit(idxVec + k, - &firstpart, - idxVec + k, - iLBCenc_inst->ULP_inst->state_bits[ulp], - iLBCenc_inst->ULP_inst->state_bits[ulp] - + iLBCenc_inst->ULP_inst->state_bits[ulp + 1] - + iLBCenc_inst->ULP_inst->state_bits[ulp + 2]); - dopack(&pbytes, firstpart, iLBCenc_inst->ULP_inst->state_bits[ulp], &pos); - } - - /* 23/22 (20ms/30ms) sample block */ - for (k = 0; k < CB_NSTAGES; k++) - { - packsplit(extra_cb_index + k, - &firstpart, - extra_cb_index + k, - iLBCenc_inst->ULP_inst->extra_cb_index[k][ulp], - iLBCenc_inst->ULP_inst->extra_cb_index[k][ulp] - + iLBCenc_inst->ULP_inst->extra_cb_index[k][ulp + 1] - + iLBCenc_inst->ULP_inst->extra_cb_index[k][ulp + 2]); - dopack(&pbytes, firstpart, iLBCenc_inst->ULP_inst->extra_cb_index[k][ulp], &pos); - } - - for (k = 0; k < CB_NSTAGES; k++) - { - packsplit(extra_gain_index + k, - &firstpart, - extra_gain_index + k, - iLBCenc_inst->ULP_inst->extra_cb_gain[k][ulp], - iLBCenc_inst->ULP_inst->extra_cb_gain[k][ulp] - + iLBCenc_inst->ULP_inst->extra_cb_gain[k][ulp + 1] - + iLBCenc_inst->ULP_inst->extra_cb_gain[k][ulp + 2]); - dopack(&pbytes, firstpart, iLBCenc_inst->ULP_inst->extra_cb_gain[k][ulp], &pos); - } - - /* The two/four (20ms/30ms) 40 sample sub-blocks */ - for (i = 0; i < iLBCenc_inst->nasub; i++) - { - for (k = 0; k < CB_NSTAGES; k++) - { - packsplit(cb_index + i*CB_NSTAGES+k, - &firstpart, - cb_index + i*CB_NSTAGES + k, - iLBCenc_inst->ULP_inst->cb_index[i][k][ulp], - iLBCenc_inst->ULP_inst->cb_index[i][k][ulp] - + iLBCenc_inst->ULP_inst->cb_index[i][k][ulp + 1] - + iLBCenc_inst->ULP_inst->cb_index[i][k][ulp + 2]); - dopack(&pbytes, firstpart, iLBCenc_inst->ULP_inst->cb_index[i][k][ulp], &pos); - } - } - - for (i = 0; i < iLBCenc_inst->nasub; i++) - { - for (k = 0; k < CB_NSTAGES; k++) - { - packsplit(gain_index + i*CB_NSTAGES + k, - &firstpart, - gain_index + i*CB_NSTAGES + k, - iLBCenc_inst->ULP_inst->cb_gain[i][k][ulp], - iLBCenc_inst->ULP_inst->cb_gain[i][k][ulp] - + iLBCenc_inst->ULP_inst->cb_gain[i][k][ulp + 1] - + iLBCenc_inst->ULP_inst->cb_gain[i][k][ulp + 2]); - dopack(&pbytes, firstpart, iLBCenc_inst->ULP_inst->cb_gain[i][k][ulp], &pos); - } - } - } - - /* Set the last bit to zero (otherwise the decoder will treat it as a lost frame) */ - dopack(&pbytes, 0, 1, &pos); - return iLBCenc_inst->no_of_bytes; -} - -int ilbc_encode(ilbc_encode_state_t *s, /* (i/o) the general encoder state */ - uint8_t bytes[], /* (o) encoded data bits iLBC */ - const int16_t amp[], /* (o) speech vector to encode */ - int len) -{ - int i; - int j; - int k; - float block[ILBC_BLOCK_LEN_MAX]; - - for (i = 0, j = 0; i < len; i += s->blockl, j += s->no_of_bytes) - { - /* Convert signal to float */ - for (k = 0; k < s->blockl; k++) - block[k] = (float) amp[i + k]; - ilbc_encode_frame(s, bytes + j, block); - } - return j; -} - -ilbc_encode_state_t *ilbc_encode_init(ilbc_encode_state_t *iLBCenc_inst, /* (i/o) Encoder instance */ - int mode) /* (i) frame size mode */ -{ - iLBCenc_inst->mode = mode; - if (mode == 30) - { - iLBCenc_inst->blockl = ILBC_BLOCK_LEN_30MS; - iLBCenc_inst->nsub = NSUB_30MS; - iLBCenc_inst->nasub = NASUB_30MS; - iLBCenc_inst->lpc_n = LPC_N_30MS; - iLBCenc_inst->no_of_bytes = ILBC_NO_OF_BYTES_30MS; - iLBCenc_inst->state_short_len = STATE_SHORT_LEN_30MS; - /* ULP init */ - iLBCenc_inst->ULP_inst = &ULP_30msTbl; - } - else if (mode == 20) - { - iLBCenc_inst->blockl = ILBC_BLOCK_LEN_20MS; - iLBCenc_inst->nsub = NSUB_20MS; - iLBCenc_inst->nasub = NASUB_20MS; - iLBCenc_inst->lpc_n = LPC_N_20MS; - iLBCenc_inst->no_of_bytes = ILBC_NO_OF_BYTES_20MS; - iLBCenc_inst->state_short_len = STATE_SHORT_LEN_20MS; - /* ULP init */ - iLBCenc_inst->ULP_inst = &ULP_20msTbl; - } - else - { - return NULL; - } - - memset((*iLBCenc_inst).anaMem, 0, ILBC_LPC_FILTERORDER*sizeof(float)); - memcpy((*iLBCenc_inst).lsfold, lsfmeanTbl, ILBC_LPC_FILTERORDER*sizeof(float)); - memcpy((*iLBCenc_inst).lsfdeqold, lsfmeanTbl, ILBC_LPC_FILTERORDER*sizeof(float)); - memset((*iLBCenc_inst).lpc_buffer, 0, (LPC_LOOKBACK + ILBC_BLOCK_LEN_MAX)*sizeof(float)); - memset((*iLBCenc_inst).hpimem, 0, 4*sizeof(float)); - - return iLBCenc_inst; -} diff --git a/libs/ilbc/src/ilbc.h.in b/libs/ilbc/src/ilbc.h.in deleted file mode 100644 index ca649e4325..0000000000 --- a/libs/ilbc/src/ilbc.h.in +++ /dev/null @@ -1,37 +0,0 @@ -/* - * iLBC - a library for the iLBC codec - * - * ilbc.h - The head guy amongst the headers - * - * Adapted by Steve Underwood from the reference - * iLBC code supplied in RFC3951. - * - * Original code Copyright (C) The Internet Society (2004). - * All changes to produce this version Copyright (C) 2008 by Steve Underwood - * All Rights Reserved. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Id: ilbc.h.in,v 1.2 2008/03/06 12:27:38 steveu Exp $ - */ - -/*! \file */ - -#if !defined(_ILBC_H_) -#define _ILBC_H_ - -@ILBC_USE_FIXED_POINT@ - -#include -@INSERT_INTTYPES_HEADER@ -#include -#include -#include -@INSERT_MATH_HEADER@ - -#include - -#endif -/*- End of file ------------------------------------------------------------*/ diff --git a/libs/ilbc/src/ilbc/ilbc.h b/libs/ilbc/src/ilbc/ilbc.h deleted file mode 100644 index 3634953841..0000000000 --- a/libs/ilbc/src/ilbc/ilbc.h +++ /dev/null @@ -1,159 +0,0 @@ -/* - * iLBC - a library for the iLBC codec - * - * ilbc.h - The iLBC low bit rate speech codec. - * - * Adapted by Steve Underwood from the reference - * iLBC code supplied in RFC3951. - * - * Copyright (C) The Internet Society (2004). - * All Rights Reserved. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - * $Id: ilbc.h,v 1.1.1.1 2008/02/15 12:15:55 steveu Exp $ - */ - -#if !defined(_ILBC_ILBC_H_) -#define _ILBC_ILBC_H_ - -#define ILBC_BLOCK_LEN_20MS 160 -#define ILBC_BLOCK_LEN_30MS 240 -#define ILBC_BLOCK_LEN_MAX 240 - -#define ILBC_NO_OF_BYTES_20MS 38 -#define ILBC_NO_OF_BYTES_30MS 50 -#define ILBC_NO_OF_BYTES_MAX 50 - -#define ILBC_NUM_SUB_MAX 6 - -#define SUBL 40 - -#define ENH_BLOCKL 80 /* block length */ -#define ENH_NBLOCKS_TOT 8 /* ENH_NBLOCKS + ENH_NBLOCKS_EXTRA */ -#define ENH_BUFL (ENH_NBLOCKS_TOT*ENH_BLOCKL) - -#define ILBC_LPC_FILTERORDER 10 -#define LPC_LOOKBACK 60 - -#define CB_NSTAGES 3 - -#define STATE_BITS 3 -#define BYTE_LEN 8 -#define ILBC_ULP_CLASSES 3 - -typedef struct -{ - int lsf_bits[6][ILBC_ULP_CLASSES + 2]; - int start_bits[ILBC_ULP_CLASSES + 2]; - int startfirst_bits[ILBC_ULP_CLASSES + 2]; - int scale_bits[ILBC_ULP_CLASSES + 2]; - int state_bits[ILBC_ULP_CLASSES + 2]; - int extra_cb_index[CB_NSTAGES][ILBC_ULP_CLASSES + 2]; - int extra_cb_gain[CB_NSTAGES][ILBC_ULP_CLASSES + 2]; - int cb_index[ILBC_NUM_SUB_MAX][CB_NSTAGES][ILBC_ULP_CLASSES + 2]; - int cb_gain[ILBC_NUM_SUB_MAX][CB_NSTAGES][ILBC_ULP_CLASSES + 2]; -} ilbc_ulp_inst_t; - -/* Type definition encoder instance */ -typedef struct -{ - /* flag for frame size mode */ - int mode; - - /* basic parameters for different frame sizes */ - int blockl; - int nsub; - int nasub; - int no_of_bytes; - int lpc_n; - int state_short_len; - const ilbc_ulp_inst_t *ULP_inst; - - /* analysis filter state */ - float anaMem[ILBC_LPC_FILTERORDER]; - - /* old lsf parameters for interpolation */ - float lsfold[ILBC_LPC_FILTERORDER]; - float lsfdeqold[ILBC_LPC_FILTERORDER]; - - /* signal buffer for LP analysis */ - float lpc_buffer[LPC_LOOKBACK + ILBC_BLOCK_LEN_MAX]; - - /* state of input HP filter */ - float hpimem[4]; -} ilbc_encode_state_t; - -/* Type definition decoder instance */ -typedef struct -{ - /* Flag for frame size mode */ - int mode; - - /* Basic parameters for different frame sizes */ - int blockl; - int nsub; - int nasub; - int no_of_bytes; - int lpc_n; - int state_short_len; - const ilbc_ulp_inst_t *ULP_inst; - - /* Synthesis filter state */ - float syntMem[ILBC_LPC_FILTERORDER]; - - /* Old LSF for interpolation */ - float lsfdeqold[ILBC_LPC_FILTERORDER]; - - /* Pitch lag estimated in enhancer and used in PLC */ - int last_lag; - - /* PLC state information */ - int prevLag, consPLICount, prevPLI, prev_enh_pl; - float prevLpc[ILBC_LPC_FILTERORDER + 1]; - float prevResidual[ILBC_NUM_SUB_MAX*SUBL]; - float per; - unsigned long seed; - - /* Previous synthesis filter parameters */ - float old_syntdenum[(ILBC_LPC_FILTERORDER + 1)*ILBC_NUM_SUB_MAX]; - - /* State of output HP filter */ - float hpomem[4]; - - /* Enhancer state information */ - int use_enhancer; - float enh_buf[ENH_BUFL]; - float enh_period[ENH_NBLOCKS_TOT]; -} ilbc_decode_state_t; - -ilbc_encode_state_t *ilbc_encode_init(ilbc_encode_state_t *s, /* (i/o) Encoder instance */ - int mode); /* (i) frame size mode */ - -int ilbc_encode(ilbc_encode_state_t *s, /* (i/o) the general encoder state */ - uint8_t bytes[], /* (o) encoded data bits iLBC */ - const int16_t amp[], /* (o) speech vector to encode */ - int len); - -ilbc_decode_state_t *ilbc_decode_init(ilbc_decode_state_t *s, /* (i/o) Decoder instance */ - int mode, /* (i) frame size mode */ - int use_enhancer); /* (i) 1 to use enhancer - 0 to run without enhancer */ - -int ilbc_decode(ilbc_decode_state_t *s, /* (i/o) the decoder state structure */ - int16_t amp[], /* (o) decoded signal block */ - const uint8_t bytes[], /* (i) encoded signal bits */ - int len); - -int ilbc_fillin(ilbc_decode_state_t *s, /* (i/o) the decoder state structure */ - int16_t amp[], /* (o) decoded signal block */ - int len); - -#endif diff --git a/libs/ilbc/src/ilbc/version.h b/libs/ilbc/src/ilbc/version.h deleted file mode 100644 index e4edde8ac9..0000000000 --- a/libs/ilbc/src/ilbc/version.h +++ /dev/null @@ -1,37 +0,0 @@ -/* - * SpanDSP - a series of DSP components for telephony - * - * version.h - A tag file, so the exact installed revision can be assertained. - * - * Written by Steve Underwood - * - * Copyright (C) 2007 Steve Underwood - * - * All rights reserved. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the Lesser GNU General Public License version 2.1, as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - * $Id: version.h.in,v 1.1.1.1 2008/02/15 12:15:55 steveu Exp $ - */ - -#if !defined(_VOIPCODECS_VERSION_H_) -#define _VOIPCODECS_VERSION_H_ - -/* The date and time of the version are in UTC form. */ - -#define VOIPCODECS_RELEASE_DATE $VOIPCODECS_RELEASE_DATE -#define VOIPCODECS_RELEASE_TIME $VOIPCODECS_RELEASE_TIME - -#endif -/*- End of file ------------------------------------------------------------*/ diff --git a/libs/ilbc/src/ilbc/version.h.in b/libs/ilbc/src/ilbc/version.h.in deleted file mode 100644 index e4edde8ac9..0000000000 --- a/libs/ilbc/src/ilbc/version.h.in +++ /dev/null @@ -1,37 +0,0 @@ -/* - * SpanDSP - a series of DSP components for telephony - * - * version.h - A tag file, so the exact installed revision can be assertained. - * - * Written by Steve Underwood - * - * Copyright (C) 2007 Steve Underwood - * - * All rights reserved. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the Lesser GNU General Public License version 2.1, as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - * $Id: version.h.in,v 1.1.1.1 2008/02/15 12:15:55 steveu Exp $ - */ - -#if !defined(_VOIPCODECS_VERSION_H_) -#define _VOIPCODECS_VERSION_H_ - -/* The date and time of the version are in UTC form. */ - -#define VOIPCODECS_RELEASE_DATE $VOIPCODECS_RELEASE_DATE -#define VOIPCODECS_RELEASE_TIME $VOIPCODECS_RELEASE_TIME - -#endif -/*- End of file ------------------------------------------------------------*/ diff --git a/libs/ilbc/src/libilbc.dsp b/libs/ilbc/src/libilbc.dsp deleted file mode 100644 index 644126584d..0000000000 --- a/libs/ilbc/src/libilbc.dsp +++ /dev/null @@ -1,197 +0,0 @@ -# Microsoft Developer Studio Project File - Name="ilbc" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 - -CFG=ilbc - Win32 Debug -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "ilbc.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "ilbc.mak" CFG="ilbc - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "ilbc - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") -!MESSAGE "ilbc - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -MTL=midl.exe -RSC=rc.exe - -!IF "$(CFG)" == "ilbc - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "Release" -# PROP Intermediate_Dir "Release" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D HAVE_TGMATH_H /YX /FD /c -# ADD CPP /nologo /MT /W3 /GX /Zi /O2 /I "." /I "..\include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D HAVE_TGMATH_H /D "_WINDLL" /FR /FD /c -# SUBTRACT CPP /YX -# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 -# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 -# ADD LINK32 kernel32.lib ws2_32.lib winmm.lib /nologo /dll /map /debug /machine:I386 /out:"Release/libilbc.dll" - -!ELSEIF "$(CFG)" == "ilbc - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "Debug" -# PROP Intermediate_Dir "Debug" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D HAVE_TGMATH_H /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I "." /I "..\include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D HAVE_TGMATH_H /FR /FD /GZ /c -# SUBTRACT CPP /WX /YX -# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 -# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept -# ADD LINK32 kernel32.lib ws2_32.lib winmm.lib /nologo /dll /incremental:no /map /debug /machine:I386 /out:"Debug/libilbc.dll" /pdbtype:sept -# SUBTRACT LINK32 /nodefaultlib - -!ENDIF - -# Begin Target - -# Name "ilbc - Win32 Release" -# Name "ilbc - Win32 Debug" -# Begin Group "Source Files" -# Begin Source File - -SOURCE=.\bit_operations.c -# End Source File -# Begin Source File - -SOURCE=.\bitstream.c -# End Source File -# Begin Source File - -SOURCE=.\g711.c -# End Source File -# Begin Source File - -SOURCE=.\g722_encode.c -# End Source File -# Begin Source File - -SOURCE=.\g722_decode.c -# End Source File -# Begin Source File - -SOURCE=.\g726.c -# End Source File -# Begin Source File - -SOURCE=.\gsm0610_decode.c -# End Source File -# Begin Source File - -SOURCE=.\gsm0610_encode.c -# End Source File -# Begin Source File - -SOURCE=.\gsm0610_long_term.c -# End Source File -# Begin Source File - -SOURCE=.\gsm0610_lpc.c -# End Source File -# Begin Source File - -SOURCE=.\gsm0610_preprocess.c -# End Source File -# Begin Source File - -SOURCE=.\gsm0610_rpe.c -# End Source File -# Begin Source File - -SOURCE=.\gsm0610_short_term.c -# End Source File -# Begin Source File - -SOURCE=.\ima_adpcm.c -# End Source File -# Begin Source File - -SOURCE=.\lpc10_analyse.c -# End Source File -# Begin Source File - -SOURCE=.\lpc10_decode.c -# End Source File -# Begin Source File - -SOURCE=.\lpc10_encode.c -# End Source File -# Begin Source File - -SOURCE=.\lpc10_placev.c -# End Source File -# Begin Source File - -SOURCE=.\lpc10_voicing.c -# End Source File -# Begin Source File - -SOURCE=.\oki_adpcm.c -# End Source File -# Begin Source File - -SOURCE=.\vector_int.c -# End Source File -# Begin Source File - -SOURCE=.\ilbc/bit_operations.h -# End Source File -# Begin Source File - -SOURCE=.\ilbc.h -# End Source File -# Begin Source File - -SOURCE=.\ilbc.h -# End Source File -# End Group - -# Begin Group "Resource Files" - -# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" -# End Group -# End Target -# End Project diff --git a/libs/ilbc/src/libilbc.sln b/libs/ilbc/src/libilbc.sln deleted file mode 100644 index ab80b62c25..0000000000 --- a/libs/ilbc/src/libilbc.sln +++ /dev/null @@ -1,29 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libilbc", "libilbc.vcproj", "{CF70F278-3364-4395-A2E1-23501C9B8AD2}" - ProjectSection(ProjectDependencies) = postProject - {1CED5987-A529-46DC-B30F-870D85FF9C94} = {1CED5987-A529-46DC-B30F-870D85FF9C94} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "at_dictionary_gen", "src\msvc\at_dictionary_gen.vcproj", "{1CED5987-A529-46DC-B30F-870D85FF9C94}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Release|Win32 = Release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {CF70F278-3364-4395-A2E1-23501C9B8AD2}.Debug|Win32.ActiveCfg = Debug|Win32 - {CF70F278-3364-4395-A2E1-23501C9B8AD2}.Debug|Win32.Build.0 = Debug|Win32 - {CF70F278-3364-4395-A2E1-23501C9B8AD2}.Release|Win32.ActiveCfg = Release|Win32 - {CF70F278-3364-4395-A2E1-23501C9B8AD2}.Release|Win32.Build.0 = Release|Win32 - {1CED5987-A529-46DC-B30F-870D85FF9C94}.Debug|Win32.ActiveCfg = Debug|Win32 - {1CED5987-A529-46DC-B30F-870D85FF9C94}.Debug|Win32.Build.0 = Debug|Win32 - {1CED5987-A529-46DC-B30F-870D85FF9C94}.Release|Win32.ActiveCfg = Release|Win32 - {1CED5987-A529-46DC-B30F-870D85FF9C94}.Release|Win32.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/libs/ilbc/src/lsf.c b/libs/ilbc/src/lsf.c deleted file mode 100644 index 4d394c47d2..0000000000 --- a/libs/ilbc/src/lsf.c +++ /dev/null @@ -1,269 +0,0 @@ -/* - * iLBC - a library for the iLBC codec - * - * lsf.c - The iLBC low bit rate speech codec. - * - * Adapted by Steve Underwood from the reference - * iLBC code supplied in RFC3951. - * - * Original code Copyright (C) The Internet Society (2004). - * All changes to produce this version Copyright (C) 2008 by Steve Underwood - * All Rights Reserved. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Id: lsf.c,v 1.2 2008/03/06 12:27:38 steveu Exp $ - */ - -/*! \file */ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include -#include -#include - -#include "iLBC_define.h" -#include "lsf.h" - -/*----------------------------------------------------------------* - * conversion from lpc coefficients to lsf coefficients - *---------------------------------------------------------------*/ - -void a2lsf(float *freq, /* (o) lsf coefficients */ - float *a) /* (i) lpc coefficients */ -{ - static const float steps[LSF_NUMBER_OF_STEPS] = - { - 0.00635f, 0.003175f, 0.0015875f, 0.00079375f - }; - float step; - int step_idx; - int lsp_index; - float p[LPC_HALFORDER]; - float q[LPC_HALFORDER]; - float p_pre[LPC_HALFORDER]; - float q_pre[LPC_HALFORDER]; - float old_p; - float old_q; - float *old; - float *pq_coef; - float omega; - float old_omega; - int i; - float hlp; - float hlp1; - float hlp2; - float hlp3; - float hlp4; - float hlp5; - - for (i = 0; i < LPC_HALFORDER; i++) - { - p[i] = -1.0f*(a[i + 1] + a[ILBC_LPC_FILTERORDER - i]); - q[i] = a[ILBC_LPC_FILTERORDER - i] - a[i + 1]; - } - - p_pre[0] = -1.0f - p[0]; - p_pre[1] = -p_pre[0] - p[1]; - p_pre[2] = -p_pre[1] - p[2]; - p_pre[3] = -p_pre[2] - p[3]; - p_pre[4] = -p_pre[3] - p[4]; - p_pre[4] = p_pre[4]/2.0f; - - q_pre[0] = 1.0f - q[0]; - q_pre[1] = q_pre[0] - q[1]; - q_pre[2] = q_pre[1] - q[2]; - q_pre[3] = q_pre[2] - q[3]; - q_pre[4] = q_pre[3] - q[4]; - q_pre[4] = q_pre[4]/2.0f; - - omega = 0.0f; - old_omega = 0.0f; - - old_p = FLOAT_MAX; - old_q = FLOAT_MAX; - - /* Here we loop through lsp_index to find all the ILBC_LPC_FILTERORDER roots for omega. */ - for (lsp_index = 0; lsp_index < ILBC_LPC_FILTERORDER; lsp_index++) - { - /* Depending on lsp_index being even or odd, we - alternatively solve the roots for the two LSP equations. */ - if ((lsp_index & 0x1) == 0) - { - pq_coef = p_pre; - old = &old_p; - } - else - { - pq_coef = q_pre; - old = &old_q; - } - - /* Start with low resolution grid */ - for (step_idx = 0, step = steps[step_idx]; step_idx < LSF_NUMBER_OF_STEPS; ) - { - /* cos(10piw) + pq(0)cos(8piw) + pq(1)cos(6piw) + - pq(2)cos(4piw) + pq(3)cod(2piw) + pq(4) */ - hlp = cosf(omega*TWO_PI); - hlp1 = 2.0f*hlp+pq_coef[0]; - hlp2 = 2.0f*hlp*hlp1 - 1.0f + pq_coef[1]; - hlp3 = 2.0f*hlp*hlp2 - hlp1 + pq_coef[2]; - hlp4 = 2.0f*hlp*hlp3 - hlp2 + pq_coef[3]; - hlp5 = hlp*hlp4 - hlp3 + pq_coef[4]; - - - if (((hlp5 * (*old)) <= 0.0f) || (omega >= 0.5f)) - { - if (step_idx == (LSF_NUMBER_OF_STEPS - 1)) - { - if (fabsf(hlp5) >= fabsf(*old)) - freq[lsp_index] = omega - step; - else - freq[lsp_index] = omega; - - if ((*old) >= 0.0f) - *old = -1.0f*FLOAT_MAX; - else - *old = FLOAT_MAX; - - omega = old_omega; - step_idx = 0; - - step_idx = LSF_NUMBER_OF_STEPS; - } - else - { - if (step_idx == 0) - old_omega = omega; - - step_idx++; - omega -= steps[step_idx]; - - /* Go back one grid step */ - step = steps[step_idx]; - } - } - else - { - /* increment omega until they are of different sign, - and we know there is at least one root between omega - and old_omega */ - *old = hlp5; - omega += step; - } - } - } - - for (i = 0; i < ILBC_LPC_FILTERORDER; i++) - freq[i] *= TWO_PI; -} - -/*----------------------------------------------------------------* - * conversion from lsf coefficients to lpc coefficients - *---------------------------------------------------------------*/ - -void lsf2a(float *a_coef, /* (o) lpc coefficients */ - float *freq) /* (i) lsf coefficients */ -{ - int i; - int j; - float hlp; - float p[LPC_HALFORDER]; - float q[LPC_HALFORDER]; - float a[LPC_HALFORDER + 1]; - float a1[LPC_HALFORDER]; - float a2[LPC_HALFORDER]; - float b[LPC_HALFORDER + 1]; - float b1[LPC_HALFORDER]; - float b2[LPC_HALFORDER]; - - for (i = 0; i < ILBC_LPC_FILTERORDER; i++) - freq[i] *= PI2; - - /* Check input for ill-conditioned cases. This part is not - found in the TIA standard. It involves the following 2 IF - blocks. If "freq" is judged ill-conditioned, then we first - modify freq[0] and freq[LPC_HALFORDER-1] (normally - LPC_HALFORDER = 10 for LPC applications), then we adjust - the other "freq" values slightly */ - - if ((freq[0] <= 0.0f) || (freq[ILBC_LPC_FILTERORDER - 1] >= 0.5f)) - { - if (freq[0] <= 0.0f) - freq[0] = 0.022f; - - - if (freq[ILBC_LPC_FILTERORDER - 1] >= 0.5f) - freq[ILBC_LPC_FILTERORDER - 1] = 0.499f; - - hlp = (freq[ILBC_LPC_FILTERORDER - 1] - freq[0])/(float) (ILBC_LPC_FILTERORDER - 1); - - for (i = 1; i < ILBC_LPC_FILTERORDER; i++) - freq[i] = freq[i - 1] + hlp; - } - - memset(a1, 0, LPC_HALFORDER*sizeof(float)); - memset(a2, 0, LPC_HALFORDER*sizeof(float)); - memset(b1, 0, LPC_HALFORDER*sizeof(float)); - memset(b2, 0, LPC_HALFORDER*sizeof(float)); - memset(a, 0, (LPC_HALFORDER+1)*sizeof(float)); - memset(b, 0, (LPC_HALFORDER+1)*sizeof(float)); - - /* p[i] and q[i] compute cos(2*pi*omega_{2j}) and - cos(2*pi*omega_{2j-1} in eqs. 4.2.2.2-1 and 4.2.2.2-2. - Note that for this code p[i] specifies the coefficients - used in .Q_A(z) while q[i] specifies the coefficients used - in .P_A(z) */ - - for (i = 0; i < LPC_HALFORDER; i++) - { - p[i] = cosf(TWO_PI*freq[2*i]); - q[i] = cosf(TWO_PI*freq[2*i + 1]); - } - - a[0] = 0.25f; - b[0] = 0.25f; - - for (i = 0; i < LPC_HALFORDER; i++) - { - a[i + 1] = a[i] - 2*p[i]*a1[i] + a2[i]; - b[i + 1] = b[i] - 2*q[i]*b1[i] + b2[i]; - a2[i] = a1[i]; - a1[i] = a[i]; - b2[i] = b1[i]; - b1[i] = b[i]; - } - - for (j = 0; j < ILBC_LPC_FILTERORDER; j++) - { - if (j == 0) - { - a[0] = 0.25f; - b[0] = -0.25f; - } - else - { - a[0] = - b[0] = 0.0f; - } - - for (i = 0; i < LPC_HALFORDER; i++) - { - a[i + 1] = a[i] - 2.0f*p[i]*a1[i] + a2[i]; - b[i + 1] = b[i] - 2.0f*q[i]*b1[i] + b2[i]; - a2[i] = a1[i]; - a1[i] = a[i]; - b2[i] = b1[i]; - b1[i] = b[i]; - } - - a_coef[j + 1] = 2.0f*(a[LPC_HALFORDER] + b[LPC_HALFORDER]); - } - - a_coef[0] = 1.0f; -} diff --git a/libs/ilbc/src/lsf.h b/libs/ilbc/src/lsf.h deleted file mode 100644 index 259085ec9b..0000000000 --- a/libs/ilbc/src/lsf.h +++ /dev/null @@ -1,29 +0,0 @@ -/* - * iLBC - a library for the iLBC codec - * - * lsf.h - The iLBC low bit rate speech codec. - * - * Adapted by Steve Underwood from the reference - * iLBC code supplied in RFC3951. - * - * Original code Copyright (C) The Internet Society (2004). - * All changes to produce this version Copyright (C) 2008 by Steve Underwood - * All Rights Reserved. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Id: lsf.h,v 1.2 2008/03/06 12:27:38 steveu Exp $ - */ - -#ifndef __iLBC_LSF_H -#define __iLBC_LSF_H - -void a2lsf(float *freq, /* (o) lsf coefficients */ - float *a); /* (i) lpc coefficients */ - -void lsf2a(float *a_coef, /* (o) lpc coefficients */ - float *freq); /* (i) lsf coefficients */ - -#endif diff --git a/libs/ilbc/src/msvc/gettimeofday.c b/libs/ilbc/src/msvc/gettimeofday.c deleted file mode 100644 index c59f19e0b8..0000000000 --- a/libs/ilbc/src/msvc/gettimeofday.c +++ /dev/null @@ -1,14 +0,0 @@ -#ifdef _MSC_VER -#pragma warning(disable:4100) -#endif - -#include "windows.h" - -void gettimeofday(struct timeval *tv, void *tz) -{ - long int l = GetTickCount(); - - tv->tv_sec = l / 1000; - tv->tv_usec = (l % 1000) * 1000; - return; -} diff --git a/libs/ilbc/src/msvc/ilbc.def b/libs/ilbc/src/msvc/ilbc.def deleted file mode 100644 index cb5076c2fa..0000000000 --- a/libs/ilbc/src/msvc/ilbc.def +++ /dev/null @@ -1,304 +0,0 @@ -EXPORTS -adsi_rx_init -adsi_rx -adsi_tx_init -adsi_send_alert_tone -adsi_put_message -adsi_next_field -adsi_add_field -async_tx_init -async_rx_init -awgn -bert_init -bert_get_bit -bert_put_bit -bert_set_report -bert_result -filter_create -filter_delete -filter_step -cfilter_create -cfilter_delete -cfilter_step -dds_phase_rate -dds_frequency -dds_scaling_dbm0 -dds_scaling_dbov -dds_lookup -dds_offset -dds -dds_mod -dds_complex -dds_complex_mod -dds_phase_ratef -dds_frequencyf -dds_scaling_dbm0f -dds_scaling_dbovf -ddsf -dds_modf -dds_complexf -dds_complex_modf -echo_can_create -echo_can_free -echo_can_flush -echo_can_adaption_mode -echo_can_update -fax_rx -fax_tx -fax_set_flush_handler -fax_init -fax_release -fsk_tx_init -fsk_tx_power -fsk_tx_set_get_bit -fsk_tx -fsk_rx_signal_power -fsk_rx_signal_cutoff -fsk_rx_init -fsk_rx -fsk_rx_set_put_bit -g722_encode_init -g722_encode_release -g722_encode -g722_decode_init -g722_decode_release -g722_decode -g726_init -g726_release -crc_itu32_calc -crc_itu32_append -crc_itu32_check -crc_itu16_calc -crc_itu16_append -crc_itu16_check -hdlc_rx_init -hdlc_rx_get_stats -hdlc_tx_init -hdlc_tx_frame -hdlc_tx_preamble -ima_adpcm_init -ima_adpcm_release -span_log_test -span_log -span_log_buf -span_log_init -span_log_set_protocol -span_set_message_handler -span_set_error_handler -modem_echo_can_create -modem_echo_can_free -modem_echo_can_flush -modem_echo_can_adaption_mode -modem_echo_can_update -noise -oki_adpcm_init -oki_adpcm_release -playout_put -playout_get -playout_get_unconditional -playout_current_length -playout_next_due -playout_new -playout_free -playout_restart -plc_rx -plc_fillin -plc_init -plc_release -power_meter_init -power_meter_damping -power_meter_update -power_meter_dbm0 -power_meter_dbov -power_meter_level_dbm0 -power_meter_level_dbov -queue_empty -queue_free_space -queue_contents -queue_flush -queue_view -queue_read -queue_write -queue_test_msg -queue_read_msg -queue_write_msg -queue_create -queue_delete -sig_tone_init -sig_tone_rx -sig_tone_tx -super_tone_rx_make_descriptor -super_tone_rx_add_tone -super_tone_rx_add_element -super_tone_rx_init -super_tone_rx_free -super_tone_rx_segment_callback -super_tone_rx -super_tone_tx_make_step -super_tone_tx_free -super_tone_tx_init -super_tone_tx -t30_init -t30_release -t30_restart -t30_create -t30_free -t30_frametype -t30_decode_dis_dtc_dcs -t30_completion_code_to_str -t30_set_header_info -t30_set_local_ident -t30_get_sub_address -t30_get_header_info -t30_get_local_ident -t30_get_far_ident -t30_get_transfer_statistics -t30_set_phase_b_handler -t30_set_phase_d_handler -t30_set_phase_e_handler -t30_set_document_handler -t30_set_rx_file -t30_set_tx_file -t30_local_interrupt_request -t30_send_complete -t30_hdlc_accept -t30_timer_update -t31_call_event -t31_at_rx -t31_rx -t31_tx -t31_init -t31_release -t35_decode -t38_indicator -t38_data_type -t38_field_type -t38_terminal_init -t38_gateway_init -t4_rx_create -t4_rx_init -t4_rx_start_page -t4_rx_end_page -t4_rx_delete -t4_rx_end -t4_rx_set_rx_encoding -t4_rx_set_sub_address -t4_rx_set_far_ident -t4_rx_set_vendor -t4_rx_set_model -t4_tx_create -t4_tx_init -t4_tx_start_page -t4_tx_restart_page -t4_tx_end_page -t4_tx_delete -t4_tx_end -t4_tx_set_tx_encoding -t4_tx_set_min_row_bits -t4_tx_set_local_ident -t4_tx_set_header_info -t4_get_transfer_statistics -t4_encoding_to_str -time_scale_init -time_scale_rate -time_scale -make_goertzel_descriptor -goertzel_init -goertzel_update -goertzel_result -dtmf_rx_init -dtmf_rx_set_realtime_callback -dtmf_rx_parms -dtmf_rx -make_tone_descriptor -make_tone_gen_descriptor -tone_gen_init -tone_gen -dtmf_tx_init -dtmf_tx -v17_rx_init -v17_rx_restart -v17_rx_release -v17_rx_set_put_bit -v17_rx -v17_rx_equalizer_state -v17_rx_carrier_frequency -v17_rx_symbol_timing_correction -v17_rx_signal_power -v17_rx_signal_cutoff -v17_rx_set_qam_report_handler -v17_tx_power -v17_tx_init -v17_tx_restart -v17_tx_release -v17_tx_set_get_bit -v17_tx -v22bis_rx_restart -v22bis_rx -v22bis_rx_equalizer_state -v22bis_rx_carrier_frequency -v22bis_rx_symbol_timing_correction -v22bis_rx_signal_power -v22bis_rx_set_qam_report_handler -v22bis_tx -v22bis_tx_power -v22bis_restart -v22bis_init -v22bis_set_get_bit -v22bis_set_put_bit -v27ter_rx_init -v27ter_rx_restart -v27ter_rx_release -v27ter_rx_set_put_bit -v27ter_rx -v27ter_rx_equalizer_state -v27ter_rx_carrier_frequency -v27ter_rx_symbol_timing_correction -v27ter_rx_signal_power -v27ter_rx_signal_cutoff -v27ter_rx_set_qam_report_handler -v27ter_tx_power -v27ter_tx_init -v27ter_tx_restart -v27ter_tx_release -v27ter_tx_set_get_bit -v27ter_tx -v29_rx_init -v29_rx_restart -v29_rx_release -v29_rx_set_put_bit -v29_rx -v29_rx_equalizer_state -v29_rx_carrier_frequency -v29_rx_symbol_timing_correction -v29_rx_signal_power -v29_rx_signal_cutoff -v29_rx_set_qam_report_handler -v29_tx_power -v29_tx_init -v29_tx_restart -v29_tx_release -v29_tx_set_get_bit -v29_tx -lapm_dump -lapm_receive -lapm_tx -lapm_tx_iframe -v42_set_status_callback -v42_rx_bit -v42_tx_bit -v42_init -v42_restart -v42_release -v42bis_compress -v42bis_compress_flush -v42bis_decompress -v42bis_decompress_flush -v42bis_init -v42bis_release -v8_init -v8_release -v8_tx -v8_rx -v8_log_supported_modulations - diff --git a/libs/ilbc/src/msvc/inttypes.h b/libs/ilbc/src/msvc/inttypes.h deleted file mode 100644 index f8793e70ff..0000000000 --- a/libs/ilbc/src/msvc/inttypes.h +++ /dev/null @@ -1,91 +0,0 @@ -/* - * SpanDSP - a series of DSP components for telephony - * - * inttypes.h - a fudge for MSVC, which lacks this header - * - * Written by Steve Underwood - * - * Copyright (C) 2006 Michael Jerris - * - * - * This file is released in the public domain. - * - */ - -#if !defined(_INTTYPES_H_) -#define _INTTYPES_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef _MSC_VER -#if (_MSC_VER >= 1400) // VC8+ -#ifndef _CRT_SECURE_NO_DEPRECATE -#define _CRT_SECURE_NO_DEPRECATE -#endif -#ifndef _CRT_NONSTDC_NO_DEPRECATE -#define _CRT_NONSTDC_NO_DEPRECATE -#endif -#endif // VC8+ -#include -typedef unsigned __int8 uint8_t; -typedef unsigned __int16 uint16_t; -typedef unsigned __int32 uint32_t; -typedef unsigned __int64 uint64_t; -typedef __int8 int8_t; -typedef __int16 int16_t; -typedef __int32 int32_t; -typedef __int64 int64_t; -#define inline __inline -#define __inline__ __inline -#define INT16_MAX 0x7fff -#define INT16_MIN (-INT16_MAX - 1) -#define _MMX_H_ - -/* disable the following warnings - * C4100: The formal parameter is not referenced in the body of the function. The unreferenced parameter is ignored. - * C4200: Non standard extension C zero sized array - * C4706: assignment within conditional expression - * C4244: conversion from 'type1' to 'type2', possible loss of data - * C4295: array is too small to include a terminating null character - * C4125: decimal digit terminates octal escape sequence - */ -#pragma warning(disable:4100 4200 4706 4295 4125) - -#pragma comment(lib, "ws2_32.lib") - -#define strncasecmp _strnicmp -#define strcasecmp _stricmp -#if _MSC_VER < 1900 -#define snprintf _snprintf -#else -#include -#endif - -#if !defined(INFINITY) -#define INFINITY 0x7fffffff -#endif -#endif - -#define PACKAGE "ilbc" -#define VERSION "0.0.1andabit" - -#define INT32_MAX (2147483647) -#define INT32_MIN (-2147483647 - 1) - -#define PRId8 "d" -#define PRId16 "d" -#define PRId32 "ld" -#define PRId64 "lld" - -#define PRIu8 "u" -#define PRIu16 "u" -#define PRIu32 "lu" -#define PRIu64 "llu" - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/libs/ilbc/src/msvc/msvcproj.foot b/libs/ilbc/src/msvc/msvcproj.foot deleted file mode 100644 index e8b521ca54..0000000000 --- a/libs/ilbc/src/msvc/msvcproj.foot +++ /dev/null @@ -1,7 +0,0 @@ - -# Begin Group "Resource Files" - -# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" -# End Group -# End Target -# End Project diff --git a/libs/ilbc/src/msvc/msvcproj.head b/libs/ilbc/src/msvc/msvcproj.head deleted file mode 100644 index 504419b16a..0000000000 --- a/libs/ilbc/src/msvc/msvcproj.head +++ /dev/null @@ -1,92 +0,0 @@ -# Microsoft Developer Studio Project File - Name="ilbc" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 - -CFG=ilbc - Win32 Debug -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "ilbc.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "ilbc.mak" CFG="ilbc - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "ilbc - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") -!MESSAGE "ilbc - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -MTL=midl.exe -RSC=rc.exe - -!IF "$(CFG)" == "ilbc - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "Release" -# PROP Intermediate_Dir "Release" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D HAVE_TGMATH_H /YX /FD /c -# ADD CPP /nologo /MT /W3 /GX /Zi /O2 /I "." /I "..\include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D HAVE_TGMATH_H /D "_WINDLL" /FR /FD /c -# SUBTRACT CPP /YX -# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 -# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 -# ADD LINK32 kernel32.lib ws2_32.lib winmm.lib /nologo /dll /map /debug /machine:I386 /out:"Release/libilbc.dll" - -!ELSEIF "$(CFG)" == "ilbc - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "Debug" -# PROP Intermediate_Dir "Debug" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D HAVE_TGMATH_H /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I "." /I "..\include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D HAVE_TGMATH_H /FR /FD /GZ /c -# SUBTRACT CPP /WX /YX -# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 -# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept -# ADD LINK32 kernel32.lib ws2_32.lib winmm.lib /nologo /dll /incremental:no /map /debug /machine:I386 /out:"Debug/libilbc.dll" /pdbtype:sept -# SUBTRACT LINK32 /nodefaultlib - -!ENDIF - -# Begin Target - -# Name "ilbc - Win32 Release" -# Name "ilbc - Win32 Debug" diff --git a/libs/ilbc/src/msvc/sys/time.h b/libs/ilbc/src/msvc/sys/time.h deleted file mode 100644 index bd3bcb2c7b..0000000000 --- a/libs/ilbc/src/msvc/sys/time.h +++ /dev/null @@ -1 +0,0 @@ -extern void gettimeofday(struct timeval *tv, void *tz); diff --git a/libs/ilbc/src/msvc/tgmath.h b/libs/ilbc/src/msvc/tgmath.h deleted file mode 100644 index a19c88153e..0000000000 --- a/libs/ilbc/src/msvc/tgmath.h +++ /dev/null @@ -1,84 +0,0 @@ -/* - * SpanDSP - a series of DSP components for telephony - * - * tgmath.h - a fudge for MSVC, which lacks this header - * - * Written by Steve Underwood - * - * Copyright (C) 2006 Michael Jerris - * - * - * This file is released in the public domain. - * - */ - -#if !defined(_TGMATH_H_) -#define _TGMATH_H_ - -#include - -#if !defined(M_PI) -/* C99 systems may not define M_PI */ -#define M_PI 3.14159265358979323846264338327 -#endif - - -#ifdef __cplusplus -extern "C" { -#endif - -/* A kindofa rint() for VC++ (only kindofa, because rint should be type generic, - and this one is purely float to int */ -static inline long int lrintf(float a) -{ - long int i; - - __asm - { - fld a - fistp i - } - return i; -} - -static inline long int lrint(double a) -{ - long int i; - - __asm - { - fld a - fistp i - } - return i; -} - -static inline int rintf(float a) -{ - int i; - - __asm - { - fld a - fistp i - } - return i; -} - -static inline int rint(double a) -{ - int i; - - __asm - { - fld a - fistp i - } - return i; -} - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/libs/ilbc/src/msvc/unistd.h b/libs/ilbc/src/msvc/unistd.h deleted file mode 100644 index fc8cd06d7b..0000000000 --- a/libs/ilbc/src/msvc/unistd.h +++ /dev/null @@ -1,31 +0,0 @@ -/* - * SpanDSP - a series of DSP components for telephony - * - * inttypes.h - a fudge for MSVC, which lacks this header - * - * Written by Steve Underwood - * - * Copyright (C) 2006 Michael Jerris - * - * - * This file is released in the public domain. - * - */ - -#if !defined(_INTTYPES_H_) -#define _INTTYPES_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -#define open _open -#define write _write - -extern int gethostname (char *name, size_t len); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/libs/ilbc/src/msvc/vc8proj.foot b/libs/ilbc/src/msvc/vc8proj.foot deleted file mode 100644 index 2b57fb4e9f..0000000000 --- a/libs/ilbc/src/msvc/vc8proj.foot +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - diff --git a/libs/ilbc/src/msvc/vc8proj.head b/libs/ilbc/src/msvc/vc8proj.head deleted file mode 100644 index a8a2c2d684..0000000000 --- a/libs/ilbc/src/msvc/vc8proj.head +++ /dev/null @@ -1,180 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/libs/ilbc/src/packing.c b/libs/ilbc/src/packing.c deleted file mode 100644 index c77c883fcb..0000000000 --- a/libs/ilbc/src/packing.c +++ /dev/null @@ -1,170 +0,0 @@ -/* - * iLBC - a library for the iLBC codec - * - * packing.c - The iLBC low bit rate speech codec. - * - * Adapted by Steve Underwood from the reference - * iLBC code supplied in RFC3951. - * - * Original code Copyright (C) The Internet Society (2004). - * All changes to produce this version Copyright (C) 2008 by Steve Underwood - * All Rights Reserved. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Id: packing.c,v 1.2 2008/03/06 12:27:38 steveu Exp $ - */ - -/*! \file */ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include -#include -#include - -#include "ilbc.h" -#include "constants.h" -#include "helpfun.h" -#include "string.h" -#include "packing.h" - -/*----------------------------------------------------------------* - * splitting an integer into first most significant bits and - * remaining least significant bits - *---------------------------------------------------------------*/ - -void packsplit(int *index, /* (i) the value to split */ - int *firstpart, /* (o) the value specified by most - significant bits */ - int *rest, /* (o) the value specified by least - significant bits */ - int bitno_firstpart, /* (i) number of bits in most - significant part */ - int bitno_total) /* (i) number of bits in full range of value */ -{ - int bitno_rest = bitno_total - bitno_firstpart; - - *firstpart = *index >> (bitno_rest); - *rest = *index - (*firstpart << (bitno_rest)); -} - -/*----------------------------------------------------------------* - * combining a value corresponding to msb's with a value - * corresponding to lsb's - *---------------------------------------------------------------*/ - -void packcombine(int *index, /* (i/o) the msb value in the combined value out */ - int rest, /* (i) the lsb value */ - int bitno_rest) /* (i) the number of bits in the lsb part */ -{ - *index = *index << bitno_rest; - *index += rest; -} - -/*----------------------------------------------------------------* - * packing of bits into bitstream, i.e., vector of bytes - *---------------------------------------------------------------*/ - -void dopack(uint8_t **bitstream, /* (i/o) on entrance pointer to - place in bitstream to pack - new data, on exit pointer - to place in bitstream to - pack future data */ - int index, /* (i) the value to pack */ - int bitno, /* (i) the number of bits that the - value will fit within */ - int *pos) /* (i/o) write position in the - current byte */ -{ - int posLeft; - - /* Clear the bits before starting in a new byte */ - if ((*pos) == 0) - **bitstream = 0; - - while (bitno > 0) - { - /* Jump to the next byte if end of this byte is reached*/ - if (*pos == 8) - { - *pos = 0; - (*bitstream)++; - **bitstream = 0; - } - - posLeft = 8 - (*pos); - - /* Insert index into the bitstream */ - if (bitno <= posLeft) - { - **bitstream |= (uint8_t) (index << (posLeft - bitno)); - *pos += bitno; - bitno = 0; - } - else - { - **bitstream |= (uint8_t) (index >> (bitno - posLeft)); - *pos = 8; - index -= ((index >> (bitno - posLeft)) << (bitno - posLeft)); - bitno -= posLeft; - } - } -} - -/*----------------------------------------------------------------* - * unpacking of bits from bitstream, i.e., vector of bytes - *---------------------------------------------------------------*/ - -void unpack(const uint8_t **bitstream, /* (i/o) on entrance pointer to - place in bitstream to - unpack new data from, on - exit pointer to place in - bitstream to unpack future - data from */ - int *index, /* (o) resulting value */ - int bitno, /* (i) number of bits used to represent the value */ - int *pos) /* (i/o) read position in the current byte */ -{ - int BitsLeft; - - *index = 0; - while (bitno > 0) - { - /* Move forward in bitstream when the end of the byte is reached */ - if (*pos == 8) - { - *pos = 0; - (*bitstream)++; - } - - BitsLeft = 8 - (*pos); - - /* Extract bits to index */ - if (BitsLeft >= bitno) - { - *index += ((((**bitstream) << (*pos)) & 0xFF) >> (8 - bitno)); - - *pos += bitno; - bitno = 0; - } - else - { - if ((8 - bitno) > 0) - { - *index += ((((**bitstream) << (*pos)) & 0xFF) >> (8 - bitno)); - *pos = 8; - } - else - { - *index += (((int) (((**bitstream) << (*pos)) & 0xFF)) << (bitno - 8)); - *pos = 8; - } - bitno -= BitsLeft; - } - } -} diff --git a/libs/ilbc/src/packing.h b/libs/ilbc/src/packing.h deleted file mode 100644 index ce5c726a20..0000000000 --- a/libs/ilbc/src/packing.h +++ /dev/null @@ -1,59 +0,0 @@ -/* - * iLBC - a library for the iLBC codec - * - * packing.h - The iLBC low bit rate speech codec. - * - * Adapted by Steve Underwood from the reference - * iLBC code supplied in RFC3951. - * - * Original code Copyright (C) The Internet Society (2004). - * All changes to produce this version Copyright (C) 2008 by Steve Underwood - * All Rights Reserved. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Id: packing.h,v 1.2 2008/03/06 12:27:38 steveu Exp $ - */ - -#ifndef __PACKING_H -#define __PACKING_H - -void packsplit(int *index, /* (i) the value to split */ - int *firstpart, /* (o) the value specified by most - significant bits */ - int *rest, /* (o) the value specified by least - significant bits */ - int bitno_firstpart, /* (i) number of bits in most - significant part */ - int bitno_total /* (i) number of bits in full range - of value */ -); - -void packcombine(int *index, /* (i/o) the msb value in the combined value out */ - int rest, /* (i) the lsb value */ - int bitno_rest); /* (i) the number of bits in the lsb part */ - -void dopack(uint8_t **bitstream, /* (i/o) on entrance pointer to - place in bitstream to pack - new data, on exit pointer - to place in bitstream to - pack future data */ - int index, /* (i) the value to pack */ - int bitno, /* (i) the number of bits that the - value will fit within */ - int *pos); /* (i/o) write position in the current byte */ - -void unpack(const uint8_t **bitstream, /* (i/o) on entrance pointer to - place in bitstream to - unpack new data from, on - exit pointer to place in - bitstream to unpack future - data from */ - int *index, /* (o) resulting value */ - int bitno, /* (i) number of bits used to - represent the value */ - int *pos); /* (i/o) read position in the current byte */ - -#endif diff --git a/libs/ilbc/src/syntFilter.c b/libs/ilbc/src/syntFilter.c deleted file mode 100644 index fbcb187ecd..0000000000 --- a/libs/ilbc/src/syntFilter.c +++ /dev/null @@ -1,77 +0,0 @@ -/* - * iLBC - a library for the iLBC codec - * - * syntFilter.c - The iLBC low bit rate speech codec. - * - * Adapted by Steve Underwood from the reference - * iLBC code supplied in RFC3951. - * - * Original code Copyright (C) The Internet Society (2004). - * All changes to produce this version Copyright (C) 2008 by Steve Underwood - * All Rights Reserved. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Id: syntFilter.c,v 1.2 2008/03/06 12:27:38 steveu Exp $ - */ - -/*! \file */ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include -#include - -#include "ilbc.h" -#include "syntFilter.h" - -/*----------------------------------------------------------------* - * LP synthesis filter. - *---------------------------------------------------------------*/ - -void syntFilter(float *Out, /* (i/o) Signal to be filtered */ - float *a, /* (i) LP parameters */ - int len, /* (i) Length of signal */ - float *mem) /* (i/o) Filter state */ -{ - int i; - int j; - float *po; - float *pi; - float *pa; - float *pm; - - po = Out; - - /* Filter first part using memory from past */ - for (i = 0; i < ILBC_LPC_FILTERORDER; i++) - { - pi = &Out[i - 1]; - pa = &a[1]; - pm = &mem[ILBC_LPC_FILTERORDER - 1]; - for (j = 1; j <= i; j++) - *po -= (*pa++)*(*pi--); - for (j = i + 1; j < ILBC_LPC_FILTERORDER + 1; j++) - *po -= (*pa++)*(*pm--); - po++; - } - - /* Filter last part where the state is entirely in - the output vector */ - - for (i = ILBC_LPC_FILTERORDER; i < len; i++) - { - pi = &Out[i - 1]; - pa = &a[1]; - for (j = 1; j < ILBC_LPC_FILTERORDER + 1; j++) - *po -= (*pa++)*(*pi--); - po++; - } - - /* Update state vector */ - memcpy(mem, &Out[len - ILBC_LPC_FILTERORDER], ILBC_LPC_FILTERORDER*sizeof(float)); -} diff --git a/libs/ilbc/src/syntFilter.h b/libs/ilbc/src/syntFilter.h deleted file mode 100644 index 118e89b62c..0000000000 --- a/libs/ilbc/src/syntFilter.h +++ /dev/null @@ -1,28 +0,0 @@ -/* - * iLBC - a library for the iLBC codec - * - * syntFilter.h - The iLBC low bit rate speech codec. - * - * Adapted by Steve Underwood from the reference - * iLBC code supplied in RFC3951. - * - * Original code Copyright (C) The Internet Society (2004). - * All changes to produce this version Copyright (C) 2008 by Steve Underwood - * All Rights Reserved. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Id: syntFilter.h,v 1.2 2008/03/06 12:27:38 steveu Exp $ - */ - -#ifndef __iLBC_SYNTFILTER_H -#define __iLBC_SYNTFILTER_H - -void syntFilter(float *Out, /* (i/o) Signal to be filtered */ - float *a, /* (i) LP parameters */ - int len, /* (i) Length of signal */ - float *mem); /* (i/o) Filter state */ - -#endif diff --git a/libs/ilbc/tests/Makefile.am b/libs/ilbc/tests/Makefile.am deleted file mode 100644 index 232353e1db..0000000000 --- a/libs/ilbc/tests/Makefile.am +++ /dev/null @@ -1,36 +0,0 @@ -## -## iLBC - a library for the iLBC codec -## -## Makefile.am -- Process this file with automake to produce Makefile.in -## -## This program is free software; you can redistribute it and/or modify -## it under the terms of the GNU General Public License version 2, as -## published by the Free Software Foundation. -## -## This program is distributed in the hope that it will be useful, -## but WITHOUT ANY WARRANTY; without even the implied warranty of -## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -## GNU General Public License for more details. -## -## You should have received a copy of the GNU General Public License -## along with this program; if not, write to the Free Software -## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -## -## $Id: Makefile.am,v 1.1.1.1 2008/02/15 12:15:55 steveu Exp $ - -AM_CFLAGS = $(COMP_VENDOR_CFLAGS) - -LIBS += $(TESTLIBS) - -EXTRA_DIST = regression_tests.sh - -MAINTAINERCLEANFILES = Makefile.in - -AM_CPPFLAGS = -I$(top_builddir)/src -DDATADIR="\"$(pkgdatadir)\"" - -LIBDIR = -L$(top_builddir)/src - -noinst_PROGRAMS = ilbc_tests - -ilbc_tests_SOURCES = ilbc_tests.c -ilbc_tests_LDADD = $(LIBDIR) -lilbc diff --git a/libs/ilbc/tests/ilbc_tests.c b/libs/ilbc/tests/ilbc_tests.c deleted file mode 100644 index 83d2f177fc..0000000000 --- a/libs/ilbc/tests/ilbc_tests.c +++ /dev/null @@ -1,351 +0,0 @@ -/* - * iLBC - a library for the iLBC codec - * - * ilbc_tests.c - Test the iLBC low bit rate speech codec. - * - * Adapted by Steve Underwood from the reference - * iLBC code supplied in RFC3951. - * - * Copyright (C) The Internet Society (2004). - * All Rights Reserved. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - * $Id: ilbc_tests.c,v 1.1.1.1 2008/02/15 12:15:55 steveu Exp $ - */ - -/*! \file */ - -/*! \page ilbc_tests_page iLBC codec tests -\section ilbc_tests_page_sec_1 What does it do? - -\section ilbc_tests_page_sec_2 How is it used? -To perform a general audio quality test, ilbc_tests should be run. The file ../localtests/short_nb_voice.wav -will be compressed to iLBC data, decompressed, and the resulting audio stored in post_ilbc.wav. -*/ - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#include -#include -#include -#include -#include -#include -#include -#include - -#include "ilbc.h" - -#define IN_FILE_NAME "../localtests/dam9.wav" -#define REF_FILE_NAME "../localtests/dam9_lpc55.wav" -#define COMPRESS_FILE_NAME "lpc10_out.lpc10" -#define DECOMPRESS_FILE_NAME "lpc10_in.lpc10" -#define OUT_FILE_NAME "post_lpc10.wav" - -#define SAMPLE_RATE 8000 - -/*---------------------------------------------------------------* - * Main program to test iLBC encoding and decoding - * - * Usage: - * exefile_name.exe - * - * : Input file, speech for encoder (16-bit PCM file) - * : Bit stream output from the encoder - * : Output file, decoded speech (16-bit PCM file) - * : Bit error file, optional (16-bit) - * 1 - Packet received correctly - * 0 - Packet Lost - *--------------------------------------------------------------*/ -int main(int argc, char *argv[]) -{ - AFfilehandle inhandle; - AFfilehandle refhandle; - AFfilehandle outhandle; - AFfilesetup filesetup; - int frames; - int outframes; - int compress_file; - int decompress_file; - float x; - - float starttime; - float runtime; - float outtime; - FILE *ifileid; - FILE *efileid; - FILE *ofileid; - FILE *cfileid; - int16_t data[ILBC_BLOCK_LEN_MAX]; - uint8_t encoded_data[ILBC_NO_OF_BYTES_MAX]; - int16_t decoded_data[ILBC_BLOCK_LEN_MAX]; - int len; - int16_t pli; - int16_t mode; - int blockcount = 0; - int packetlosscount = 0; - - /* Create structs */ - ilbc_encode_state_t Enc_Inst; - ilbc_decode_state_t Dec_Inst; - - compress_file = -1; - decompress_file = -1; - inhandle = AF_NULL_FILEHANDLE; - refhandle = AF_NULL_FILEHANDLE; - outhandle = AF_NULL_FILEHANDLE; -#if 0 - if (!decompress) - { - if ((inhandle = afOpenFile(in_file_name, "r", 0)) == AF_NULL_FILEHANDLE) - { - fprintf(stderr, " Cannot open wave file '%s'\n", in_file_name); - exit(2); - } - if ((x = afGetFrameSize(inhandle, AF_DEFAULT_TRACK, 1)) != 2.0) - { - fprintf(stderr, " Unexpected frame size in wave file '%s'\n", in_file_name); - exit(2); - } - if ((x = afGetRate(inhandle, AF_DEFAULT_TRACK)) != (float) SAMPLE_RATE) - { - fprintf(stderr, " Unexpected sample rate in wave file '%s'\n", in_file_name); - exit(2); - } - if ((x = afGetChannels(inhandle, AF_DEFAULT_TRACK)) != 1.0) - { - fprintf(stderr, " Unexpected number of channels in wave file '%s'\n", in_file_name); - exit(2); - } - if ((filesetup = afNewFileSetup()) == AF_NULL_FILESETUP) - { - fprintf(stderr, " Failed to create file setup\n"); - exit(2); - } - - if ((refhandle = afOpenFile(REF_FILE_NAME, "r", 0)) == AF_NULL_FILEHANDLE) - { - fprintf(stderr, " Cannot open wave file '%s'\n", REF_FILE_NAME); - exit(2); - } - if ((x = afGetFrameSize(refhandle, AF_DEFAULT_TRACK, 1)) != 2.0) - { - fprintf(stderr, " Unexpected frame size in wave file '%s'\n", REF_FILE_NAME); - exit(2); - } - if ((x = afGetRate(refhandle, AF_DEFAULT_TRACK)) != (float) SAMPLE_RATE) - { - fprintf(stderr, " Unexpected sample rate in wave file '%s'\n", REF_FILE_NAME); - exit(2); - } - if ((x = afGetChannels(refhandle, AF_DEFAULT_TRACK)) != 1.0) - { - fprintf(stderr, " Unexpected number of channels in wave file '%s'\n", REF_FILE_NAME); - exit(2); - } - } - else - { - if ((decompress_file = open(DECOMPRESS_FILE_NAME, O_RDONLY)) < 0) - { - fprintf(stderr, " Cannot open decompressed data file '%s'\n", DECOMPRESS_FILE_NAME); - exit(2); - } - } - - if ((filesetup = afNewFileSetup()) == AF_NULL_FILESETUP) - { - fprintf(stderr, " Failed to create file setup\n"); - exit(2); - } - afInitSampleFormat(filesetup, AF_DEFAULT_TRACK, AF_SAMPFMT_TWOSCOMP, 16); - afInitRate(filesetup, AF_DEFAULT_TRACK, (float) SAMPLE_RATE); - afInitFileFormat(filesetup, AF_FILE_WAVE); - afInitChannels(filesetup, AF_DEFAULT_TRACK, 1); - - if ((outhandle = afOpenFile(OUT_FILE_NAME, "w", filesetup)) == AF_NULL_FILEHANDLE) - { - fprintf(stderr, " Cannot create wave file '%s'\n", OUT_FILE_NAME); - exit(2); - } -#endif - - if ((argc != 5) && (argc != 6)) - { - fprintf(stderr, - "\n*-----------------------------------------------*\n"); - fprintf(stderr, - " %s <20,30> input encoded decoded (channel)\n\n", - argv[0]); - fprintf(stderr, - " mode : Frame size for the encoding/decoding\n"); - fprintf(stderr, - " 20 - 20 ms\n"); - fprintf(stderr, - " 30 - 30 ms\n"); - fprintf(stderr, - " input : Speech for encoder (16-bit pcm file)\n"); - fprintf(stderr, - " encoded : Encoded bit stream\n"); - fprintf(stderr, - " decoded : Decoded speech (16-bit pcm file)\n"); - fprintf(stderr, - " channel : Packet loss pattern, optional (16-bit)\n"); - fprintf(stderr, - " 1 - Packet received correctly\n"); - fprintf(stderr, - " 0 - Packet Lost\n"); - fprintf(stderr, - "*-----------------------------------------------*\n\n"); - exit(1); - } - mode = atoi(argv[1]); - if (mode != 20 && mode != 30) - { - fprintf(stderr,"Wrong mode %s, must be 20, or 30\n", - argv[1]); - exit(2); - } - if ((ifileid = fopen(argv[2],"rb")) == NULL) - { - fprintf(stderr,"Cannot open input file %s\n", argv[2]); - exit(2); - } - if ((efileid = fopen(argv[3],"wb")) == NULL) - { - fprintf(stderr, "Cannot open encoded file %s\n", - argv[3]); - exit(1); - } - if ((ofileid = fopen(argv[4],"wb")) == NULL) - { - fprintf(stderr, "Cannot open decoded file %s\n", - argv[4]); - exit(1); - } - if (argc == 6) - { - if( (cfileid=fopen(argv[5],"rb")) == NULL) - { - fprintf(stderr, "Cannot open channel file %s\n", - argv[5]); - exit(1); - } - } - else - { - cfileid=NULL; - } - - /* print info */ - - fprintf(stderr, "\n"); - fprintf(stderr, - "*---------------------------------------------------*\n"); - fprintf(stderr, - "* *\n"); - fprintf(stderr, - "* iLBC test program *\n"); - fprintf(stderr, - "* *\n"); - fprintf(stderr, - "* *\n"); - fprintf(stderr, - "*---------------------------------------------------*\n"); - fprintf(stderr, "\nMode : %2d ms\n", mode); - fprintf(stderr, "Input file : %s\n", argv[2]); - fprintf(stderr, "Encoded file : %s\n", argv[3]); - fprintf(stderr, "Output file : %s\n", argv[4]); - if (argc == 6) - fprintf(stderr,"Channel file : %s\n", argv[5]); - fprintf(stderr, "\n"); - - /* Initialization */ - - ilbc_encode_init(&Enc_Inst, mode); - ilbc_decode_init(&Dec_Inst, mode, 1); - - /* Runtime statistics */ - starttime = clock()/(float)CLOCKS_PER_SEC; - - /* Loop over input blocks */ - while (fread(data, sizeof(int16_t), Enc_Inst.blockl, ifileid) == Enc_Inst.blockl) - { - blockcount++; - - /* Encoding */ - fprintf(stderr, "--- Encoding block %i --- ",blockcount); - len = ilbc_encode(&Enc_Inst, encoded_data, data, Enc_Inst.blockl); - fprintf(stderr, "\r"); - - /* Write byte file */ - fwrite(encoded_data, sizeof(uint8_t), len, efileid); - - /* Get channel data if provided */ - if (argc == 6) - { - if (fread(&pli, sizeof(int16_t), 1, cfileid)) - { - if ((pli != 0) && (pli != 1)) - { - fprintf(stderr, "Error in channel file\n"); - exit(0); - } - if (pli == 0) - { - /* Packet loss -> remove info from frame */ - memset(encoded_data, 0, len); - packetlosscount++; - } - } - else - { - fprintf(stderr, "Error. Channel file too int16_t\n"); - exit(0); - } - } - else - { - pli = 1; - } - - /* Decoding */ - fprintf(stderr, "--- Decoding block %i --- ", blockcount); - - if (pli) - len = ilbc_decode(&Dec_Inst, decoded_data, encoded_data, len); - else - len = ilbc_fillin(&Dec_Inst, decoded_data, len); - fprintf(stderr, "\r"); - - /* Write output file */ - fwrite(decoded_data, sizeof(int16_t), len, ofileid); - } - - /* Runtime statistics */ - runtime = (float) (clock()/(float) CLOCKS_PER_SEC - starttime); - outtime = (float) ((float) blockcount*(float) mode/1000.0f); - printf("\n\nLength of speech file: %.1f s\n", outtime); - printf("Packet loss : %.1f%%\n", - 100.0f*(float) packetlosscount/(float) blockcount); - printf("Time to run iLBC :"); - printf(" %.1f s (%.1f%% of realtime)\n\n", runtime, 100.0f*runtime/outtime); - - /* close files */ - fclose(ifileid); - fclose(efileid); - fclose(ofileid); - if (argc == 6) - fclose(cfileid); - return(0); -} diff --git a/libs/ilbc/tests/regression_tests.sh b/libs/ilbc/tests/regression_tests.sh deleted file mode 100755 index 0b9c1df65c..0000000000 --- a/libs/ilbc/tests/regression_tests.sh +++ /dev/null @@ -1,108 +0,0 @@ -#!/bin/sh -# -# iLBC - a library for the iLBC codec -# -# regression_tests.sh -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License version 2, as -# published by the Free Software Foundation. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -# -# $Id: regression_tests.sh,v 1.1.1.1 2008/02/15 12:15:55 steveu Exp $ -# - -STDOUT_DEST=xyzzy -STDERR_DEST=xyzzy2 - -echo Performing basic iLBC regression tests -echo - -./ilbc_tests 20 ../localtests/iLBC.INP iLBC_20ms.BIT iLBC_20ms_clean.OUT ../localtests/clean.chn >$STDOUT_DEST 2>$STDERR_DEST -RETVAL=$? -if [ $RETVAL != 0 ] -then - echo ilbc_tests 20ms clean failed! - exit $RETVAL -fi -diff iLBC_20ms.BIT ../localtests/iLBC_20ms.BIT -RETVAL=$? -if [ $RETVAL != 0 ] -then - echo ilbc_tests 20ms clean failed! - #exit $RETVAL -fi -diff iLBC_20ms_clean.OUT ../localtests/iLBC_20ms_clean.OUT -RETVAL=$? -if [ $RETVAL != 0 ] -then - echo ilbc_tests 20ms clean failed! - #exit $RETVAL -fi -echo ilbc_tests 20ms clean completed OK - -./ilbc_tests 20 ../localtests/iLBC.INP tmp.BIT iLBC_20ms_tlm05.OUT ../localtests/tlm05.chn >$STDOUT_DEST 2>$STDERR_DEST -RETVAL=$? -if [ $RETVAL != 0 ] -then - echo ilbc_tests 20ms 5% loss failed! - exit $RETVAL -fi -diff iLBC_20ms_tlm05.OUT ../localtests/iLBC_20ms_tlm05.OUT -RETVAL=$? -if [ $RETVAL != 0 ] -then - echo ilbc_tests 20ms clean failed! - #exit $RETVAL -fi -echo ilbc_tests 20ms 5% loss completed OK - -./ilbc_tests 30 ../localtests/iLBC.INP iLBC_30ms.BIT iLBC_30ms_clean.OUT ../localtests/clean.chn >$STDOUT_DEST 2>$STDERR_DEST -RETVAL=$? -if [ $RETVAL != 0 ] -then - echo ilbc_tests 30ms clean failed! - exit $RETVAL -fi -diff iLBC_30ms.BIT ../localtests/iLBC_30ms.BIT -RETVAL=$? -if [ $RETVAL != 0 ] -then - echo ilbc_tests 30ms clean failed! - #exit $RETVAL -fi -diff iLBC_30ms_clean.OUT ../localtests/iLBC_30ms_clean.OUT -RETVAL=$? -if [ $RETVAL != 0 ] -then - echo ilbc_tests 30ms clean failed! - #exit $RETVAL -fi -echo ilbc_tests 30ms clean completed OK - -./ilbc_tests 30 ../localtests/iLBC.INP tmp.BIT iLBC_30ms_tlm05.OUT ../localtests/tlm05.chn >$STDOUT_DEST 2>$STDERR_DEST -RETVAL=$? -if [ $RETVAL != 0 ] -then - echo ilbc_tests 30ms 5% loss failed! - exit $RETVAL -fi -diff iLBC_30ms_tlm05.OUT ../localtests/iLBC_30ms_tlm05.OUT -RETVAL=$? -if [ $RETVAL != 0 ] -then - echo ilbc_tests 30ms clean failed! - #exit $RETVAL -fi -echo ilbc_tests 30ms 5% loss completed OK - -echo -echo All regression tests successfully completed diff --git a/libs/ilbc/wrapper.xsl b/libs/ilbc/wrapper.xsl deleted file mode 100644 index 89e314d781..0000000000 --- a/libs/ilbc/wrapper.xsl +++ /dev/null @@ -1,5 +0,0 @@ - - - css.css - \ No newline at end of file diff --git a/libs/win32/Download iLBC.2015.vcxproj b/libs/win32/Download iLBC.2015.vcxproj new file mode 100644 index 0000000000..7930394232 --- /dev/null +++ b/libs/win32/Download iLBC.2015.vcxproj @@ -0,0 +1,82 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + Download iLBC + Download iLBC + Win32Proj + {53AADA60-DF12-46FF-BF94-566BBF849336} + + + + Utility + MultiByte + v140 + + + Utility + MultiByte + v140 + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(PlatformName)\iLBC\$(Configuration)\ + $(PlatformName)\iLBC\$(Configuration)\ + + + + $(IntDir)BuildLog $(ProjectName).htm + + + + + + + + + $(IntDir)BuildLog $(ProjectName).htm + + + + + + + + + Document + Downloading iLBC. + if not exist "$(iLBCLibDir)" cscript /nologo "$(ProjectDir)util.vbs" GetUnzip http://files.freeswitch.org/downloads/libs/ilbc-$(iLBC_Version).tar.gz "$(ProjectDir).." + + $(iLBCLibDir);%(Outputs) + Downloading iLBC. + if not exist "$(iLBCLibDir)" cscript /nologo "$(ProjectDir)util.vbs" GetUnzip http://files.freeswitch.org/downloads/libs/ilbc-$(iLBC_Version).tar.gz "$(ProjectDir).." + + $(iLBCLibDir);%(Outputs) + + + + + + \ No newline at end of file diff --git a/libs/ilbc/libilbc.2015.vcxproj b/libs/win32/ilbc/libilbc.2015.vcxproj similarity index 66% rename from libs/ilbc/libilbc.2015.vcxproj rename to libs/win32/ilbc/libilbc.2015.vcxproj index 58101cb472..41db5cb6f5 100644 --- a/libs/ilbc/libilbc.2015.vcxproj +++ b/libs/win32/ilbc/libilbc.2015.vcxproj @@ -1,175 +1,177 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - libilbc - {9A5DDF08-C88C-4A35-B7F6-D605228446BD} - libilbc - Win32Proj - - - - StaticLibrary - Unicode - true - v140 - - - StaticLibrary - Unicode - v140 - - - StaticLibrary - Unicode - true - v140 - - - StaticLibrary - Unicode - v140 - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>10.0.30319.1 - - - - Disabled - src; src\ilbc; src\msvc;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBilbc_EXPORTS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - Level4 - 4127;%(DisableSpecificWarnings) - - - - - src; src\ilbc; src\msvc;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBilbc_EXPORTS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions) - MultiThreadedDLL - Level4 - 4127;%(DisableSpecificWarnings) - - - - - X64 - - - Disabled - src; src\ilbc; src\msvc;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBilbc_EXPORTS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - Level4 - 4127;%(DisableSpecificWarnings) - - - - - X64 - - - src; src\ilbc; src\msvc;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBilbc_EXPORTS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions) - MultiThreadedDLL - Level4 - 4127;%(DisableSpecificWarnings) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + libilbc + {9A5DDF08-C88C-4A35-B7F6-D605228446BD} + libilbc + Win32Proj + + + + StaticLibrary + Unicode + true + v140 + + + StaticLibrary + Unicode + v140 + + + StaticLibrary + Unicode + true + v140 + + + StaticLibrary + Unicode + v140 + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + + + + Disabled + WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBilbc_EXPORTS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + Level4 + 4127;%(DisableSpecificWarnings) + + + + + WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBilbc_EXPORTS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions) + MultiThreadedDLL + Level4 + 4127;%(DisableSpecificWarnings) + + + + + X64 + + + Disabled + WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBilbc_EXPORTS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + Level4 + 4127;%(DisableSpecificWarnings) + + + + + X64 + + + WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBilbc_EXPORTS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions) + MultiThreadedDLL + Level4 + 4127;%(DisableSpecificWarnings) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {53aada60-df12-46ff-bf94-566bbf849336} + + + + + \ No newline at end of file diff --git a/src/mod/codecs/mod_ilbc/mod_ilbc.2015.vcxproj b/src/mod/codecs/mod_ilbc/mod_ilbc.2015.vcxproj index 49a66dbd4e..820a2c9db4 100644 --- a/src/mod/codecs/mod_ilbc/mod_ilbc.2015.vcxproj +++ b/src/mod/codecs/mod_ilbc/mod_ilbc.2015.vcxproj @@ -46,6 +46,7 @@ v140 + @@ -70,12 +71,10 @@ - %(RootDir)%(Directory)..\..\..\..\libs\ilbc\src\ilbc;%(AdditionalIncludeDirectories) - ..\..\..\..\libs\codec\ilbc\$(OutDir);%(AdditionalLibraryDirectories) false @@ -86,12 +85,10 @@ X64 - %(RootDir)%(Directory)..\..\..\..\libs\ilbc\src\ilbc;%(AdditionalIncludeDirectories) - ..\..\..\..\libs\codec\ilbc\$(OutDir);%(AdditionalLibraryDirectories) false @@ -100,12 +97,10 @@ - %(RootDir)%(Directory)..\..\..\..\libs\ilbc\src\ilbc;%(AdditionalIncludeDirectories) - ..\..\..\..\libs\codec\ilbc\$(OutDir);%(AdditionalLibraryDirectories) false @@ -116,12 +111,10 @@ X64 - %(RootDir)%(Directory)..\..\..\..\libs\ilbc\src\ilbc;%(AdditionalIncludeDirectories) - ..\..\..\..\libs\codec\ilbc\$(OutDir);%(AdditionalLibraryDirectories) false @@ -132,7 +125,7 @@ - + {9a5ddf08-c88c-4a35-b7f6-d605228446bd} false diff --git a/w32/ilbc-version.props b/w32/ilbc-version.props new file mode 100644 index 0000000000..76d35e0705 --- /dev/null +++ b/w32/ilbc-version.props @@ -0,0 +1,17 @@ + + + + + 0.0.1 + + + true + + + + + + $(iLBC_Version) + + + \ No newline at end of file diff --git a/w32/ilbc.props b/w32/ilbc.props new file mode 100644 index 0000000000..9e516c1485 --- /dev/null +++ b/w32/ilbc.props @@ -0,0 +1,15 @@ + + + + + + + $(SolutionDir)libs\iLBC-$(iLBC_Version) + + + + $(iLBCLibDir)\src;$(iLBCLibDir)\src\ilbc;$(iLBCLibDir)\src\msvc;%(AdditionalIncludeDirectories) + $(SolutionDir)\libs\codec\ilbc\$(OutDir);%(AdditionalLibraryDirectories) + + + \ No newline at end of file