pax_global_header00006660000000000000000000000064137424612470014524gustar00rootroot0000000000000052 comment=d144eb517547dcdb22006bc92489470998d38c8c sqlitebrowser-3.12.1/000077500000000000000000000000001374246124700145155ustar00rootroot00000000000000sqlitebrowser-3.12.1/.github/000077500000000000000000000000001374246124700160555ustar00rootroot00000000000000sqlitebrowser-3.12.1/.github/FUNDING.yml000066400000000000000000000000161374246124700176670ustar00rootroot00000000000000patreon: db4s sqlitebrowser-3.12.1/.github/ISSUE_TEMPLATE.md000066400000000000000000000017051374246124700205650ustar00rootroot00000000000000### Details for the issue ### Useful extra information #### I'm opening this issue because: - [ ] DB4S is crashing - [ ] DB4S has a bug - [ ] DB4S needs a feature - [ ] DB4S has another problem #### I'm using DB4S on: - [ ] Windows: ( _version:_ ___ ) - [ ] Linux: ( _distro:_ ___ ) - [ ] Mac OS: ( _version:_ ___ ) - [ ] Other: ___ #### I'm using DB4S version: - [ ] 3.11.2 - [ ] 3.11.1 - [ ] 3.10.1 - [ ] Other: ___ #### I have also: - [ ] Tried out the latest nightly version: https://github.com/sqlitebrowser/sqlitebrowser#nightly-builds - [ ] Searched for an existing similar issue: https://github.com/sqlitebrowser/sqlitebrowser/issues?utf8=%E2%9C%93&q=is%3Aissue%20 sqlitebrowser-3.12.1/.github/ISSUE_TEMPLATE/000077500000000000000000000000001374246124700202405ustar00rootroot00000000000000sqlitebrowser-3.12.1/.github/ISSUE_TEMPLATE/Bug_report.md000066400000000000000000000021031374246124700226660ustar00rootroot00000000000000--- name: Bug Report about: Create a report to help us improve title: '' labels: '' assignees: '' --- Details for the issue -------------------- #### What did you do? #### What did you expect to see? #### What did you see instead? Useful extra information ------------------------- The info below often helps, please fill it out if you're able to. :) #### What operating system are you using? - [ ] Windows: ( _version:_ ___ ) - [ ] Linux: ( _distro:_ ___ ) - [ ] macOS: ( _version:_ ___ ) - [ ] Other: ___ #### What is your DB4S version? - [ ] 3.11.2 - [ ] 3.11.1 - [ ] 3.10.1 - [ ] Other: ___ #### Did you also - [ ] Try out the latest nightly version: https://github.com/sqlitebrowser/sqlitebrowser#nightly-builds - [ ] Search for an existing similar issue: https://github.com/sqlitebrowser/sqlitebrowser/issues?utf8=%E2%9C%93&q=is%3Aissue%20 sqlitebrowser-3.12.1/.github/ISSUE_TEMPLATE/Feature_request.md000066400000000000000000000011111374246124700237170ustar00rootroot00000000000000--- name: Feature Request about: Suggest an idea or request a new feature title: '' labels: '' assignees: '' --- Describe the new feature -------------------------- Additional info --------------- Please answer these questions before submitting your feature request. #### Is your feature request related to an issue? Please include the issue number. #### Does this feature exist in another product or project? Please provide a link. #### Do you have a screenshot? Please add screenshots to help explain your idea. sqlitebrowser-3.12.1/.github/ISSUE_TEMPLATE/Question.md000066400000000000000000000005461374246124700223760ustar00rootroot00000000000000--- name: Question about: Ask a question related to this project or SQLite in general title: '' labels: '' assignees: '' --- What is your question ----------------------- sqlitebrowser-3.12.1/.gitignore000066400000000000000000000012051374246124700165030ustar00rootroot00000000000000Makefile sqlitebrowser.pro.user .qmake.stash CMakeLists.txt.user CMakeFiles *.cmake *.cxx_parameters # ignore any build folders build*/ # folder with temporary test data testdata/ src/.ui/ src/sqlitebrowser src/Makefile* src/debug src/release src/gen_version.h # ignore compiled translation files src/translations/*.qm # ignore compiled macOS app src/*.app/ # no one needs the txt file src/grammar/sqlite3TokenTypes.txt libs/*/Makefile* libs/*/*/Makefile* libs/*/debug/ libs/*/*/debug/ libs/*/release/ libs/*/*/release/ libs/*/*.a libs/*/*/*.a # Ignore .DS_Store files on OSX .DS_Store .project .settings/org.eclipse.core.resources.prefs sqlitebrowser-3.12.1/.travis.yml000066400000000000000000000046441374246124700166360ustar00rootroot00000000000000language: cpp sudo: required dist: xenial branches: only: - master # env: # - ARCH=x86_64 DOCKER_IMAGE=amd64/ubuntu:trusty # - ARCH=i686 DOCKER_IMAGE=i386/ubuntu:trusty matrix: fast_finish: true include: - compiler: gcc addons: apt: sources: - ubuntu-toolchain-r-test packages: - g++-5 env: COMPILER=g++-5 CXX=g++-5 - compiler: clang addons: apt: sources: - ubuntu-toolchain-r-test - llvm-toolchain-precise-3.8 packages: - clang-3.8 env: COMPILER=clang++-3.8 before_install: - sudo apt-get update -qq - sudo apt-get --force-yes install build-essential git-core cmake libsqlite3-dev qt5-default qttools5-dev-tools libsqlcipher-dev qtbase5-dev libqt5scintilla2-dev libqcustomplot-dev qttools5-dev install: - if [ "$CXX" = "g++" ]; then export CXX="g++-5" CC="gcc-5"; fi - if [ "$CXX" = "clang++" ]; then export CXX="clang++-3.8" CC="clang-3.8"; fi script: - mkdir build - mkdir build_cipher - mkdir appbuild - mkdir appdir - cd build - cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr -DENABLE_TESTING=ON .. - make - ctest -V - cd ../build_cipher - cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr -DENABLE_TESTING=ON -Dsqlcipher=1 .. - make - ctest -V - cd ../appbuild - cmake -DCMAKE_INSTALL_PREFIX:PATH=../appdir/usr -Wno-dev -Dsqlcipher=1 -DSQLITE_ENABLE_JSON1=1 .. - make install - cd .. - git rev-list master --count - wget -c -nv "https://github.com/probonopd/linuxdeployqt/releases/download/6/linuxdeployqt-6-x86_64.AppImage" - chmod a+x linuxdeployqt-6-x86_64.AppImage - export VERSION=$(printf "`master`-`git rev-list HEAD --count`-` git -C . rev-parse --short HEAD`") #$(git rev-parse --short HEAD) # linuxdeployqt uses this for naming the file - ./linuxdeployqt-6-x86_64.AppImage appdir/usr/share/applications/*.desktop -appimage after_success: - find appdir -executable -type f -exec ldd {} \; | grep " => /usr" | cut -d " " -f 2-3 | sort | uniq - wget -c https://github.com/probonopd/uploadtool/raw/master/upload.sh - bash upload.sh DB_Browser_for_SQLite*.AppImage* notifications: email: recipients: - mkleusberg@gmail.com - innermous@gmail.com - justin@postgresql.org - mgrojo@gmail.com on_success: never on_failure: always slack: secure: ax5bu7ySF+wlG0pCmQqyzvaurzQt2yLnp/u4KajyFCgWZKOwcvElndjhvW8bIRNgWrGP8TVPkosHhwGucFQNjJq5hHJIbuPzfBTIbITCVbKJNRqeqL0QXlKLwMTejX9AUYwzzJ3xTTj8rZn/UMocsiCy7uPuK1v/5BhZfEr3BBU= sqlitebrowser-3.12.1/BUILDING.md000066400000000000000000000246001374246124700162360ustar00rootroot00000000000000## BUILD INSTRUCTIONS AND REQUIREMENTS DB Browser for SQLite requires Qt as well as SQLite. For more information on Qt please consult http://www.qt.io and for SQLite please see https://sqlite.org/. Please note that all versions after 3.9.1 will require: * Qt 5.5 or later, however we advise you to use 5.7 or later * A C++ compiler with support for C++11 or later Without these or with older versions you won't be able to compile DB Browser for Sqlite anymore. This applies to all platforms. However, most likely you won't have to worry about these as most systems meet these requirements today. If you have any chance, please use Qt 5.7 or any later version. Even though Qt 5.5 and 5.6 are supported by us, there might be glitches and minor problems when using them. ### Generic Linux and FreeBSD The only requirements for building this code are the presence of Qt5 and sqlite3. Qt can be included as a static or shared library, depending on the current Qt configuration on the building machine. Provided you have Qt and cmake installed and configured, simply run: $ cmake . There is one potential problem... several Linux distributions provide a QScintilla package compiled for (only) Qt4. If it's present it can confuse CMake, which will use it during compiling. The resulting program just crashes instead of running. If you experience that kind of crash, try using this cmake command instead when compiling: $ cmake -DFORCE_INTERNAL_QSCINTILLA=ON That tells cmake to compile QScintilla itself, using the source code version we bundle. After the cmake line, run this: $ make in the main directory. This will generate the sqlitebrowser (or `sqlitebrowser.exe`, or `sqlitebrowser.app`) application in the src subdirectory. On some distributions you can then install this in the correct places by running: $ sudo make install The same process works for building the code in any platform supported by Qt (including other Unix systems with X11.) ### Ubuntu Linux ```bash $ sudo apt install build-essential git-core cmake libsqlite3-dev qt5-default qttools5-dev-tools \ libsqlcipher-dev qtbase5-dev libqt5scintilla2-dev libqcustomplot-dev qttools5-dev $ git clone https://github.com/sqlitebrowser/sqlitebrowser $ cd sqlitebrowser $ mkdir build $ cd build $ cmake -Dsqlcipher=1 -Wno-dev .. $ make $ sudo make install ``` This should complete without errors, giving you a binary file called 'sqlitebrowser'. Done. :) ### CentOS / Fedora Linux **Note** - On CentOS or an older version of Fedora, you may need to use `yum` instead of `dnf`. **Note 2** - On CentOS 7.x, you need to replace the `qwt-qt5-devel` package name with `qt5-qtbase-devel` in the `dnf install` line below. ``` $ sudo dnf install cmake gcc-c++ git qt-devel qt5-linguist qwt-qt5-devel \ sqlite-devel $ git clone https://github.com/sqlitebrowser/sqlitebrowser $ cd sqlitebrowser $ cmake -Wno-dev . $ make $ sudo make install ``` This should complete without errors, and `sqlitebrowser` should now be launch-able from the command line. ### OpenSUSE ```bash $ zypper in -y build git-core, libQt5Core5, libQt5Core5-32bit, libqt5-qtbase, libqt5-qtbase-devel, libqt5-qttools, libqt5-qttools-devel, build, gcc-c++, gcc, sqlite3-devel, libsqlite3-0, cmake, sqlcipher-devel $ git clone https://github.com/sqlitebrowser/sqlitebrowser $ cd sqlitebrowser $ mkdir build $ cd build $ cmake -Dsqlcipher=1 -Wno-dev -DFORCE_INTERNAL_QSCINTILLA=ON .. $ make $ sudo make install ``` ### macOS The application can be compiled to a single executable binary file, similar to other command line utilities, or it can be compiled to an .app bundle, suitable for placing in /Applications. ### Building a single executable binary This is incredibly easy using [Homebrew](http://brew.sh). Just run this command: $ brew install sqlitebrowser And you're done. A "sqlitebrowser" command should now be available in your PATH, and can also be launched through Spotlight. ### Building an .app bundle Building an .app bundle version takes a bit more effort, but isn't too hard. It requires SQLite and Qt 5.x to be installed first. These are the [Homebrew](http://brew.sh) steps, though other package managers should work: $ brew install sqlite --with-functions --with-json1 --without-readline $ brew install qt $ brew link sqlite3 --force Then it's just a matter of getting the source: $ git clone https://github.com/sqlitebrowser/sqlitebrowser.git **Note** - Don't clone the repo to a directory with a quote character (') in its name (eg ~/tmp/foo'), as compiling will error out. And compiling it: $ cd sqlitebrowser $ qmake $ make $ brew unlink sqlite3 $ mv src/DB\ Browser\ for\ SQLite.app /Applications/ An icon for "DB Browser for SQLite" should now be in your main OSX Applications list, ready to launch. **Note 2** - There have been occasional [reports of compilation problems on OSX 10.9](https://github.com/sqlitebrowser/sqlitebrowser/issues/38), with the 'make' step complaining about no targets. This seems to be solvable by running: $ qmake -spec macx-g++ or: $ qmake -spec macx-llvm (before the 'make' step) ### Building with CMake Install Qt and SQLite as instructed in the previous section and clone the repo to a directory (it's `sqlitebrowser` as usual). Install CMake: $ brew install cmake And build with these commands: $ cd sqlitebrowser $ mkdir build # You can easily make a fresh build again by removing this directory $ cd build $ cmake -DCMAKE_PREFIX_PATH=/usr/local/opt/qt .. $ cmake --build . ### Compiling on Windows with MSVC Complete setup, build, and packaging instructions with MSVC 2013 x64 are online here:     https://github.com/sqlitebrowser/sqlitebrowser/wiki/Setting-up-a-Win64-development-environment-for-DB4S ### Cross compiling for Windows These are instructions to cross compile within a Linux system a Windows binary and installer. Requirements: * mxe cross compile environment → http://mxe.cc * cmake * sqlitebrowser sources Get the following mxe packages: $ make gcc sqlite qt nsis After successful compilation go into your mxedir/usr/bin and add 3 symlinks: $ ln -s i686-pc-mingw32-windres windres $ ln -s i686-pc-mingw32-makensis makensis $ ln -s /usr/bin/lrelease Now cd into your sqlitebrowser source directory and create a build directory for the windows binary and create the correct makefiles: $ mkdir build-win $ cd build-win $ cmake -DCMAKE_TOOLCHAIN_FILE=/path to mxe/usr/i686-pc-mingw32/share/cmake/mxe-conf.cmake .. Before compiling we have to add the mxe/usr/bin directory to the PATH (so windres and makensis can be found): $ export PATH=/path to mxe/usr/bin:$PATH Now compile: $ make If you additionaly want an NSIS installer: $ make package done. ## Build with SQLCipher support When built with SQLCipher support, DB Browser for SQLite will allow you to open and edit databases encrypted using SQLCipher as well as standard SQLite3 databases. Before compiling make sure you have the necessary SQLCipher development files installed. On Linux this can usually be accomplished by just installing the correct package (e.g. 'libsqlcipher-dev' on Debian-based distributions). On MacOS X the easiest way is to install it via Homebrew ('brew install sqlcipher'). On Windows unfortunately it's a bit more difficult: You'll have to download and compile the code as described on the [SQLCipher website](https://www.zetetic.net/sqlcipher/) before you can proceed. If SQLCipher is installed, simply follow the standard instructions for your platform but enable the 'sqlcipher' build option by replacing any calls to cmake and qmake like this: ``` If it says... Change it to... cmake cmake -Dsqlcipher=1 cmake .. cmake -Dsqlcipher=1 .. qmake qmake CONFIG+=sqlcipher ``` ## Building and running the Unit Tests DB Browser for SQLite has unit tests in the "src/tests" subdirectory. ### Build the unit tests The unit tests are enabled using the cmake variable `ENABLE_TESTING`; it can be passed when running `cmake` to configure sqlitebrowser, for example like this: ```bash $ mkdir build $ cd build $ cmake -DENABLE_TESTING=ON .. $ make ``` ### Run the unit tests Tests can be then run using `make test` or invoking `ctest` directly, for example like this: ``` $ ctest -V UpdateCTestConfiguration from :SRCDIR/build/DartConfiguration.tcl UpdateCTestConfiguration from :SRCDIR/build/DartConfiguration.tcl Test project SRCDIR/build Constructing a list of tests Done constructing a list of tests Checking test dependency graph... Checking test dependency graph end test 1 Start 1: test-sqlobjects 1: Test command: SRCDIR/build/src/tests/test-sqlobjects 1: Test timeout computed to be: 9.99988e+06 1: ********* Start testing of TestTable ********* 1: Config: Using QTest library 4.8.6, Qt 4.8.6 1: PASS : TestTable::initTestCase() 1: PASS : TestTable::sqlOutput() 1: PASS : TestTable::autoincrement() 1: PASS : TestTable::notnull() 1: PASS : TestTable::withoutRowid() 1: PASS : TestTable::foreignKeys() 1: PASS : TestTable::parseSQL() 1: PASS : TestTable::parseSQLdefaultexpr() 1: PASS : TestTable::parseSQLMultiPk() 1: PASS : TestTable::parseSQLForeignKey() 1: PASS : TestTable::parseSQLSingleQuotes() 1: PASS : TestTable::parseSQLKeywordInIdentifier() 1: PASS : TestTable::parseSQLWithoutRowid() 1: PASS : TestTable::parseNonASCIIChars() 1: PASS : TestTable::parseSQLEscapedQuotes() 1: PASS : TestTable::parseSQLForeignKeys() 1: PASS : TestTable::parseSQLCheckConstraint() 1: PASS : TestTable::createTableWithIn() 1: PASS : TestTable::createTableWithNotLikeConstraint() 1: PASS : TestTable::cleanupTestCase() 1: Totals: 20 passed, 0 failed, 0 skipped 1: ********* Finished testing of TestTable ********* 1/2 Test #1: test-sqlobjects .................. Passed 0.02 sec test 2 Start 2: test-import 2: Test command: SRCDIR/build/src/tests/test-import 2: Test timeout computed to be: 9.99988e+06 2: ********* Start testing of TestImport ********* 2: Config: Using QTest library 4.8.6, Qt 4.8.6 2: PASS : TestImport::initTestCase() 2: PASS : TestImport::csvImport() 2: PASS : TestImport::cleanupTestCase() 2: Totals: 3 passed, 0 failed, 0 skipped 2: ********* Finished testing of TestImport ********* 2/2 Test #2: test-import ...................... Passed 0.01 sec 100% tests passed, 0 tests failed out of 2 Total Test time (real) = 0.04 sec ``` Everything should PASS, with no failures, and nothing skipped. sqlitebrowser-3.12.1/CMakeLists.txt000066400000000000000000000407661374246124700172720ustar00rootroot00000000000000project(sqlitebrowser) cmake_minimum_required(VERSION 2.8.12.2) # BUILD_VERSION is the current date in YYYYMMDD format. It is only # used by the nightly version to add the date of the build. string(TIMESTAMP BUILD_VERSION "%Y%m%d") # Choose between building a stable version or nightly (the default), depending # on whether '-DBUILD_STABLE_VERSION=1' is passed on the command line or not. option(BUILD_STABLE_VERSION "Don't build the stable version by default" OFF) if(NOT BUILD_STABLE_VERSION) add_definitions(-DBUILD_VERSION=${BUILD_VERSION}) endif() set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake" "${CMAKE_MODULE_PATH}") OPTION(ENABLE_TESTING "Enable the unit tests" OFF) OPTION(FORCE_INTERNAL_QSCINTILLA "Don't use the distribution's QScintilla library even if there is one" OFF) OPTION(FORCE_INTERNAL_QCUSTOMPLOT "Don't use distribution's QCustomPlot even if available" ON) OPTION(FORCE_INTERNAL_QHEXEDIT "Don't use distribution's QHexEdit even if available" ON) OPTION(ALL_WARNINGS "Enable some useful warning flags" OFF) if(NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE "Release") endif() add_definitions(-std=c++11) set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD_REQUIRED True) # Fix behavior of CMAKE_CXX_STANDARD when targeting macOS. if (POLICY CMP0025) cmake_policy(SET CMP0025 NEW) endif () # Fix warning of AUTOMOC behavior if (POLICY CMP0071) # Use of AUTOMOC is set to old for now for consistency. # Affects of 'new' behavior is as yet to be determined. # https://cmake.org/cmake/help/latest/policy/CMP0071.html cmake_policy(SET CMP0071 OLD) endif() if(WIN32 AND MSVC) if(CMAKE_CL_64) # Paths for 64-bit windows builds set(OPENSSL_PATH "C:/dev/OpenSSL-Win64" CACHE PATH "OpenSSL Path") set(QT5_PATH "C:/dev/Qt/5.12.8/5.12.8/msvc2017_64" CACHE PATH "Qt5 Path") # Choose between SQLCipher or SQLite, depending whether # -Dsqlcipher=1 is passed on the command line if(sqlcipher) set(SQLITE3_PATH "C:/git_repos/SQLCipher-Win64" CACHE PATH "SQLCipher Path") else() set(SQLITE3_PATH "C:/dev/SQLite-Win64" CACHE PATH "SQLite Path") endif() else() # Paths for 32-bit windows builds set(OPENSSL_PATH "C:/dev/OpenSSL-Win32" CACHE PATH "OpenSSL Path") set(QT5_PATH "C:/dev/Qt/5.12.8/5.12.8/msvc2017" CACHE PATH "Qt5 Path") # Choose between SQLCipher or SQLite, depending whether # -Dsqlcipher=1 is passed on the command line if(sqlcipher) set(SQLITE3_PATH "C:/git_repos/SQLCipher-Win32" CACHE PATH "SQLCipher Path") else() set(SQLITE3_PATH "C:/dev/SQLite-Win32" CACHE PATH "SQLite Path") endif() endif() set(CMAKE_PREFIX_PATH "${QT5_PATH};${SQLITE3_PATH}") endif() find_package(Qt5 REQUIRED COMPONENTS Concurrent Gui LinguistTools Network PrintSupport Test Widgets Xml) if(NOT FORCE_INTERNAL_QSCINTILLA) find_package(QScintilla 2.8.10 QUIET) endif() if(FORCE_INTERNAL_QCUSTOMPLOT) set(QCustomPlot_FOUND FALSE) else() find_package(QCustomPlot) endif() if(FORCE_INTERNAL_QHEXEDIT) set(QHexEdit_FOUND FALSE) else() find_package(QHexEdit) endif() set(JSON_DIR libs/json) if(NOT QSCINTILLA_FOUND) set(QSCINTILLA_DIR libs/qscintilla/Qt4Qt5) add_subdirectory(${QSCINTILLA_DIR}) endif() if(NOT QHexEdit_FOUND) set(QHexEdit_DIR libs/qhexedit) set(QHexEdit_INCL_DIR ${QHexEdit_DIR}/src) add_subdirectory(${QHexEdit_DIR}) endif() add_subdirectory(${JSON_DIR}) if(NOT QCustomPlot_FOUND) set(QCustomPlot_DIR libs/qcustomplot-source) add_subdirectory(${QCustomPlot_DIR}) endif() set(CMAKE_AUTOMOC ON) set(CMAKE_INCLUDE_CURRENT_DIR ON) if(ENABLE_TESTING) enable_testing() endif() set(SQLB_HDR src/version.h src/sql/sqlitetypes.h src/sql/Query.h src/sql/ObjectIdentifier.h src/csvparser.h src/sqlite.h src/Data.h src/IconCache.h src/sql/parser/ParserDriver.h src/sql/parser/sqlite3_lexer.h src/sql/parser/sqlite3_location.h src/sql/parser/sqlite3_parser.hpp ) set(SQLB_MOC_HDR src/sqlitedb.h src/AboutDialog.h src/EditIndexDialog.h src/EditDialog.h src/EditTableDialog.h src/AddRecordDialog.h src/ExportDataDialog.h src/ExtendedTableWidget.h src/FilterTableHeader.h src/ImportCsvDialog.h src/MainWindow.h src/Settings.h src/PreferencesDialog.h src/SqlExecutionArea.h src/VacuumDialog.h src/sqlitetablemodel.h src/RowLoader.h src/RowCache.h src/sqltextedit.h src/docktextedit.h src/DbStructureModel.h src/Application.h src/CipherDialog.h src/ExportSqlDialog.h src/SqlUiLexer.h src/FileDialog.h src/ColumnDisplayFormatDialog.h src/FilterLineEdit.h src/RemoteDatabase.h src/ForeignKeyEditorDelegate.h src/PlotDock.h src/RemoteDock.h src/RemoteModel.h src/RemotePushDialog.h src/FindReplaceDialog.h src/ExtendedScintilla.h src/FileExtensionManager.h src/CondFormatManager.h src/CipherSettings.h src/DotenvFormat.h src/Palette.h src/CondFormat.h src/RunSql.h src/ProxyDialog.h src/SelectItemsPopup.h src/TableBrowser.h src/RemoteLocalFilesModel.h src/RemoteCommitsModel.h src/RemoteNetwork.h ) set(SQLB_SRC src/AboutDialog.cpp src/EditIndexDialog.cpp src/EditDialog.cpp src/EditTableDialog.cpp src/AddRecordDialog.cpp src/ExportDataDialog.cpp src/ExtendedTableWidget.cpp src/FilterTableHeader.cpp src/ImportCsvDialog.cpp src/MainWindow.cpp src/Settings.cpp src/PreferencesDialog.cpp src/SqlExecutionArea.cpp src/VacuumDialog.cpp src/sqlitedb.cpp src/sqlitetablemodel.cpp src/RowLoader.cpp src/sql/sqlitetypes.cpp src/sql/Query.cpp src/sql/ObjectIdentifier.cpp src/sqltextedit.cpp src/docktextedit.cpp src/csvparser.cpp src/DbStructureModel.cpp src/main.cpp src/Application.cpp src/CipherDialog.cpp src/ExportSqlDialog.cpp src/SqlUiLexer.cpp src/FileDialog.cpp src/ColumnDisplayFormatDialog.cpp src/FilterLineEdit.cpp src/RemoteDatabase.cpp src/ForeignKeyEditorDelegate.cpp src/PlotDock.cpp src/RemoteDock.cpp src/RemoteModel.cpp src/RemotePushDialog.cpp src/FindReplaceDialog.cpp src/ExtendedScintilla.cpp src/FileExtensionManager.cpp src/CondFormatManager.cpp src/Data.cpp src/CipherSettings.cpp src/DotenvFormat.cpp src/Palette.cpp src/CondFormat.cpp src/RunSql.cpp src/ProxyDialog.cpp src/IconCache.cpp src/SelectItemsPopup.cpp src/TableBrowser.cpp src/sql/parser/ParserDriver.cpp src/sql/parser/sqlite3_lexer.cpp src/sql/parser/sqlite3_parser.cpp src/RemoteLocalFilesModel.cpp src/RemoteCommitsModel.cpp src/RemoteNetwork.cpp ) set(SQLB_FORMS src/AboutDialog.ui src/EditIndexDialog.ui src/EditDialog.ui src/EditTableDialog.ui src/AddRecordDialog.ui src/ExportDataDialog.ui src/ImportCsvDialog.ui src/MainWindow.ui src/PreferencesDialog.ui src/SqlExecutionArea.ui src/VacuumDialog.ui src/CipherDialog.ui src/ExportSqlDialog.ui src/ColumnDisplayFormatDialog.ui src/PlotDock.ui src/RemoteDock.ui src/RemotePushDialog.ui src/FindReplaceDialog.ui src/FileExtensionManager.ui src/CondFormatManager.ui src/ProxyDialog.ui src/SelectItemsPopup.ui src/TableBrowser.ui ) set(SQLB_RESOURCES src/icons/icons.qrc src/translations/flags/flags.qrc src/translations/translations.qrc src/certs/CaCerts.qrc src/qdarkstyle/style.qrc ) set(SQLB_MISC src/sql/parser/sqlite3_parser.yy src/sql/parser/sqlite3_lexer.ll ) # Translation files set(SQLB_TSS "${CMAKE_SOURCE_DIR}/src/translations/sqlb_ar_SA.ts" "${CMAKE_SOURCE_DIR}/src/translations/sqlb_cs.ts" "${CMAKE_SOURCE_DIR}/src/translations/sqlb_zh.ts" "${CMAKE_SOURCE_DIR}/src/translations/sqlb_zh_TW.ts" "${CMAKE_SOURCE_DIR}/src/translations/sqlb_de.ts" "${CMAKE_SOURCE_DIR}/src/translations/sqlb_es_ES.ts" "${CMAKE_SOURCE_DIR}/src/translations/sqlb_fr.ts" "${CMAKE_SOURCE_DIR}/src/translations/sqlb_ru.ts" "${CMAKE_SOURCE_DIR}/src/translations/sqlb_pl.ts" "${CMAKE_SOURCE_DIR}/src/translations/sqlb_pt_BR.ts" "${CMAKE_SOURCE_DIR}/src/translations/sqlb_en_GB.ts" "${CMAKE_SOURCE_DIR}/src/translations/sqlb_ko_KR.ts" "${CMAKE_SOURCE_DIR}/src/translations/sqlb_tr.ts" "${CMAKE_SOURCE_DIR}/src/translations/sqlb_uk_UA.ts" "${CMAKE_SOURCE_DIR}/src/translations/sqlb_it.ts" "${CMAKE_SOURCE_DIR}/src/translations/sqlb_ja.ts" "${CMAKE_SOURCE_DIR}/src/translations/sqlb_nl.ts" ) # Windows image format plugin files set(WIN_IMG_PLUGINS "${QT5_PATH}/plugins/imageformats/qgif.dll" "${QT5_PATH}/plugins/imageformats/qicns.dll" "${QT5_PATH}/plugins/imageformats/qico.dll" "${QT5_PATH}/plugins/imageformats/qjpeg.dll" "${QT5_PATH}/plugins/imageformats/qsvg.dll" "${QT5_PATH}/plugins/imageformats/qtga.dll" "${QT5_PATH}/plugins/imageformats/qtiff.dll" "${QT5_PATH}/plugins/imageformats/qwbmp.dll" "${QT5_PATH}/plugins/imageformats/qwebp.dll" ) set(WIN_IMG_PLUGINS_DEBUG "${QT5_PATH}/plugins/imageformats/qgifd.dll" "${QT5_PATH}/plugins/imageformats/qicnsd.dll" "${QT5_PATH}/plugins/imageformats/qicod.dll" "${QT5_PATH}/plugins/imageformats/qjpegd.dll" "${QT5_PATH}/plugins/imageformats/qsvgd.dll" "${QT5_PATH}/plugins/imageformats/qtgad.dll" "${QT5_PATH}/plugins/imageformats/qtiffd.dll" "${QT5_PATH}/plugins/imageformats/qwbmpd.dll" "${QT5_PATH}/plugins/imageformats/qwebpd.dll" ) # License files set(LICENSE_FILES LICENSE LICENSE-PLUGINS ) qt5_wrap_ui(SQLB_FORM_HDR ${SQLB_FORMS}) if(SQLB_TSS) # add translations foreach(SQLB_TS ${SQLB_TSS}) SET_SOURCE_FILES_PROPERTIES("${SQLB_TS}" PROPERTIES OUTPUT_LOCATION "${CMAKE_SOURCE_DIR}/src/translations") endforeach(SQLB_TS ${SQLB_TSS}) qt5_add_translation(SQLB_QMS ${SQLB_TSS}) endif(SQLB_TSS) qt5_add_resources(SQLB_RESOURCES_RCC ${SQLB_RESOURCES}) #icon and correct libs/subsystem for windows if(WIN32) #enable version check for windows add_definitions(-DCHECKNEWVERSION) IF( MINGW ) # resource compilation for MinGW ADD_CUSTOM_COMMAND(OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/sqlbicon.o" COMMAND windres "-I${CMAKE_CURRENT_SOURCE_DIR}" "-i${CMAKE_CURRENT_SOURCE_DIR}/src/winapp.rc" -o "${CMAKE_CURRENT_BINARY_DIR}/sqlbicon.o" VERBATIM) set(SQLB_SRC ${SQLB_SRC} "${CMAKE_CURRENT_BINARY_DIR}/sqlbicon.o") set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-subsystem,windows") set(WIN32_STATIC_LINK -Wl,-Bstatic -lssl -lcrypto -lws2_32) set(ADDITIONAL_LIBS lzma) ELSE( MINGW ) set(SQLB_SRC ${SQLB_SRC} "${CMAKE_CURRENT_SOURCE_DIR}/src/winapp.rc") ENDIF( MINGW ) else() set(LPTHREAD pthread) endif(WIN32) #enable version check for MacOS if(APPLE) add_definitions(-DCHECKNEWVERSION) endif(APPLE) # SQLCipher option if(sqlcipher) add_definitions(-DENABLE_SQLCIPHER) set(LIBSQLITE_NAME sqlcipher) else(sqlcipher) set(LIBSQLITE_NAME sqlite3) endif(sqlcipher) # add extra library path for MacOS and FreeBSD set(EXTRAPATH APPLE OR ${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD") if(EXTRAPATH) find_library(LIBSQLITE ${LIBSQLITE_NAME} HINTS /usr/local/lib /usr/local/opt/sqlite/lib) set(ADDITIONAL_INCLUDE_PATHS /usr/local/include /usr/local/opt/sqlite/include) else(EXTRAPATH) find_library(LIBSQLITE ${LIBSQLITE_NAME}) endif(EXTRAPATH) if(WIN32 AND MSVC) find_path(SQLITE3_INCLUDE_DIR sqlite3.h) if(sqlcipher) find_file(SQLITE3_DLL sqlcipher.dll) else(sqlcipher) find_file(SQLITE3_DLL sqlite3.dll) endif(sqlcipher) include_directories(${SQLITE3_INCLUDE_DIR}) endif() include_directories( "${CMAKE_CURRENT_BINARY_DIR}" ${JSON_DIR} ${ADDITIONAL_INCLUDE_PATHS} src) if(QHexEdit_FOUND) include_directories(${QHexEdit_INCLUDE_DIR}) else() include_directories(${QHexEdit_INCL_DIR}) endif() if(QCustomPlot_FOUND) include_directories(${QCustomPlot_INCLUDE_DIR}) else() include_directories(${QCustomPlot_DIR}) endif() if(QSCINTILLA_FOUND) include_directories(${QSCINTILLA_INCLUDE_DIR}) else() include_directories(${QSCINTILLA_DIR}) endif() add_executable(${PROJECT_NAME} ${SQLB_HDR} ${SQLB_SRC} ${SQLB_FORM_HDR} ${SQLB_MOC} ${SQLB_RESOURCES_RCC} ${SQLB_MISC}) # Warnings if (ALL_WARNINGS AND CMAKE_COMPILER_IS_GNUCC) target_compile_options(${PROJECT_NAME} PRIVATE -Wall -Wextra -Wshadow -Wnon-virtual-dtor -Wold-style-cast -Wcast-align -Wunused -Woverloaded-virtual -Wpedantic -Wconversion -Wsign-conversion) target_compile_options(${PROJECT_NAME} PRIVATE -Wdouble-promotion -Wformat=2 -Wlogical-op -Wuseless-cast) if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 7.0) target_compile_options(${PROJECT_NAME} PRIVATE -Wnull-dereference -Wduplicated-cond -Wduplicated-branches) endif() endif() if(NOT QHexEdit_FOUND) add_dependencies(${PROJECT_NAME} qhexedit) endif() if(NOT QCustomPlot_FOUND) add_dependencies(${PROJECT_NAME} qcustomplot) endif() if(NOT QSCINTILLA_FOUND) add_dependencies(${PROJECT_NAME} qscintilla2) endif() if(NOT QHexEdit_FOUND) link_directories("${CMAKE_CURRENT_BINARY_DIR}/${QHexEdit_DIR}") endif() if(NOT QCustomPlot_FOUND) link_directories("${CMAKE_CURRENT_BINARY_DIR}/${QCustomPlot_DIR}") endif() if(NOT QSCINTILLA_FOUND) link_directories("${CMAKE_CURRENT_BINARY_DIR}/${QSCINTILLA_DIR}") endif() set(QT_LIBS Qt5::Gui Qt5::Test Qt5::PrintSupport Qt5::Widgets Qt5::Network Qt5::Concurrent Qt5::Xml) target_link_libraries(${PROJECT_NAME} ${LPTHREAD} ${QT_LIBS} ${WIN32_STATIC_LINK} ${LIBSQLITE} ${ADDITIONAL_LIBS}) if(QHexEdit_FOUND) target_link_libraries(${PROJECT_NAME} ${QHexEdit_LIBRARIES}) else() target_link_libraries(${PROJECT_NAME} qhexedit) endif() if(QCustomPlot_FOUND) target_link_libraries(${PROJECT_NAME} ${QCustomPlot_LIBRARIES}) else() target_link_libraries(${PROJECT_NAME} qcustomplot) endif() if(QSCINTILLA_FOUND) target_link_libraries(${PROJECT_NAME} ${QSCINTILLA_LIBRARIES}) else() target_link_libraries(${PROJECT_NAME} qscintilla2) endif() if(WIN32 AND MSVC) set_target_properties(${PROJECT_NAME} PROPERTIES OUTPUT_NAME "DB Browser for SQLite") set_target_properties(${PROJECT_NAME} PROPERTIES LINK_FLAGS_DEBUG "/SUBSYSTEM:CONSOLE") set_target_properties(${PROJECT_NAME} PROPERTIES COMPILE_DEFINITIONS_DEBUG "_CONSOLE") set_target_properties(${PROJECT_NAME} PROPERTIES LINK_FLAGS_RELWITHDEBINFO "/SUBSYSTEM:CONSOLE") set_target_properties(${PROJECT_NAME} PROPERTIES COMPILE_DEFINITIONS_RELWITHDEBINFO "_CONSOLE") if(CMAKE_CL_64) set_target_properties(${PROJECT_NAME} PROPERTIES LINK_FLAGS_RELEASE "/SUBSYSTEM:WINDOWS,5.02 /ENTRY:mainCRTStartup") set_target_properties(${PROJECT_NAME} PROPERTIES LINK_FLAGS_MINSIZEREL "/SUBSYSTEM:WINDOWS,5.02") else() set_target_properties(${PROJECT_NAME} PROPERTIES LINK_FLAGS_RELEASE "/SUBSYSTEM:WINDOWS,5.01 /ENTRY:mainCRTStartup") set_target_properties(${PROJECT_NAME} PROPERTIES LINK_FLAGS_MINSIZEREL "/SUBSYSTEM:WINDOWS,5.01") endif() endif() if(NOT WIN32) install(TARGETS ${PROJECT_NAME} RUNTIME DESTINATION bin LIBRARY DESTINATION lib) endif() if(ENABLE_TESTING) add_subdirectory(src/tests) endif() if(UNIX) install(FILES src/icons/${PROJECT_NAME}.png DESTINATION share/icons/hicolor/256x256/apps/) install(FILES distri/${PROJECT_NAME}.desktop DESTINATION share/applications/) install(FILES distri/${PROJECT_NAME}.desktop.appdata.xml DESTINATION share/metainfo/) endif(UNIX) if(WIN32 AND MSVC) install(TARGETS ${PROJECT_NAME} RUNTIME DESTINATION "/" LIBRARY DESTINATION lib) set(QT5_BIN_PATH ${QT5_PATH}/bin) # The Qt5 Debug configuration library files have a 'd' postfix install(FILES ${QT5_BIN_PATH}/Qt5Cored.dll ${QT5_BIN_PATH}/Qt5Guid.dll ${QT5_BIN_PATH}/Qt5Networkd.dll ${QT5_BIN_PATH}/Qt5PrintSupportd.dll ${QT5_BIN_PATH}/Qt5Widgetsd.dll ${QT5_BIN_PATH}/Qt5Concurrentd.dll DESTINATION "/" CONFIGURATIONS Debug) # The Qt5 Release configuration files don't have a postfix install(FILES ${QT5_BIN_PATH}/Qt5Core.dll ${QT5_BIN_PATH}/Qt5Gui.dll ${QT5_BIN_PATH}/Qt5Network.dll ${QT5_BIN_PATH}/Qt5PrintSupport.dll ${QT5_BIN_PATH}/Qt5Widgets.dll ${QT5_BIN_PATH}/Qt5Concurrent.dll DESTINATION "/" CONFIGURATIONS Release) # The files below are common to all configurations install(FILES ${SQLITE3_DLL} ${OPENSSL_PATH}/libeay32.dll ${OPENSSL_PATH}/ssleay32.dll DESTINATION "/") install(FILES ${QT5_PATH}/plugins/platforms/qwindows.dll DESTINATION platforms) # The XML dll install(FILES "${QT5_PATH}/bin/Qt5Xmld.dll" DESTINATION "/" CONFIGURATIONS Debug) install(FILES "${QT5_PATH}/bin/Qt5Xml.dll" DESTINATION "/" CONFIGURATIONS Release) # The image format plugins install(FILES ${WIN_IMG_PLUGINS_DEBUG} DESTINATION imageformats CONFIGURATIONS Debug) install(FILES ${WIN_IMG_PLUGINS} DESTINATION imageformats CONFIGURATIONS Release) # The license files install(FILES ${LICENSE_FILES} DESTINATION licenses) # The batch file launcher install(FILES distri/winlaunch.bat DESTINATION "/") endif() sqlitebrowser-3.12.1/LICENSE000066400000000000000000001460161374246124700155320ustar00rootroot00000000000000DB Browser for SQLite is bi-licensed under the Mozilla Public License Version 2, as well as the GNU General Public License Version 3 or later. You can modify or redistribute it under the conditions of these licenses. ----------------------------------------------------------------------- GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The GNU General Public License is a free, copyleft license for software and other kinds of works. The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it. For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions. Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users. Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free. The precise terms and conditions for copying, distribution and modification follow. TERMS AND CONDITIONS 0. Definitions. "This License" refers to version 3 of the GNU General Public License. "Copyright" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. "The Program" refers to any copyrightable work licensed under this License. Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals or organizations. To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work. A "covered work" means either the unmodified Program or a work based on the Program. To "propagate" a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. To "convey" a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. An interactive user interface displays "Appropriate Legal Notices" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. 1. Source Code. The "source code" for a work means the preferred form of the work for making modifications to it. "Object code" means any non-source form of a work. A "Standard Interface" means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. The "System Libraries" of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A "Major Component", in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. The Corresponding Source for a work in source code form is that same work. 2. Basic Permissions. All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. 3. Protecting Users' Legal Rights From Anti-Circumvention Law. No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. 4. Conveying Verbatim Copies. You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. 5. Conveying Modified Source Versions. You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: a) The work must carry prominent notices stating that you modified it, and giving a relevant date. b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to "keep intact all notices". c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. 6. Conveying Non-Source Forms. You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. "Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. 7. Additional Terms. "Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or d) Limiting the use for publicity purposes of names of licensors or authors of the material; or e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. 8. Termination. You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. 9. Acceptance Not Required for Having Copies. You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. 10. Automatic Licensing of Downstream Recipients. Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. An "entity transaction" is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. 11. Patents. A "contributor" is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's "contributor version". A contributor's "essential patent claims" are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, "control" includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. In the following three paragraphs, a "patent license" is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To "grant" such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. "Knowingly relying" means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. 12. No Surrender of Others' Freedom. If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. 13. Use with the GNU Affero General Public License. Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. 14. Revised Versions of this License. The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. 15. Disclaimer of Warranty. THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. Limitation of Liability. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 17. Interpretation of Sections 15 and 16. If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. 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, see . Also add information on how to contact you by electronic and paper mail. If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode: Copyright (C) This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, your program's commands might be different; for a GUI interface, you would use an "about box". You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see . The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read . ----------------------------------------------------------------------- Mozilla Public License Version 2.0 ================================== 1. Definitions -------------- 1.1. "Contributor" means each individual or legal entity that creates, contributes to the creation of, or owns Covered Software. 1.2. "Contributor Version" means the combination of the Contributions of others (if any) used by a Contributor and that particular Contributor's Contribution. 1.3. "Contribution" means Covered Software of a particular Contributor. 1.4. "Covered Software" means Source Code Form to which the initial Contributor has attached the notice in Exhibit A, the Executable Form of such Source Code Form, and Modifications of such Source Code Form, in each case including portions thereof. 1.5. "Incompatible With Secondary Licenses" means (a) that the initial Contributor has attached the notice described in Exhibit B to the Covered Software; or (b) that the Covered Software was made available under the terms of version 1.1 or earlier of the License, but not also under the terms of a Secondary License. 1.6. "Executable Form" means any form of the work other than Source Code Form. 1.7. "Larger Work" means a work that combines Covered Software with other material, in a separate file or files, that is not Covered Software. 1.8. "License" means this document. 1.9. "Licensable" means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently, any and all of the rights conveyed by this License. 1.10. "Modifications" means any of the following: (a) any file in Source Code Form that results from an addition to, deletion from, or modification of the contents of Covered Software; or (b) any new file in Source Code Form that contains any Covered Software. 1.11. "Patent Claims" of a Contributor means any patent claim(s), including without limitation, method, process, and apparatus claims, in any patent Licensable by such Contributor that would be infringed, but for the grant of the License, by the making, using, selling, offering for sale, having made, import, or transfer of either its Contributions or its Contributor Version. 1.12. "Secondary License" means either the GNU General Public License, Version 2.0, the GNU Lesser General Public License, Version 2.1, the GNU Affero General Public License, Version 3.0, or any later versions of those licenses. 1.13. "Source Code Form" means the form of the work preferred for making modifications. 1.14. "You" (or "Your") means an individual or a legal entity exercising rights under this License. For legal entities, "You" includes any entity that controls, is controlled by, or is under common control with You. For purposes of this definition, "control" means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. 2. License Grants and Conditions -------------------------------- 2.1. Grants Each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license: (a) under intellectual property rights (other than patent or trademark) Licensable by such Contributor to use, reproduce, make available, modify, display, perform, distribute, and otherwise exploit its Contributions, either on an unmodified basis, with Modifications, or as part of a Larger Work; and (b) under Patent Claims of such Contributor to make, use, sell, offer for sale, have made, import, and otherwise transfer either its Contributions or its Contributor Version. 2.2. Effective Date The licenses granted in Section 2.1 with respect to any Contribution become effective for each Contribution on the date the Contributor first distributes such Contribution. 2.3. Limitations on Grant Scope The licenses granted in this Section 2 are the only rights granted under this License. No additional rights or licenses will be implied from the distribution or licensing of Covered Software under this License. Notwithstanding Section 2.1(b) above, no patent license is granted by a Contributor: (a) for any code that a Contributor has removed from Covered Software; or (b) for infringements caused by: (i) Your and any other third party's modifications of Covered Software, or (ii) the combination of its Contributions with other software (except as part of its Contributor Version); or (c) under Patent Claims infringed by Covered Software in the absence of its Contributions. This License does not grant any rights in the trademarks, service marks, or logos of any Contributor (except as may be necessary to comply with the notice requirements in Section 3.4). 2.4. Subsequent Licenses No Contributor makes additional grants as a result of Your choice to distribute the Covered Software under a subsequent version of this License (see Section 10.2) or under the terms of a Secondary License (if permitted under the terms of Section 3.3). 2.5. Representation Each Contributor represents that the Contributor believes its Contributions are its original creation(s) or it has sufficient rights to grant the rights to its Contributions conveyed by this License. 2.6. Fair Use This License is not intended to limit any rights You have under applicable copyright doctrines of fair use, fair dealing, or other equivalents. 2.7. Conditions Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted in Section 2.1. 3. Responsibilities ------------------- 3.1. Distribution of Source Form All distribution of Covered Software in Source Code Form, including any Modifications that You create or to which You contribute, must be under the terms of this License. You must inform recipients that the Source Code Form of the Covered Software is governed by the terms of this License, and how they can obtain a copy of this License. You may not attempt to alter or restrict the recipients' rights in the Source Code Form. 3.2. Distribution of Executable Form If You distribute Covered Software in Executable Form then: (a) such Covered Software must also be made available in Source Code Form, as described in Section 3.1, and You must inform recipients of the Executable Form how they can obtain a copy of such Source Code Form by reasonable means in a timely manner, at a charge no more than the cost of distribution to the recipient; and (b) You may distribute such Executable Form under the terms of this License, or sublicense it under different terms, provided that the license for the Executable Form does not attempt to limit or alter the recipients' rights in the Source Code Form under this License. 3.3. Distribution of a Larger Work You may create and distribute a Larger Work under terms of Your choice, provided that You also comply with the requirements of this License for the Covered Software. If the Larger Work is a combination of Covered Software with a work governed by one or more Secondary Licenses, and the Covered Software is not Incompatible With Secondary Licenses, this License permits You to additionally distribute such Covered Software under the terms of such Secondary License(s), so that the recipient of the Larger Work may, at their option, further distribute the Covered Software under the terms of either this License or such Secondary License(s). 3.4. Notices You may not remove or alter the substance of any license notices (including copyright notices, patent notices, disclaimers of warranty, or limitations of liability) contained within the Source Code Form of the Covered Software, except that You may alter any license notices to the extent required to remedy known factual inaccuracies. 3.5. Application of Additional Terms You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Software. However, You may do so only on Your own behalf, and not on behalf of any Contributor. You must make it absolutely clear that any such warranty, support, indemnity, or liability obligation is offered by You alone, and You hereby agree to indemnify every Contributor for any liability incurred by such Contributor as a result of warranty, support, indemnity or liability terms You offer. You may include additional disclaimers of warranty and limitations of liability specific to any jurisdiction. 4. Inability to Comply Due to Statute or Regulation --------------------------------------------------- If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Software due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be placed in a text file included with all distributions of the Covered Software under this License. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. 5. Termination -------------- 5.1. The rights granted under this License will terminate automatically if You fail to comply with any of its terms. However, if You become compliant, then the rights granted under this License from a particular Contributor are reinstated (a) provisionally, unless and until such Contributor explicitly and finally terminates Your grants, and (b) on an ongoing basis, if such Contributor fails to notify You of the non-compliance by some reasonable means prior to 60 days after You have come back into compliance. Moreover, Your grants from a particular Contributor are reinstated on an ongoing basis if such Contributor notifies You of the non-compliance by some reasonable means, this is the first time You have received notice of non-compliance with this License from such Contributor, and You become compliant prior to 30 days after Your receipt of the notice. 5.2. If You initiate litigation against any entity by asserting a patent infringement claim (excluding declaratory judgment actions, counter-claims, and cross-claims) alleging that a Contributor Version directly or indirectly infringes any patent, then the rights granted to You by any and all Contributors for the Covered Software under Section 2.1 of this License shall terminate. 5.3. In the event of termination under Sections 5.1 or 5.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or Your distributors under this License prior to termination shall survive termination. ************************************************************************ * * * 6. Disclaimer of Warranty * * ------------------------- * * * * Covered Software is provided under this License on an "as is" * * basis, without warranty of any kind, either expressed, implied, or * * statutory, including, without limitation, warranties that the * * Covered Software is free of defects, merchantable, fit for a * * particular purpose or non-infringing. The entire risk as to the * * quality and performance of the Covered Software is with You. * * Should any Covered Software prove defective in any respect, You * * (not any Contributor) assume the cost of any necessary servicing, * * repair, or correction. This disclaimer of warranty constitutes an * * essential part of this License. No use of any Covered Software is * * authorized under this License except under this disclaimer. * * * ************************************************************************ ************************************************************************ * * * 7. Limitation of Liability * * -------------------------- * * * * Under no circumstances and under no legal theory, whether tort * * (including negligence), contract, or otherwise, shall any * * Contributor, or anyone who distributes Covered Software as * * permitted above, be liable to You for any direct, indirect, * * special, incidental, or consequential damages of any character * * including, without limitation, damages for lost profits, loss of * * goodwill, work stoppage, computer failure or malfunction, or any * * and all other commercial damages or losses, even if such party * * shall have been informed of the possibility of such damages. This * * limitation of liability shall not apply to liability for death or * * personal injury resulting from such party's negligence to the * * extent applicable law prohibits such limitation. Some * * jurisdictions do not allow the exclusion or limitation of * * incidental or consequential damages, so this exclusion and * * limitation may not apply to You. * * * ************************************************************************ 8. Litigation ------------- Any litigation relating to this License may be brought only in the courts of a jurisdiction where the defendant maintains its principal place of business and such litigation shall be governed by laws of that jurisdiction, without reference to its conflict-of-law provisions. Nothing in this Section shall prevent a party's ability to bring cross-claims or counter-claims. 9. Miscellaneous ---------------- This License represents the complete agreement concerning the subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not be used to construe this License against a Contributor. 10. Versions of the License --------------------------- 10.1. New Versions Mozilla Foundation is the license steward. Except as provided in Section 10.3, no one other than the license steward has the right to modify or publish new versions of this License. Each version will be given a distinguishing version number. 10.2. Effect of New Versions You may distribute the Covered Software under the terms of the version of the License under which You originally received the Covered Software, or under the terms of any subsequent version published by the license steward. 10.3. Modified Versions If you create software not governed by this License, and you want to create a new license for such software, you may create and use a modified version of this License if you rename the license and remove any references to the name of the license steward (except to note that such modified license differs from this License). 10.4. Distributing Source Code Form that is Incompatible With Secondary Licenses If You choose to distribute Source Code Form that is Incompatible With Secondary Licenses under the terms of this version of the License, the notice described in Exhibit B of this License must be attached. Exhibit A - Source Code Form License Notice ------------------------------------------- This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. If it is not possible or desirable to put the notice in a particular file, then You may include the notice in a location (such as a LICENSE file in a relevant directory) where a recipient would be likely to look for such a notice. You may add additional accurate notices of copyright ownership. Exhibit B - "Incompatible With Secondary Licenses" Notice --------------------------------------------------------- This Source Code Form is "Incompatible With Secondary Licenses", as defined by the Mozilla Public License, v. 2.0. sqlitebrowser-3.12.1/LICENSE-PLUGINS000066400000000000000000000057151374246124700166510ustar00rootroot00000000000000DB Browser for SQLite includes support for TIFF and WebP images. The support for these comes from the LibTIFF and WebP projects, which have their own (Open Source) licenses, different to ours. LibTIFF - http://www.simplesystems.org/libtiff/ Copyright (c) 1988-1997 Sam Leffler Copyright (c) 1991-1997 Silicon Graphics, Inc. Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted without fee, provided that (i) the above copyright notices and this permission notice appear in all copies of the software and related documentation, and (ii) the names of Sam Leffler and Silicon Graphics may not be used in any advertising or publicity relating to the software without the specific, prior written permission of Sam Leffler and Silicon Graphics. THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. WebP - https://developers.google.com/speed/webp/ Copyright (c) 2010, Google Inc. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. sqlitebrowser-3.12.1/README.md000066400000000000000000000266121374246124700160030ustar00rootroot00000000000000# DB Browser for SQLite [![Wiki][wiki-img]][wiki] [![Build Status][travis-img]][travis] [![Join the chat at https://gitter.im/sqlitebrowser/sqlitebrowser][gitter-img]][gitter] [![Join the chat at https://join.slack.com/t/db4s/shared_invite/enQtMzc3MzY5OTU4NDgzLWRlYjk0ZmE5ZDEzYWVmNDQxYTYxNmJjNWVkMjI3ZmVjZTY2NDBjODY3YzNhNTNmZDVlNWI2ZGFjNTk5MjJkYmU][slack-img]][slack] [![Download][download-img]][download] [![Qt][qt-img]][qt] [![Coverity][coverity-img]][coverity] [![Patreon][patreon-img]][patreon] ![DB Browser for SQLite Screenshot](https://github.com/sqlitebrowser/sqlitebrowser/raw/master/images/sqlitebrowser.png "DB Browser for SQLite Screenshot") ## What it is _DB Browser for SQLite_ (DB4S) is a high quality, visual, open source tool to create, design, and edit database files compatible with SQLite. DB4S is for users and developers who want to create, search, and edit databases. DB4S uses a familiar spreadsheet-like interface, and complicated SQL commands do not have to be learned. Controls and wizards are available for users to: * Create and compact database files * Create, define, modify and delete tables * Create, define, and delete indexes * Browse, edit, add, and delete records * Search records * Import and export records as text * Import and export tables from/to CSV files * Import and export databases from/to SQL dump files * Issue SQL queries and inspect the results * Examine a log of all SQL commands issued by the application * Plot simple graphs based on table or query data ## What it is not This program is not a visual shell for the sqlite command line tool, and does not require familiarity with SQL commands. It is a tool to be used by both developers and end users, and must remain as simple to use as possible in order to achieve these goals. ## Wiki For user and developer documentation, check out our Wiki at: https://github.com/sqlitebrowser/sqlitebrowser/wiki. ## Nightly builds Download nightly builds for Windows and OSX here: * https://nightlies.sqlitebrowser.org/latest ## Windows Download Windows releases here: * https://sqlitebrowser.org/dl/#windows **Note** - If for some reason the standard Windows release does not work (e.g. gives an error), try a nightly build. Nightly builds often fix bugs reported after the last release. :D ## MacOS X / macOS DB Browser for SQLite works well on MacOS X / macOS. * OSX 10.8 (Mountain Lion) - 10.13 (High Sierra) are tested and known to work Download OSX releases here: * https://sqlitebrowser.org/dl/#macos The latest OSX binary can be installed via [Homebrew Cask](https://caskroom.github.io/ "Homebrew Cask"): ``` brew cask install db-browser-for-sqlite ``` ## Linux DB Browser for SQLite works well on Linux. ### Arch Linux Arch Linux provides a package through pacman. ### Fedora Install for Fedora (i386 and x86_64) by issuing the following command: $ sudo dnf install sqlitebrowser ### openSUSE $ sudo zypper install sqlitebrowser ### Debian Note that Debian focuses more on stability rather than newest features. Therefore packages will typically contain some older (but well tested) version, compared to the latest release. Update the cache using: sudo apt-get update Install the package using: sudo apt-get install sqlitebrowser ### Ubuntu and Derivatives #### Stable release For Ubuntu and derivaties, [@deepsidhu1313](https://github.com/deepsidhu1313) provides a PPA with the latest release here: * https://launchpad.net/~linuxgndu/+archive/ubuntu/sqlitebrowser To add this ppa just type in these commands in terminal: sudo add-apt-repository -y ppa:linuxgndu/sqlitebrowser Then update the cache using: sudo apt-get update Install the package using: sudo apt-get install sqlitebrowser Ubuntu 14.04.X, 15.04.X, 15.10.X and 16.04.X are supported for now (until Launchpad decides to discontinue building for any series). Ubuntu Precise (12.04) and Utopic (14.10) are not supported: * Precise does not have a new enough Qt package in its repository by default, which is a dependency * Launchpad does not support Utopic any more, which has reached its End of Life #### Nightly builds Nightly builds are available here: * https://launchpad.net/~linuxgndu/+archive/ubuntu/sqlitebrowser-testing To add this ppa, type these commands into the terminal: sudo add-apt-repository -y ppa:linuxgndu/sqlitebrowser-testing Then update the cache using: sudo apt-get update Install the package using: sudo apt-get install sqlitebrowser ### Other Linux On others, compile DB4S using the instructions in [BUILDING.md](BUILDING.md). ## FreeBSD DB Browser for SQLite works well on FreeBSD, and there is a port for it (thanks to [lbartoletti](https://github.com/lbartoletti) :smile:). DB4S can be installed using either this command: # make -C /usr/ports/databases/sqlitebrowser install or this command: # pkg install sqlitebrowser ## Snap packages [![Get it from the Snap Store](https://snapcraft.io/static/images/badges/en/snap-store-black.svg)](https://snapcraft.io/sqlitebrowser) #### Snap Nightlies snap install sqlitebrowser --devmode #### Snap Stable snap install sqlitebrowser ## Compiling Instructions for compiling on Windows, OSX, Linux, and FreeBSD are in [BUILDING](BUILDING.md). ## Twitter Follow us on Twitter: https://twitter.com/sqlitebrowser ## Website * https://sqlitebrowser.org ## Old project page * https://sourceforge.net/projects/sqlitebrowser ## Releases * [Version 3.11.2 released](https://github.com/sqlitebrowser/sqlitebrowser/releases/tag/v3.11.2) - 2019-04-03 * [Version 3.11.1 released](https://github.com/sqlitebrowser/sqlitebrowser/releases/tag/v3.11.1) - 2019-02-18 * [Version 3.11.0 released](https://github.com/sqlitebrowser/sqlitebrowser/releases/tag/v3.11.0) - 2019-02-07 * [Version 3.10.1 released](https://github.com/sqlitebrowser/sqlitebrowser/releases/tag/v3.10.1) - 2017-09-20 * [Version 3.10.0 released](https://github.com/sqlitebrowser/sqlitebrowser/releases/tag/v3.10.0) - 2017-08-20 * [Version 3.9.1 released](https://github.com/sqlitebrowser/sqlitebrowser/releases/tag/v3.9.1) - 2016-10-03 * [Version 3.9.0 released](https://github.com/sqlitebrowser/sqlitebrowser/releases/tag/v3.9.0) - 2016-08-24 * [Version 3.8.0 released](https://github.com/sqlitebrowser/sqlitebrowser/releases/tag/v3.8.0) - 2015-12-25 * [Version 3.7.0 released](https://github.com/sqlitebrowser/sqlitebrowser/releases/tag/v3.7.0) - 2015-06-14 * [Version 3.6.0 released](https://github.com/sqlitebrowser/sqlitebrowser/releases/tag/v3.6.0) - 2015-04-27 * [Version 3.5.1 released](https://github.com/sqlitebrowser/sqlitebrowser/releases/tag/v3.5.1) - 2015-02-08 * [Version 3.5.0 released](https://github.com/sqlitebrowser/sqlitebrowser/releases/tag/v3.5.0) - 2015-01-31 * [Version 3.4.0 released](https://github.com/sqlitebrowser/sqlitebrowser/releases/tag/v3.4.0) - 2014-10-29 * [Version 3.3.1 released](https://github.com/sqlitebrowser/sqlitebrowser/releases/tag/v3.3.1) - 2014-08-31 - Project renamed from "SQLite Database Browser" * [Version 3.3.0 released](https://github.com/sqlitebrowser/sqlitebrowser/releases/tag/v3.3.0) - 2014-08-24 * [Version 3.2.0 released](https://github.com/sqlitebrowser/sqlitebrowser/releases/tag/sqlb-3.2.0) - 2014-07-06 * [Version 3.1.0 released](https://github.com/sqlitebrowser/sqlitebrowser/releases/tag/sqlb-3.1.0) - 2014-05-17 * [Version 3.0.3 released](https://github.com/sqlitebrowser/sqlitebrowser/releases/tag/sqlb-3.0.3) - 2014-04-28 * [Version 3.0.2 released](https://github.com/sqlitebrowser/sqlitebrowser/releases/tag/sqlb-3.0.2) - 2014-02-12 * [Version 3.0.1 released](https://github.com/sqlitebrowser/sqlitebrowser/releases/tag/sqlb-3.0.1) - 2013-12-02 * [Version 3.0 released](https://github.com/sqlitebrowser/sqlitebrowser/releases/tag/sqlb-3.0) - 2013-09-15 * [Version 3.0rc1 released](https://github.com/sqlitebrowser/sqlitebrowser/releases/tag/rc1) - 2013-09-09 - Project now on GitHub * Version 2.0b1 released - 2009-12-10 - Based on Qt4.6 * Version 1.2 released - 2005-04-05 * Version 1.1 released - 2004-07-20 * Version 1.01 released - 2003-10-02 * Version 1.0 released to public domain - 2003-08-19 ## History This program was developed originally by Mauricio Piacentini ([@piacentini](https://github.com/piacentini)) from Tabuleiro Producoes, as the Arca Database Browser. The original version was used as a free companion tool to the Arca Database Xtra, a commercial product that embeds SQLite databases with some additional extensions to handle compressed and binary data. The original code was trimmed and adjusted to be compatible with standard SQLite 2.x databases. The resulting program was renamed SQLite Database Browser, and released into the Public Domain by Mauricio. Icons were contributed by [Raquel Ravanini](http://www.raquelravanini.com), also from Tabuleiro. Jens Miltner ([@jmiltner](https://github.com/jmiltner)) contributed the code to support SQLite 3.x databases for the 1.2 release. Pete Morgan ([@daffodil](https://github.com/daffodil)) created an initial project on GitHub with the code in 2012, where several contributors fixed and improved pieces over the years. René Peinthor ([@rp-](https://github.com/rp-)) and Martin Kleusberg ([@MKleusberg](https://github.com/MKleusberg)) then became involved, and have been the main driving force from that point. Justin Clift ([@justinclift](https://github.com/justinclift)) helps out with testing on OSX, and started the new github.com/sqlitebrowser organisation on GitHub. [John T. Haller](http://johnhaller.com), of [PortableApps.com](http://portableapps.com) fame, created the new logo. He based it on the Tango icon set (public domain). In August 2014, the project was renamed to "Database Browser for SQLite" at the request of [Richard Hipp](http://www.hwaci.com/drh) (creator of [SQLite](http://sqlite.org)), as the previous name was creating unintended support issues. In September 2014, the project was renamed to "DB Browser for SQLite", to avoid confusion with an existing application called "Database Browser". ## Contributors View the list by going to the [__Contributors__ tab](https://github.com/sqlitebrowser/sqlitebrowser/graphs/contributors). ## License DB Browser for SQLite is bi-licensed under the Mozilla Public License Version 2, as well as the GNU General Public License Version 3 or later. Modification or redistribution is permitted under the conditions of these licenses. [travis-img]: https://travis-ci.org/sqlitebrowser/sqlitebrowser.svg?branch=master [travis]: https://travis-ci.org/sqlitebrowser/sqlitebrowser [gitter-img]: https://badges.gitter.im/sqlitebrowser/sqlitebrowser.svg [gitter]: https://gitter.im/sqlitebrowser/sqlitebrowser [slack-img]: https://img.shields.io/badge/chat-on%20slack-orange.svg [slack]: https://join.slack.com/t/db4s/shared_invite/enQtMzc3MzY5OTU4NDgzLWRlYjk0ZmE5ZDEzYWVmNDQxYTYxNmJjNWVkMjI3ZmVjZTY2NDBjODY3YzNhNTNmZDVlNWI2ZGFjNTk5MjJkYmU [download-img]: https://img.shields.io/github/downloads/sqlitebrowser/sqlitebrowser/total.svg [download]: https://github.com/sqlitebrowser/sqlitebrowser/releases [qt-img]: https://img.shields.io/badge/Qt-qmake-green.svg [qt]: https://www.qt.io [coverity-img]: https://img.shields.io/coverity/scan/11712.svg [coverity]: https://scan.coverity.com/projects/sqlitebrowser-sqlitebrowser [patreon-img]: https://img.shields.io/badge/donate-Patreon-coral.svg [patreon]: https://www.patreon.com/bePatron?u=11578749 [wiki-img]: https://img.shields.io/badge/docs-Wiki-blue.svg [wiki]: https://github.com/sqlitebrowser/sqlitebrowser/wiki sqlitebrowser-3.12.1/cmake/000077500000000000000000000000001374246124700155755ustar00rootroot00000000000000sqlitebrowser-3.12.1/cmake/FindQCustomPlot.cmake000066400000000000000000000041041374246124700216310ustar00rootroot00000000000000# Attempt to locate QCustomPlot # Once done this will define: # # QCUSTOMPLOT_FOUND - system has QCustomPlot # QCUSTOMPLOT_INCLUDE_DIRS - the include directories for QCustomPlot # QCUSTOMPLOT_LIBRARIES - Link these to use QCustomPlot # # Copyright (C) 2019, Scott Furry, # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # # 1. Redistributions of source code must retain the copyright # notice, this list of conditions and the following disclaimer. # 2. Redistributions in binary form must reproduce the copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # 3. The name of the author may not be used to endorse or promote products # derived from this software without specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES # OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. # IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT # NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. find_library(QCustomPlot_LIBRARY qcustomplot) set(QCustomPlot_LIBRARIES "${QCustomPlot_LIBRARY}") find_path(QCustomPlot_INCLUDE_DIR qcustomplot.h) set(QCustomPlot_INCLUDE_DIRS "${QCustomPlot_INCLUDE_DIR}") include(FindPackageHandleStandardArgs) find_package_handle_standard_args( QCustomPlot DEFAULT_MSG QCustomPlot_LIBRARIES QCustomPlot_INCLUDE_DIRS ) mark_as_advanced( QCustomPlot_INCLUDE_DIRS QCustomPlot_LIBRARIES ) sqlitebrowser-3.12.1/cmake/FindQHexEdit.cmake000066400000000000000000000040101374246124700210460ustar00rootroot00000000000000# Attempt to locate QHexEdit # Once done this will define: # # QHEXEDIT_FOUND - system has QHexEdit # QHEXEDIT_INCLUDE_DIRS - the include directories for QHexEdit # QHEXEDIT_LIBRARIES - Link these to use QHexEdit # # Copyright (C) 2019, Scott Furry, # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # # 1. Redistributions of source code must retain the copyright # notice, this list of conditions and the following disclaimer. # 2. Redistributions in binary form must reproduce the copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # 3. The name of the author may not be used to endorse or promote products # derived from this software without specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES # OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. # IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT # NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. find_library(QHexEdit_LIBRARY qhexedit) set(QHexEdit_LIBRARIES "${QHexEdit_LIBRARY}") find_path(QHexEdit_INCLUDE_DIR qhexedit.h) set(QHexEdit_INCLUDE_DIRS "${QHexEdit_INCLUDE_DIR}") include(FindPackageHandleStandardArgs) find_package_handle_standard_args( QHexEdit DEFAULT_MSG QHexEdit_LIBRARIES QHexEdit_INCLUDE_DIRS ) mark_as_advanced( QHexEdit_INCLUDE_DIRS QHexEdit_LIBRARIES ) sqlitebrowser-3.12.1/cmake/FindQScintilla.cmake000066400000000000000000000127711374246124700214530ustar00rootroot00000000000000# QScintilla is a port to Qt of Neil Hodgson's Scintilla C++ editor control # available at http://www.riverbankcomputing.com/software/qscintilla/ # # The module defines the following variables: # QSCINTILLA_FOUND - the system has QScintilla # QSCINTILLA_INCLUDE_DIR - where to find qsciscintilla.h # QSCINTILLA_INCLUDE_DIRS - qscintilla includes # QSCINTILLA_LIBRARY - where to find the QScintilla library # QSCINTILLA_LIBRARIES - aditional libraries # QSCINTILLA_MAJOR_VERSION - major version # QSCINTILLA_MINOR_VERSION - minor version # QSCINTILLA_PATCH_VERSION - patch version # QSCINTILLA_VERSION_STRING - version (ex. 2.6.2) # QSCINTILLA_ROOT_DIR - root dir (ex. /usr/local) #============================================================================= # Copyright 2010-2013, Julien Schueller # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are met: # # 1. Redistributions of source code must retain the above copyright notice, this # list of conditions and the following disclaimer. # 2. Redistributions in binary form must reproduce the above copyright notice, # this list of conditions and the following disclaimer in the documentation # and/or other materials provided with the distribution. # # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR # ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # The views and conclusions contained in the software and documentation are those # of the authors and should not be interpreted as representing official policies, # either expressed or implied, of the FreeBSD Project. #============================================================================= # When using pkg-config, paths may contain odd slash placement. Each # include directory is pre-processed here. Resultant list variable # then used for search hinting. Depends on successful find_package(Qt5). set(Qt5QScintillaHintDirs) if(UNIX) foreach(item ${Qt5Widgets_INCLUDE_DIRS}) # remove slash at end of line STRING(REGEX REPLACE "\\/$" "" item ${item}) # replace double slashes is single slashes STRING(REGEX REPLACE "\\/\\/" "/" item ${item}) list(APPEND Qt5QScintillaHintDirs "${item}/Qsci") endforeach() endif() find_path ( QSCINTILLA_INCLUDE_DIR qsciscintilla.h HINTS /usr/local/include/Qsci /usr/local/opt/qscintilla2/include/Qsci ${Qt5QScintillaHintDirs} ) set ( QSCINTILLA_INCLUDE_DIRS ${QSCINTILLA_INCLUDE_DIR} ) # version set ( _VERSION_FILE ${QSCINTILLA_INCLUDE_DIR}/qsciglobal.h ) if ( EXISTS ${_VERSION_FILE} ) file ( STRINGS ${_VERSION_FILE} _VERSION_LINE REGEX "define[ ]+QSCINTILLA_VERSION_STR" ) if ( _VERSION_LINE ) string ( REGEX REPLACE ".*define[ ]+QSCINTILLA_VERSION_STR[ ]+\"(.*)\".*" "\\1" QSCINTILLA_VERSION_STRING "${_VERSION_LINE}" ) string ( REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\1" QSCINTILLA_MAJOR_VERSION "${QSCINTILLA_VERSION_STRING}" ) string ( REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\2" QSCINTILLA_MINOR_VERSION "${QSCINTILLA_VERSION_STRING}" ) string ( REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\3" QSCINTILLA_PATCH_VERSION "${QSCINTILLA_VERSION_STRING}" ) endif () endif () # check version set ( _QSCINTILLA_VERSION_MATCH TRUE ) if ( QScintilla_FIND_VERSION AND QSCINTILLA_VERSION_STRING ) if ( QScintilla_FIND_VERSION_EXACT ) if ( NOT QScintilla_FIND_VERSION VERSION_EQUAL QSCINTILLA_VERSION_STRING ) set ( _QSCINTILLA_VERSION_MATCH FALSE ) endif () else () if ( QSCINTILLA_VERSION_STRING VERSION_LESS QScintilla_FIND_VERSION ) set ( _QSCINTILLA_VERSION_MATCH FALSE ) endif () endif () endif () find_library ( QSCINTILLA_LIBRARY NAMES qscintilla2 qscintilla2_qt5 HINTS /usr/local/lib /usr/local/opt/qscintilla2/lib ) set ( QSCINTILLA_LIBRARIES ${QSCINTILLA_LIBRARY} ) # try to guess root dir from include dir if ( QSCINTILLA_INCLUDE_DIR ) string ( REGEX REPLACE "(.*)/include.*" "\\1" QSCINTILLA_ROOT_DIR ${QSCINTILLA_INCLUDE_DIR} ) # try to guess root dir from library dir elseif ( QSCINTILLA_LIBRARY ) string ( REGEX REPLACE "(.*)/lib[/|32|64].*" "\\1" QSCINTILLA_ROOT_DIR ${QSCINTILLA_LIBRARY} ) endif () # handle the QUIETLY and REQUIRED arguments include ( FindPackageHandleStandardArgs ) if ( CMAKE_VERSION VERSION_LESS 2.8.3 ) find_package_handle_standard_args( QScintilla DEFAULT_MSG QSCINTILLA_LIBRARY QSCINTILLA_INCLUDE_DIR _QSCINTILLA_VERSION_MATCH ) else () find_package_handle_standard_args( QScintilla REQUIRED_VARS QSCINTILLA_LIBRARY QSCINTILLA_INCLUDE_DIR _QSCINTILLA_VERSION_MATCH VERSION_VAR QSCINTILLA_VERSION_STRING ) endif () mark_as_advanced ( QSCINTILLA_LIBRARY QSCINTILLA_LIBRARIES QSCINTILLA_INCLUDE_DIR QSCINTILLA_INCLUDE_DIRS QSCINTILLA_MAJOR_VERSION QSCINTILLA_MINOR_VERSION QSCINTILLA_PATCH_VERSION QSCINTILLA_VERSION_STRING QSCINTILLA_ROOT_DIR ) sqlitebrowser-3.12.1/currentrelease000066400000000000000000000000771374246124700174670ustar00rootroot000000000000003.11.2 https://sqlitebrowser.org/blog/version-3-11-2-released sqlitebrowser-3.12.1/distri/000077500000000000000000000000001374246124700160135ustar00rootroot00000000000000sqlitebrowser-3.12.1/distri/mime/000077500000000000000000000000001374246124700167425ustar00rootroot00000000000000sqlitebrowser-3.12.1/distri/mime/packages/000077500000000000000000000000001374246124700205205ustar00rootroot00000000000000sqlitebrowser-3.12.1/distri/mime/packages/db4s-sqbpro.xml000066400000000000000000000007111374246124700234010ustar00rootroot00000000000000 DB Browser for SQLite project file sqlitebrowser-3.12.1/distri/sqlitebrowser.desktop000066400000000000000000000012541374246124700223150ustar00rootroot00000000000000[Desktop Entry] Name=DB Browser for SQLite Comment=DB Browser for SQLite is a light GUI editor for SQLite databases Comment[de]=DB Browser for SQLite ist ein GUI-Editor für SQLite-Datenbanken Comment[fr]=Un éditeur graphique léger pour les bases de données SQLite Comment[es]=«DB Browser for SQLite» es un editor gráfico de bases de datos SQLite Exec=sqlitebrowser %f Icon=sqlitebrowser Terminal=false X-MultipleArgs=false Type=Application Categories=Development;Utility;Database; MimeType=application/vnd.db4s-project+xml;application/sqlitebrowser;application/x-sqlitebrowser;application/vnd.sqlite3;application/geopackage+sqlite3;application/x-sqlite2;application/x-sqlite3; sqlitebrowser-3.12.1/distri/sqlitebrowser.desktop.appdata.xml000066400000000000000000000045471374246124700245350ustar00rootroot00000000000000 sqlitebrowser.desktop CC0-1.0 MPL-2.0 and GPL-3.0+ DB Browser for SQLite DB Browser for SQLite is a light GUI editor for SQLite databases

DB Browser for SQLite is a high quality, visual, open source tool to create, design, and edit database files compatible with SQLite.

It is for users and developers wanting to create databases, search, and edit data. It uses a familiar spreadsheet-like interface, and you don't need to learn complicated SQL commands.

Controls and wizards are available for users to:

  • Create and compact database files
  • Create, define, modify and delete tables
  • Create, define and delete indexes
  • Browse, edit, add and delete records
  • Search records
  • Import and export records as text
  • Import and export tables from/to CSV files
  • Import and export databases from/to SQL dump files
  • Issue SQL queries and inspect the results
  • Examine a log of all SQL commands issued by the application
https://raw.githubusercontent.com/sqlitebrowser/db4s-screenshots/master/v3.3/gnome3_2-execute.png DB Browser for SQLite, executing query https://raw.githubusercontent.com/sqlitebrowser/db4s-screenshots/master/v3.3/gnome3_1-plot.png DB Browser for SQLite, browsing data with plot https://raw.githubusercontent.com/sqlitebrowser/db4s-screenshots/master/v3.3/kde413_2-blob.png DB Browser for SQLite, browsing a blob field https://raw.githubusercontent.com/sqlitebrowser/db4s-screenshots/master/v3.3/kde413_1-create_table.png DB Browser for SQLite, creating a table https://sqlitebrowser.org/ https://github.com/sqlitebrowser/sqlitebrowser/issues
sqlitebrowser-3.12.1/images/000077500000000000000000000000001374246124700157625ustar00rootroot00000000000000sqlitebrowser-3.12.1/images/logo.png000066400000000000000000000353071374246124700174400ustar00rootroot00000000000000PNG  IHDR\rf pHYsodtEXtSoftwarewww.inkscape.org< tEXtTitlelogoOr&tEXtDescriptionDB Browser for SQLite LogoW*tEXtCreation Time2020Jun05V tEXtSourcehttps://sqlitebrowser.org^?GDtEXtCopyrightCC Attribution http://creativecommons.org/licenses/by/4.0/i] IDATx}y#}`νV\J:Diy(YR4tJ9lǖT\J-GIE%,RJ+Q6I-4eR]q%{` nϗ?9WՅ4}@ @ @ @.`t & wy甦i)clsf%cA 4$<  |dDSP[c~@Yi Xs^x<9UU,}2$; |;px$90uyKܗP/89IriH9_$颢(O>BW ~_+LӜg m,2=V,X_$|s~o}[;fi")%I%ՌCgiӠ 333$1 {F=4aoa5 `Ζ c9 IeǏtzv}0^& A;u?e=9?9$ӲUU}MӼ1v|~P@`^>,4e,7}BUU!5okt](4 ah@h^[M)N3ƞs'5-ūc`]9;7a3^HHhHP`" `l!ZRR\.Z6 &G~)YGY&<$-n07bѨErr{1ǜVYP*PVQ*bjvsu~??~H0~>h4nb ¿qx-'I6*  ׭BrQ hط%;97E04077g;& a`}}rfXYYP q[;X;uN؝:cx<fffNNzAjlkkkX[[åK> oA]/J \.k/84N&r PU/^2VVVZmCxPӴ>%n@41n21a޽ؽ{7 j'BP2.\sΡP( 3L<}ū%IsAA?/H`߾}Fw0C%;w *0>4t]'xNA>8p݋h4JW*a#ܹs8}4!>9=m)ǎ~s's 8#l:^y+8s L?m!~^W7h•W^]vm.9ixWK/_D 4} wܱ9^6A1{kŕW^ I"l)(_~'OĹspã>-#}{$R)\s5 *"l ĉ8y$z9.I҃$ 7sxmn:~xߎ={Bض0 /z)>}O=VVVzz$I4/}K!i>ߌ믿dŽٳgKKKxUYMGzE8t}ᦛn4 Ν7 dY׎yeq0nr$ފ+iK੧??0M[z/|ᶱ ѣGa|UuWYÇ[o0=@h\.Lƭxjj~0i8ܱcǤL&iw 7p'z@([(eYLӜWU}??<92sEQq/?8@&$IFꫯ:70 c4w[y睿i's%!`vvtOv]ׯ(J'N|u}kSum {G SSSH$x~Ñ#G:qÅ]5+jZ11,.. ø:灴s~bhhc]s5+"FwHp⢦i H䷇-BCbUvN B$D"={(I$IzS:ٳgVs~;MuAG D*rT=3337@&{?C ػw/^}ծq9\<ϔH$!ƄT* d4M;Y|NC " FfP(QK9N ]/JX0j] itJuݝ7C$A\OPi #FX缫`CL&9"8Z5׋)"; $'FuWt5P?4MGUd2صkh4P(\YWLe! : 뺎eI0$jԍs =}kS-˲^UUzN3OӞWR.]aT*?<.^w$1DQLOO;z"e sd2:u9898JL&qT9GXlfBbx G;욦AUU4 (2+ rV$XQdYD"D"V> ![uz$IF:*򆲌PUi$)AabהhդS@j UU:͞/*"6dxxժNX"<|֌H^׺O͇; Q&LӴbh];[i yB`0p8옰b @an=LZ-::DɧF&A=> Àa$0ZjuӲFaVHp8H$˂5NB"7 -[e'4$IjI4a& ðnfD^Ivjc7 ^0 *i֔T ]DݙL.iZSX]xA$~ QUkk6Z/XL   HMgE <N\)  l=0:$-  i !@[=aax!@;uz_wN't0a`8qWq7v߉N=-;~Łرc&n![F:N nvt055WNlF)6EHĥ+ &=C Mn&P6pCv7v#o7 O֟pZwN;;ԍ`t"v7OaQaung-FwXo7"M ;|^ԓ=z4~_([tbhkB<}H{zO?4odN]w^nO,ބ0 TUk EQ<#\ V\\\Lx4ͦ,Ο?{"X+ k$ ,[Uny'q9H^^#AN(k'NxjhkvL&~?OG8y< 7|Q0N%ۑ_#"Gji_uXk[VEuE$kA2z0Ekbv["#GFԵ~NϹiu; S8@ {]w݅mЍ~>~W~WbN8+@ u  ?JP1w}oNp#ʓڽ{7ZLOO[/,,`ffR5Mq /$7޽k"~P?din䶋C7 0L۷GA"ȷW^y1W`ƍ 9yP`Llt^r N~ǔ" ě ɶ"Éט|!@ *2ďXN,i_ʉv![Qp; D58<7 p|sڷ^ $'e,T>$#D~BzطoJR߯p,HZ>R vFa :ܐTpC|*z$I{y!qVs4Msy)XV(?E(T*WкLXA]8Jv p%˘ƞ={{nxށ?3YnZ^/"bϞ=@4 E~aax<&h!tŧ0χ9ٳsss\nh܋bj}JN^=!|~PP`"i_BN Aeii"7dmm $uMpY;'~(H`0p8H$馩AYǃD"T*ZnyZf9sƵZ 8zibyy#VVd2eH pۆ^~ A @"@2D2D* T*W B} p=F 2fffKÄ( ( ^CNS7Ӽ;˝D"H$brlrךiO~r/;~+c$+++HRbrZCkЄR %&1AD"kbm͂irT*'OX,=roBHӨT*]s\.zt:ws32,Ce|>Ȳ<K袜,.rFv{(X[[sU_ĥKzԳd2(-aVŋL&F'v.Jdm4pr IAAAB-%syǾN… /-bT*{Bur9rD2 lrTjQ.$>> &o٤V!wqG&,1A iȲYLOOP( ϷmVH$[0 ǤKvӝ\c ,[KeȲ DtY/ PUj{9偏AyK J!Jh ˡP(l à Ė=Gvꖊvahu_sc (8yB-DsaY ["۞}K._l0~L6U& صkQ,!YQ׭Zk@Nr?Ąbѵ/h4/"[0,/~$IVi؇7 Xuh4?A@\FZ홼s,--̙3#Yc,T*0M3330Mz頽^7]׭f1Hm"Dɹ\.ۑpSO~uuӈb4mJ5V"DD&uB!a OZjF7ipy'GgiB!~躎Z6!uPVQ,-10 rrjGO ^V d9d2XZZr7 lX D^xNn J?ZZl6kuy>"1}r̓U,--4 =/:@Lӄ(j@@333PUR RJ*z-(H(Z5,//6巍%`uuDp"6|>@@Tj }[L !A Š*5d2BtD""&M$V,-s*I5caazj5k^5/D E RQ: owK֐&sfh "# n v4E,aW4pERXxЊeѩ&RumOmaGQ[7 *q[=1)~i( Pcӏ@L*DJX,fC:* 2*UCӴ U I>^4*4Mk"( V(,/bxlj`( 4M~:X."+@e$ k5UU\AZݐŵJ* ^!iֈM!v}Zm2.[#d "F"ǁA1110+aѓd E4MT=(] ðH?Z~;䜘Ըi(h4î 1dԑՊJaIDAT!znn DKbHlQъb3 úm6ܝxA퀉Jh4|&VYaC!$Yt:m*EvV aᷭ x;c~}h9qۇ]fa _EW=gjN,'m-C6\b.py 50^b`Zq=k,ȝ(r YEb&,^?%?EQJrNEI&")eOLُSx "b{$ {F m@Ik7=C-[zR+u[)pd'YpqEbP ·KI o=gEL aM,[AJ֪v!vN $[ 3;-;4M+nn>.wH쓆z;M\:Yi7M'}vDd!]t]w}\r# &2H۩)FT"Dru%X=a58F %<%U'H(@ 4 @!  lI4!Y<30^&6a tz`w3I׎p `v5I֭e$&M8&Y:}I7v$oyd [z e$xn|kߍ$ G<뮯1ƾ4_mHh7w z;׏R'>c<_w#wC^;'@d%L"c_:tvk;V%I1SzȻ&L ^{1s_7 q g9 ԛ.aBEm=z/y,ăznnSw jzaV4m 3{ox$KK x@\gϞ#߿|]d2 0d;i%{:=(@ F0ÇqUWA_4ۇծuݧ@xnv}k3ЉDmEe0 "ફ¡C:+@н/I  N,z{,Dx+t:Çc߾}v<'h8 r(`&Eie>ϕW)ηB׺ɝ-)2w^:td^/8ic3 @0dNjJiZ`˲ QyNac7$n~vvǾ} UUu8с NjS.>!b}z@ @ 1*nŠkT $B)޽W\q@W.]yn(HFm@?4Mj5j5x<ALjUs{),v#=Hg޽Ph(e,V G<Š(Y]]W\1)8TUx<B!kRO^.~I? !kN!hz177]vann^w߱jG 9zJHd?0 ee0 ݬIB )dYF24;a[zZugϞu \.?r$ `HHp5aSO9q`zzzo͕5:YL&3\^LVq ]iV \#D"7!la$m\oWVV`c /4/):Gui(1~+ ;fOX^"!l~qkK&v\jv;w\0דd躎K.azzzh~CFFѤ>@^>,wXPrn YH$⪅vb(xg{rA{BQd2& j6inHd(bAz;WTx~0KjP\1(Jя~*DFTUdَjeaR7at|voY}>~D~BR=kkkx{npQ(055p8p8 EQfQ(6sJjD"X,)QxX-)$Y]A~ܸI5잓ȵHYĭ v.z~J ssӃ133cdv<"!( F[]emw`WAܷh߷e}:R \S$YޏdoOhϝbr\ɓfC0== M I$$< B9GTB\QBЫhpiMubJgo/_t2gY$Ib1u,,,`aaJn-QTBTB(B4!0 j5T*jCF^z lvPMnPiX\P,"Gab7ôjRDa8<Ο??Us fzzxF4 A*B*( (ay@J2Lta ipϸt.\0Tw,62pee BPUZmC#˲5+@<|>5<$YzZҥKXZZcȣ<)L*FFVS 1urʔ; ~%.^̈́BLQVҪbii 0 ceڑEHR`YZZA<:L4&10 ukXhjaTV^~5X,beel;N)Z #L[{Aayݺ(-b8a\,7 !(t۵ZL&L&3P@l6X,h4jǪh*^*J%T*]QTPTbIfgOUxbze VWWJJUUH$[w?Dof8j(Vx=3k(Q̭ s# )Ev^ z<ؒz/k\.gYV\hj5LÕJr,i4M akC4MQz^OM kTUE,8K ,1n'X$Kdi+V OŨ4ɲl@|MӬ[AQqޭ6W< `XC4u0Aavvmvv8qKy\b6*>4 T*J%T&~+瞘i( ƺ _Ex,7U ð:jʄ8k*&bw91r0 V&$ Bl&>( TUE4yǃh4X,f ۊ[ hH؏G^m܈Yۇڇߊ}Ϗ!Ȣiuhi&O"U(_s-[ FAHT nCl(VomPeЋCco%vYkш&iۚ[JFp)a#@UU+rۓvQ=Pkɽ;'Riu(-; @Sa7Iv+cGnXbnfaN'; @!Z/"'-9dYސSVI\L$$CwAvxZ` Jg1Q* B~A׳I h T}FVqh}lϢB\AĶ+R1I=nNL;8 (/x|鳅c!2¢܃ݓhGk%v7{X%LT:Y@h.xN|dI& Fa:W;Qg"$aIIw @~`$s# $ c" y- qk&o,i~YЎlN؏O $鉁~7S:A7K݉,[f ?74͏n/n,u?auVOvPѣ_?![!7J& }U . ^Gѩ>lX஻Z0`':tDnq|7t,&&W~SnS+'c@V<% ~7<`qq?ެޏa{=} Z\\Sƣy LTz衿}|{7Xw-ӫ'&K>< 4]zחdYڑƒ!'AIxByjx>[oL*1Q@/m4^psLQ`Ƨ?>2!u]r-eGIۏHP@38cW'N z7?9{c`vX\so~>(SaӠ &iI~?x38O|DCscMDw#nn9 Dsԧ>?,?r馛*__ z߉%а`=|]n /~"<NS@9axsұ- ru|s7C~ ǭp8YnB-_@@.r4 qW _g}vc~^=t{_zOx`aacǎu 4ؑ#G.>u_d:;y,}'1en^<Jt!M>s}'&bm^cpBh (9q4V{V`"?b7 '.NN{ 18};c_-v %) 8я}cI>؉^+TDs{?-+Š[۰kLQF.4M󛌱}W[@c:^KBzyZZp@'bSG?V1V=\.O e]_!Qόiߞt~G@+_9T*71 ଡ଼Z7Џ8,t/1ƞ1P(±ccO@>KtZW39? ʋ@$˜N\I>N~l**UV:Z[[[PU0j[/$ aKuOi>|dN'?~AӴÌq:sugcg8Mǎ;C/ݻW'?a,{؍׆>[ŁXp19{T*u7~74:U}zHt F}{3gNݜ90v2 # e<9O3sD>B:={ٌayXs7M3 9qWcKV<R8Iv M$I)0RiI~ysgMӌ8~QιlY0y>jxmA\4\P圗c dfs`8 ys^W$I뺞$)?77M @ @ @ @2?ͱg{IENDB`sqlitebrowser-3.12.1/images/logo.svg000066400000000000000000000345331374246124700174530ustar00rootroot00000000000000 logo image/svg+xml logo https://sqlitebrowser.org DB Browser for SQLite Logo 2020Jun05 GPL3+ sqlitebrowser-3.12.1/images/sqlitebrowser.png000066400000000000000000002741601374246124700214070ustar00rootroot00000000000000PNG  IHDRWIDATxwx?R.PRbA XE{o *"]iwB]nydsK.2̷wfg$]@ uGn @ :"@ @ z"j@ Z @ '"@ @ zbm jH$5v@ 73Z!n%b@ 'j8 @ C>>@ `Ph$ @ 4< \jA!T#߁@ ߁a?6C ]W@ d?X.e0}NG `ڦ[p}P!K+e@ S`2kQW]@  5`l-1o k0,5@@ e:y+>Au :\S@ 4Ԑ tp}@zԵ"P @ Īz-h 0=`Au uCR t@ 8Ԩ0Xo <zn_]z#CB@ .4PЫ9^$\נ{kL׷'y@ N(M\4*nz P&)=R|@  4xTdGK6֪+Dk>ӱӱ`g@ jtJaKթkRߑ"E)WKOu5)X{ګKy@ Ej;zco!n𠺆a]SsMUw+>@ Cc8Y!Q݆4n:`kbI/yέLu9G `kuur՝S2>Au];b&O5C Pю6%yATbuC #kP^@c"@p(P3@G T7p@]i)s"?VSj@ Uj;.ccc8'ڱ X%jdPKQt~u W.m@ HKU]YpXVO2mGگGg%- R-ϏNu]&-5jt^M@ &j-ّ:u ({Gbi %XYvM @Иvtuߑx7P ~xGt&J:53j=wHPWK4;;6mڌLLLl:$auYT/!!^y1I4 Y˿ׅoGo}j';l(@!ӑ~c-ЎAT:015vO?t].4-bPP͐̊fWV\$ ^yH'R ܒClx9R+țr#9$"s!!!!!!!'¶m>8_v=HkqmG&#!]i;Z,G8| [,FF WpEdtk#N$5ndĬtÍ֜~1<!\Fbv$$U2z0"35eYFUk֯_X 0@?,sڑ/_____U]tlrA^hc}@zrX}W?_dM*REe(PJj6lAU%50T󸩐p*k6VUU`b"77۸D2`k0# Zs;5]ױZ+ax 6oZ8X3;4>͆i6Qw@R@II C .?_~BQWr(z Xlb2ryP9HevxLiޯn?5u Z mGjؖk؎xml~zrrrػw/M6ut҅J6/--6mХKRRR*oEUUVk%7,TvcbHYs>~L̘kZZe$ SEv}})R+8f./V &7ԩm-ׅ^/go`ROn]I=ۥZeIܗ6IA(i>*5#F3k#5z(ƍj̈́9x$IKouCTK5 :RsMu J hܹe˖o>2220`իͥo߾iӦ+S bsN_ #k.K۶m+)fEu<[jv_~nݺ\ͭX1[f18_UUl6[gхckn٪qn+pi{ YiX!ω'ȼyׯ_%'`Fu{}6u}_~ ==9[ -s՗qlfNGXoM4&5ٿae߬f[c̛i7gOzO9w8V~Qu.vc`OEO@Rt*j]S _zǟHخk@])`6mG:*)Y4Mrd^/'tm۶-...&''e˖OJJJYv{y+e˖Ŕ^BBX,r'>NK֘ҥK >4{c6`* FS3SZsAxoᄌ|><'Tb>̐\|̙3~Uq6j\ЇH⾋P=~؃; ^U)]7kµ<@\O}ﻎ5>ɤ!-QUk<,$ge,K˥h> TTKɖ2;%s|z{m*jV⯾'qknYVLCCQFed3ѽ$_fqn_Y1kwm?,g=`..EQKXu nzE- v俗}9c&i᯷uRZeh~NKI`z?8ʁ$PwX:#)CE6k@-[i斘$Il޼M~HMMvKnn.^Tb˖-1+a87n)26o\eibnٲ%mܸfT.!Ǭ` $cK/;REeD.]8{ HRUo_Ij==ۓn8~a̯/`?de$R9rHY?0늞rkE|WxTGS2(('2No3"+xf1c_p2d-Kc_dڝ?n~|x?d=JFh7>f0? ٿ9F ,rZFl}ZNct懟5E&Es/Bn7N%t> ޡw|-_*k:ы%^oϩ7I<#!K:S>I$Y[ r< }SyL0^ϋց J(1Qx!zkQݤHRxhʗ -$yyylAqq1v[~A˖-ˣW^4U\̘ WgfH-|lTn;*s39{bÍ+ܩ{3sQᯓ'|Ȳ\^Gf9ngѢEUV`ߖȶ"ymy.H_vS x쭙4$zj7hŊ$H<YL^W0eއK|^ځiOk?{ݨ+6aq<$={cwrKjwlߋr_|~w0q鞖7Sp]|SnMed])]/=1GrMҧ]WX>u$T|  g׼lB)399+]ٻf>O?c)G)f<4,&3xi2v$yJ̛g_fݝGahc哇l-\>-㓂3Ceʭw^Bg ͼ2 v yg)) 1U^;rکdJT4-XS_QM] 7E{GhsWpSHl*Ky3oI鲯y/+vL'ݬ~ ]ϼͫ:͟0 \Ud%JU fq99cBWv ,>4_ont7ڭo~iyNᛏb1s%@.{:CmޢY,!7|9G4Ug++Z׃>hO#J{s'#Ft=w8uOu &j8Uc6~[豶MC lek_86-z~̢GgKiLY6mZ_ O̕w@e0c̃O{7<ļٷxcN<ß߯G+Oij'}(U}c?Z61կw>x'ロ n_~,{2'O= %}_~3?r,qQWw,Î_Z=5BA7ٿ?/R叾{o=={CzW2ٷx)h?[R~xX[98^^*&-sjThx,yRkf>Ƴ,&k^|-n&Xx9mNV#qg^ˣ^@|;NGo@o;>"}fX6΂uACepiWcLe< +kK3"2l; |t.n]'>k,WŸ?Wy<j"S}{2(Pey7H6N;2h̟~:W%e\}#:q9}. 9$ϚYO}cNDYĝ}Ai7{q\!_joH=v 3س_==iu6?ߢ=6WVs\FE/%3{:Tu؆ǘ՝W:AuLF6oWkh\3oVDLdFBBA\\\/11|о(FK0c`m3?iZ32+uYfgbv6ac\o6r1=s~$I*wFͯEGaZ?Fݛ[\yr/ O5lU eWIqi2>݆jh])84KNsI"{723"{69G}zmdepdl{8YIF"\eA$lؙ.MM@TÎMn4$uD۶wN"ݪK@d *Gs{\3ʹ;G~aK88&O".#˛-%Dކdo+yδI uEr'uٱGIG"&ʸ΋ I ,xen|ɣӱm3ʲ$qc73HMw_,_q {ŭSf9dIrzMWɜyJw4݆C[hѵ+:iEE>z R?p*^Ibč/2dmؽu7ofƍlڴ7vQJvS5gؿ*뒌m?^2'zǪ60wAP3Bj$]MI @ `YFCX5+vY&o nޭmR%/ظ2y 2|7͂ΗqwJDkK6S6!iߧGЎu)aM-;mw,¦\' r̈N6z@T!PVDK,o{yVs֔t4-c.Nn$$m"4@yd䁓th݋SvBĢrdN0$] ^aFvkKS/,+T=8CSU~'*P@!ie,߱G$Hx0MN2 Os I-.Amb凷_rrXs} qg%Mdzϋ,w$u"AR hyw-kf=yx%I~Fe,N$)ti/JJ}IHVGR5[vQd]|?g=7stb;\Zn5_ăR\qxxߝw,C$}W~IB`白1%zr#./c4nw(B>@z!WP n'>Hd :LbE$5pЃYHm(Gi 08̚5M?I?BeX$[_q JY۱'EӠ-cT/HFa~1nIB-þ}A[F/=j IYrvj>$dwym!9MPC/fQ蕹)ݵEu7߿J$:%$I&^DԊ=[w2%>7R6k+{t_qPMA,h9 A%ZtJF^% JȲN(w,lq*ZBC"/ȒNC x$8_r[7P%od;oZTl6<Oc5翱m<ȏ_\Ns|c"Da א<,$0HKU79&/*qжTñH]R5ǫɦuh5'SSS)))}彾Gp̗yPII iiiU8Pڦ>p0>FZZZ饦Vjc\l,?g>7ppT07O0>bTz`͓/gK'MDzU(j4NQr!;Zr}7hs)rcoہoZň B˷-ƣ(>$ɂD=v*$BA.![,mC&/$=wRQRvlߍb0R^I*˿t_| KٴW}`h*VoL[[hS)[HoTUO^yttiSYj~vcгm*%ѷ9sgyTM)Emy,/:)HjAmybAuѓȯg2Zaoo?A_4R? 527d Ng¬^{>~8x\ tm(\  0 ~ӕGϠvw)Z*VgRTEF mV--_K#`[I,S1VU-hG@LQUP5́hH  d 4]ed ؃z,'sDf%8k럿!82,6gwF^c'.UBUxXR:/bd|p =.f% = T Gū% MձX*ق,i( elF HRUJBSy&9}nJߎ35\49y5M D+Ҽ\,zI4!exoDFAjLi<3l5sl$??8j.n:7|=kwq5لW]P:ƾLR61QrF,˕&/*%—1̎hgOכD2߷*P\7@yKfv 5Fy—J2;߳5}e.@ezd5cKsYq^87[~E3%T{mc/49t'2- hHek:΄L9y'.et6x屻J8B@Eώ$-ζ?vYpG Dl=Ȳ+a@(ԄD5L,w ]t ).Ĕu/G)؄J,oi6(Z73#gFJmk[63gzd9e^oyD7Z6,'>MS6ys[\>v07ҬKg-UI2ޢ|vR(͙ܯ dЃeҩx%a0|ϴ,t.܏m}OrOc/}ɐ iM@ 7л;͝i2 9 d̑XiC:_~Aos!`7)pBv@nǼ>N|C[%кcO3s^'I&@FnZHHe~S÷qq >_1DZq7=o^/|94hoԃa^z7]{0>b7m~`kTc?-lhÏ׋ ^1b(Ev+ 1VUAصk~L5 yGAA۶m:[~Vۓ[mz۷/oW04.++9֗4kskh5j30ׯxumv:4ͭ}cf+wh32^57D,=>uy&8:'~_qܥw1®<>f_כJA' ,Fp-G/rS䵟>᩟o4<)k<;,:}$XWK9UQ^]ȄN qf= ]?OxVC|_N;+Ie)]9pOn's'j=_8f's N$~ 4qw{]4v#뷞q)|><.Wq27Cԇ]?qݮc3xC:%eo 5^xn6zS/OBIn%@$a i;OK=Oo@nxrr(U!P4=u2 9fJ|}8:qLz͔z& <=)OܛnKF$aGT$ ɢRe$oχOSqHż`yq׽(l`@JCy>)[h-m|>Yeݷc=ⶱ[y&8-b;/08(r<Wv.z_Ovt>:xIIJv:O. _a)廐,iHhB@+$۸Wr6dFskH*]ĕ͟fb2ŏ#I蚆KԲy_z0=@~p3#o=F=y5e<{gQ^Њs~0>b7}rvjsLmuuZji9'j*j#- eӡBi|jc"je޽vHHH --f͚p\gxcC%..޽{)**v: ҬY3E)UT(a)))ȲLAAAyz5i]q\21M?;4|{02;7WDS1sN*Ψ7ܿ;t[kV4> L)t(ؤ9z.rvnHeEb6}. ʬU{8GI5l&i9OsQUHo7^݆/^mڒ()X $Xز%ibl"Ik*ͥقͭ Pn~,Y$e%;e9[$}W8%>+j]r%_}t2p%elBq@B:i$Tw6<-ZHN7gK! MZ6=WIV (R/ӺK'-& )eO YYwmbGMi2EJr; H&t^Ǧ4BFVGRm>vۆmZV_HrZ؛LCeR[6=R7)9ϮMj 4\oeۢW(dIZ-."|*ĥ4%!E4&܆̇nI Rƶ9xYvмm;d~#K7ٛ)XPbIcl=~d;{vleO$cx]D >WE˸IJHmے`q$ bsn)G9м]JvT1+wݠDhE;ٜ,dtL\ P䛌el %e贐y%J^;ycxdB;}#%vrML~o+ 9EA=OkEFɮӾ}˅ՙR*+d+%;IH'MJ4 g,$ذv;ՊْVoLƫ VVLO^m{PeLa$UhҺ-ͬJj.6o#UN -l/!IvZ)y)VP6mAҦMsqyu,ٲ"1^O淙FmM^r6>cƌq%cCմE6Oؾh h蠺6c@:ҾeXjIuܹn*$EQHJJ"%%rC3z2g[yƷN^~?Mqqqy\mVT $ Qbۑ,  3]W)+$C{"ۿJBb<@ՙq}4,,d&?%X5?{*Yo;F%z"A\IW~G[Mڿ=EBFh$aZMsz/Fu.I~Mso*5MKrN8i(V+DZuQyl{/mP|RKօl>H_mZIO ,cNrP-?s {}jTdSAum~duF^G/x4/o:1b~|:|5yܕy9cK )[1y2&.[WoF7ܚ7_lUI8ְq#V.ƴ>TPS:@ad.w,cf m^҄ET ?_ 7(LC.Ruc9> + cXӵ XuAr]w!UK]ݱ:ZW, cA**ڸkw,_MlTU} X@ FO6).ÎWG,CEM}j}FWw.E\|tѻ$ /u]H27X3NNt^9:R̕뾚~WXSܮ];`-uk t@ JuWZr~ 5ak;a!ǫS]%n͚5(Rh @ Mxguca!=ƴ_a;Q1bY!zc j΋* O6TT( k/\sMcgC 63#Z0:}=sGm\GH̿#VW M6Aݘ=t]gڵ(RP @ ,>aN#<>P7H} ?i8Hm{"*|A}y嗙ݎn'--$j?Sp("AW_]PZZJ\\iiil6l6^Oqq1%%%4iEgNEJJ )))UNݻwSTTD&M;˂Lmtburz5Tdz@߉9npM,t{'Ȯoksq5޻woӾ}{ڶm[I&4i֭҄[j*oNVV~ރ/OwNغ(4>gjS]Baշ=3W^y:Etx^rr2#--X*b*`oT;\4.k6:QVZƿ{зɀv+P2ԽycgPаDZɣU?a_{U56ѺcM ##T|>k,l֭ٸq#;vzзO~3㻅vn30j!ϹQAӧ}E\< wdk9WPϖyS|G잜ocޙ8kBiڗl"C C'S>,..B>6ȿMTd{2tk~dy2qԮ}]WN`yn5!}@gv`t]g:-??86 ]q۷yY3o9QGL a-Xi,x[g5R)(ė#0,=}̜ԝϏ׵zl;lk}'X{kUwZ{{ބu~~ `рX%r-ᙓ/d½>J6ML2c]Vd[a'5aԋ,t]G4|>"ryQކ^\Nhu6lمohk\Vc:ZKŗ:ÛOGy7slZ4 W@1pR-*|6縱pl =)++rxإ ɑLǤNhNЯhFnQ.?mc2 K͂ w-d՟184G?xUYsqUW+:# l$ֱ5n, _u˰kDVuYPP@ j^V+x^t]GQJJJ|XAG`|+y7WnWOb-0Y<4/pߴusՠ9cیt];WX>39MZ"?}/[Љ۹ w?xf?׹Y m3޾֠62ZusM,|M٦++^G"|Pn!WФ/9/|5<;Go Uٗ7^zB OCh leDg\u+=}%Yaݐ{-}zIw> >t+"SUǞσ7];ka/ ijEt+lu2?ëz> 5g\ߦUxWꪫjG I,ZvkU#naRESFPt݊ۀvn ߹BHRsRȑMpﱷs? ^HAs??7ߣX2)V:+g|_VC3UʱӃk]J) R)߅p]ŷeuv;OKy=~Zy ~=z ׷3_sT;\|pOg^ΈN)Ng|{#7T6 Ӊil/%/'[K{_ڑi9ݱU 4heG+79SƖf1#xlu蝹EqT,i9S.}V(Xt _saBḦ́ OU~ȼ [ 'R V1룯4Θ4qPQ]9Ĉe7"-zY:j{M,r^N&ҧEhтf͚ѬY3j:XtFjj* vdYF4TUz}),}{?^; 8z ;.XM Om^f0}ڟte0gNtˏOaN}|F|7>\](Zpnt4_.&B=HOqu4/\M'zOLZ86ECPtUESU~/޴<>]]3WٔϺ1YupML Kb}u[pտL5<`zkrN7??yw5Ϝ|6t5=@?3iҤZ_ UU4@@uz ' H'#)CZrΉlF΀)}rq҄M*VY8Tz Y/t;=œ2 P _jI+ n_1)EIAhPQ_ڞXa=ޝvz_dۦĭ\ځ_QѭF^4tGNFM1t@2?^ylD:R8&Nߗ2:Fnj=Kz+5y82.}2c[V >zݻImh |Őmp0DJYY>|X9YIϹl!L=5e(uy u?kja%cVR`w&`Q4I躍6y,WQuKT]md;=JY{㜳thѕCXӫXo5:Ց*‰vލzDA(X,TU%6 VZV]F};.ILqqխsRq"W:c4 (u4kC=gui<} {<;YsT*e b*n+ßxJw&ޛgYGSuujP̧6&f1%3Y>2O\`P/EQicd>z Wʦk2N,\bt-_S+ t{`Je|gMF![ֹ&XГv}QYUkӞ|9 K3YrhLxtJP]2ջlx6~Hf1O3]S)4U I(){퀂[I=Z9鱭x *~ʾUF {\O &:W^ye6$IB 5lOز2: e$ѭ{N9{$1@'.ilX)C-tMAլXdhIa#HRT4>L=}Ǵ${:5ܾTx/g3c֬\W]`4>;ˡI@ < uFttKq#=}olyEmK!+[ͭ67a.TCRJtսh޼9͛7/]éIEQPUwBm =]À]u >ZRմ=PpC0_SUix` ҥ37âj<ïǏ?K-GĖI'iUx)޻7eFsiYn]ࢋΠu&e%OݛʋΧ[;٧_9[IdϘϦ^Wv$95^9)Oh`[AY2Tq='2Ō} gWh3-zs!K*6N7o絛}\EEfo~Y]L.]ԩ=\tщ\QrzߴG\ ,;;\) ;IኪO1B1 ѭekE^̡gKO?S3+aZѥs'Z7K+K^IMӰHPT~^YȢUq^./`ኽ,w/>U֪ն[pKUi=ibzk?uO*zur)rЦMZ'#UΤѪ@6ӿ}`~W+6/gp ٳcНa'z]p(l1ݓQ[]zp򤮣2DWchRucP0V$>i@% , 6l /r =l3njFUٟ1a̜F֬5l-y[w ttig2ϗrA ۣ}N3C!x<uOxKQ{]>\1;uDssΥc1.e4?eWc#g1c8gpBb[XT_{dn5 N! E/L>x?mJ|m{fbyb7cڅ8.=z[QxJVʔ?ށg%Tq.*t?Sj :.ѿ|O|#2"s>21oy,g5?²ӓCa 7xgDS$k'r5N iح|ཛྷ1{ |Er5UUx<$$$rtUӐ$KHPO 3Kh'+UIhdmK t0Y*Mط)_y5Ctf}* ~ęqlf>-_xş3OS{ t: yчH/[̕W z ͆q^f}3Yslw~5k8{øS|@_}Kٌup:tB,dATTѓ=|+T[-r֥tyf'N\WN\f?:=}%]SDۖfF!q<ݜӯLR#늎*UN|q.{:2#:^sAT]+9̞i8,!N/n8tt?LcAqT_-(߲2#|GXBHVoxH5k5իW4oޜ<<}t>'\=/+?/k M5h'99oi Z8,xB*e>#K_CƓh'.а'`qBǨtJ"t5&8\JbGbb<U?=' ^d9> DlA4t[v+>USKqѱ;|eT \n=zfᾟ2$METT]#x;M,n}NMWNHLWRX)<~t`'qA~3>S=duL)A%@ۏ-!KqIHIBRV-ccՀGPMHr}oCӼx2?-1 X,<~#꓂5>>7Ū8 ˋM5GR2TxCG‘ĪzHL `7x+"^/EEE4mڔ`_ǗѡuSz*[ѱ~[U̮sdZ8T2Z72 IH }ѐp$&!k%|endG6_bGGO=>hťX;(q7rIq^?;,h"xEƯYilC&]6{HOl 8%, $'x<`.>եV:1gHo"ءfJc_aEK׾)a%;(gr"OI{kdÙx()E[bC q~$TF/h+ G'>ށ} X늪h4I">9^L% mwʡDVZF(J|~v[7J?7z A  -@bNu^^^lݺ]@cO7m.!`oyy>% ] U&Ȳ'!ˠiz%*zAtꚆJG/O=5 I2W뀖ׇ+>ǯ*~:6'g?%d Ze]fQu,"j>3_ O_IzU8kBphjY3gsh{D:FjkS1pBuVDT~'l'\Ʃ=S*:"+ =zx`PﯠZ[?TGڶ}@:z1-[dƍصkCuP~NaJA~l[o+~gʉ;lR,DӇ}y+ޡmr:CAum΀.aw5qd&Whlڙ˩OP}P#YIqQo[?j#NvoǨ'5v$ K*$^\@cg찣gϞu 5tkaj:ZOuγRA5@aa!@Ԡڌ1Mu[,\5_qr_ mYq=v.-mꞰ$!48o&_~y9 $8KVفkWh((.̧1~D{& H|C#Y?Cu~: oPI * ,F LW7DDbPz{Z*jPݲeKrssk!@ իC@6T瘃HAT,TOjl8lڴ GjjjcU HC/wq8.<@ ~K/!aT$''ЪU+ h A]KD] CDP͛|$%%5v@ "6c^o3\rIcgC Tt:k}@ \|a@ z"j@ h@}].Ά@ 0"䢋.>G CDP-@ T A3qΆ@ 0" />G C:// @ sXÆ k,ٳ;wnrϟ,%Ij,{5M㤓Nj, = ӦM7o"A~ٳUVѪU+N6l`ժUKւAFnJzz:#FhdYpk-8hᠤUU;;!Azz:lݺUՂAFrss9S;CIll6ш躎il6!CC6v6@n;CT jrC>6-^JkBȲj-EOui`ZMMߣ "V9xHOOr5v6"H9g;Eд SUȝo͔@6*p%O\?[?^ooq׋EBPT}+޵Lu9-;|2$4f^´/'CAՂu='p7q97cx i˸?8ghrYPUEQj=•pڋs٘P] &_ MV:;p6xks t"C~g)Oaaije ʹשk+ r| 11c<~ HF 7uDя$gi@"(zw?..zh{M\.B\4GqS?SUԲL0QSRp-;ywQ8&p8xd~b?/log+^4^1Tחg"񭪺/;8h` 2ՋVG9"jAL+-8S.ZV'kgNI fu.՞*dXt\T/bbT}E)|p /Kq/={yO~Փ[Xx>W2Vn5cɖ| u: #֝IwͪϧŠkc6Cxhyrñī*%[ug3=B;dS~W" .L'sTc9Xtc:SU 6,=\ӏ%/^ʘ7.tnV>9.; q2d{.Ȓos,Om_6Ӥ&w$n};Ю4@Nh؃>-)ں>/_^~@(.bh8E^60&Rh;ep8/f>-1g"F/ . !hCY| ]KgxB!;y02KY2 ~-@c^-8ė ȢY|du+fЍ_|zr)3KY7nt$HՒ~?>K@-V:m"\^/^^s2̆= F_L-PVFQu9<-|#5=zh^/^+ 6dLz+FGтR ŢT)Aֱ0Tv/swǩ)+ ^>k@= xCs>/^o^ L"r"YY#U ?LO*RVic/{&7<5&31\t}=; o V$'$䴃/M|{+vsQ8:ŸϦN'g⺷݋YZ9 :\ʨ.80<˘ l#8#J|:{ B<=t$ q)qX9 {7uמ@T,cGj?_ݜ.At4|!בt58ɧgq=٣=N+xd<dcM99axZ(^ @AQ H MQ^Je/>řsc)=0| s_L '<;=znikZk3Nik&| Uz}vitIÁUBY*^[y(iGσՆ1e?Q4z͟ 9ݸ4z@+.m&HLM&ke>hN;YfK(-z׭w1;x,lgɖtC+ jq4~{f7*ljG.gF(0՚ҊR3V*scvR\< \,cy @ ]JDQ4NwmyYv0饨1TN \0"#ޒ=5^VڂÏq#G>h[ n3{s`l .f%PΣPrY2C1R_[S2[1ɣ.cआ:f>ᰉ0SSSIHHup=ذ5oW3 ࡤ _5ѝT8[B3YqnG:k8I-uχ9g?t'{',I[ҔpJ\ 82klCFҧMsZ'3kd4Am(ر OtoXneK1j3R)Z?wAi){Oq};:qF}$?ӊS*X T: sK,\Z ;K:* ?fq{.{]3ьkO^e#;) |51ً]@.y.HrĦU[8!#$u;;:`GY6[ʎ["֯5<%kJ@a8*)/ZW|YOalQ<|yoڤ2R̮t5> %|6o'r`0Hgıc6$)PZ&mӣͶ.Fhw䱜(84#$î lithכ-/~@[N&\AWVa(P -`'?yy@"I΁04;9O#ϔY]\91gvdɏSiSw҇F3󮫹{p wZys`g~Uk0d-o}~2=Q{u50^Pv&Ygs8u\@Ze<OcgpX .aX*aU]'As1b`؉59ǵ :㟣3OOF̗ܽVq}k[ˋj8@x{23{2_yha%LLcx+VJђ)܇]\6Cp}WkXFτ}c{u5!+3&ms|0%ӬG!+k:EQϯ\6j0#'“M )>XogdΓ瀑Lx/%BA*n3oaĀ\3' E}Kzh"O\6YY0//:GUއSN?}3K+oMQUP9ie8O̸㺣Z-&"#\doʥ2k7|WGь^O+e⨮v-e?ȖxV߯GF+`) ӉHeKzϑ~~qj)Yrt5Gw8^gB%kk{ pI JY 8 8Do/Ԟ\8LZW{d#F`Ĉ+\y~C0.F xiͯ#j=qv{sexxb^ZQy, ^@rryC1 p*+'7]ФIS<|"H1YWcTo_n;#F0bFuks- gwhqyW>\3oG=5=L4"'ѡg!@BVJC&Ykz؁Qr|SzlZcIũht S@P5-2"$ME#, :)X([c_S"'iSp-gtǓɜ8-|kds2sNk@ 58NAAA5:g"CKdu>57gҦW:bڌ?5Ϟ={HII) -J}Ċ%OCFn)LErҮt94Tt]A+x?QRS~gpˬ8~ibk#X,_ΒAՂiӦ k׮s4mZmT_ <Dȩqٻw/6l ''nݺ5vv"HFFsNfiAq8\.dYr1^k, =4oޜ.]6(?"Ԉj]vk׮"@pP" @ D@ A=A@ @PODP-@ ԓ"4-Oi@ AX'W s8`G)@ @ z"j@ Z @ '"@ @ z"j@ Z @ '"@ @ z"j@ Z @ '"@ @ zbm 6V: իWcU 1"A.@ sZ44Mb4vVÒ@ YA#``EP-2, m,3{nnwcg'!!-Zкuk5kVl}RjA 2Q jCc:eMAAٴmۖY:cݺudggӣG:۬A0E8JAmS$)걂b3%-`Mxӂ#;7jⷝ?8&mFV8c;+dddpBmV JAC郠zxA̎RԂXcUVl۶A{^nzcctri=Vrkv O s_AÒG=;у:_/dߢ o[ź$ʌ(ו<ӹ+{Yԫi飢*:-\}rƮ^~G|&x{x ~\/RJx;qV:I~m]yeXy eeeq?P Y*Rz %+nO ꜅Ɨ¦SҋYi=kd XAz '>;=p]1* r}gbUx]rj?ghm-hЁpRV0!guqʑyK鑕=%|p5f[4מ!=ZҦY"O_l+oB6t?N=Vq1U 8)>mp=RT@)wqQ_3 2((hBI+fibr齢?.yE]fbI H%!TP`3g0@GW9:_U•䷁qdۣ!g1r<}R3Lpxj @C m*Vzi^VZNti|NOah֨o =QԲb/;v 22;2a„rM\gnj qhbdGc^njUs5wnE/WAQ{FJ X9j_yzL - 0hTOSy̎L ]m+M B0j_3XSO1߼2LZ"[W4*{y݊6@R2FZ;:CCJ8} a~3puxtDNLY5+ZIV"Sz'M c>ռ3_TQV=Z%?Z]y*1ת^=zeB"6Ȣ$d!RK FRGO~-k._g}v.W+BqˀB;قiiұxG~'{С3;`T`4OK؜634+J+k`4yf98ðE\Gw(y\. \1z|-B~y3En x,{iyYşĎe La}4fcچl틃/'L3fhZhmGwd5os+)ۚz=7+_eu{'0,= {ra"N\* .ڮ,¦ c}g9a=wa%ߢ1%~ecˆcT;9fhьi;Ns88ЬY3|m(91@90fQXqP#Jwp`sɽChh(JGGGJ%^VʟsnG+gNjJD~Mߙ!B[`@Bh4:^gB+c ^`@MN1 gO7nYV o?b ^~ӷz!3{FQN0hI+/+<9'>j+Y GyKO}fa$clXnNb^Oǯ0jNV9AH[LvʵQwekY%OOy!'-'ʖo_x1}:k##׶ʴxM l8 {2,m6a|?>K0i{?aϲqA3+viPn,})gȪATLԻf   ?rU3\U%yη_ |TJ0 ';#~Z>hQEYUBшvx ;;%_BYrU~ث{S _ o#'OgҴ*go$&h7ŀ)4 =>{=L:Huʎa9`$_,: ULOct_XW;c4c{x/+ W=Ip`(?/]o}! #sxf(:^A`@>؛8Gw>9`04co0 lIˤOVH(ڳӠ oM׾מ?*| = W5 -[Vh4ӕT*DŽU_)P`灖m'iz&Rm5DEwj~6`4B=/-=OKx6_43S7Oxt\ L #>e #7p:efgUO`ɑ(  em gl}RV 7->΃N'e=!kgD nr7,V[7'I|S}Tg!uXt, ǀ%G7} |Fc~h4ɗz-ۢ2u耪}ĩt. s,[[axop`kt8ޟk*۹ý1xIx6,;@W70-| *&gzO<=MSk{xMn)}>xi>(I6MQ݊We`tքLcToO\-5~r6:ݭ'Vx CG38k(÷0`hڍsNKazwCEhj$d(91Ԝ4৫+z%#@ox45tN~-] I#.k3Śc)%O&|/WQ ·߼˴~F/8rB 3q\πZL]Uz=u)=G3;N7c\0&/)(( ??Br2Ѫfg?M6`(G$@#oǻD$r--~͔7xI&saV{˺s3kg|4+LټWMPIˤe[K LrWRZeZU0קb[[A?EA\碮[-<460TY-ɿG V[Q1 Y֙₍s0-H|&߸sIAsL"Po6rX?ͰVu+BTJLX`ک1b($P^g4\-NJvm?Ir*L07Ŵ@f,ƒxx^Tik1PRLKLZN0`jL-NȻixNV-lp{OZvUP ^qi)zPJ^p\ǭyN,:KO3pWmYUmk6uV\F}ԧĹiR*?]Hh&ڵ;C{qR(.y>ji L"ۦֿR@l.>/|:T8aKHvR7,ty K:h2Oz ow_s غ@Dd2cX NNjl-Uudlju<]3\BVpZ[-./af-x*9PLq@ܵ>@=fςLd{ 9E!s[H\Or=7a ~-ϥnӁO/īf3]ۿ&5nPgeoFRokm[\ Vӆ}ژPtI\_M-p/9|0K}U=G~qVʞ2_tezy8ʸnN|VsQ%[\li]N%zm-+2yo;/rFԇhW,^ѣGs1zhBBBjOIiѺ)4ݿ%" s?^ϗ#,*c/^YgݣG3cFY'&[ Irz9W!]D߱ 80GڃӃC自l 8&Z6yw_,99_:Gt9tnl8Λ[Jf:ɱs0N]3 $琓esI Rʝ`p8h1_Ĝ#96非8iR MFZ璓IN>G-fZT̍=?'{'I3`A(:s;çM>Ndl:JSi|}tח Ӏ`=vFr) 馦8(=/d<;䑝ι?p<.z,Y' W$9!ߒ5hs$G0fc5>Mf$kqUa֬YₛgϮ=jjξYH錴wsfd?zuXƃɺF͛~gɛ_/35_0%;f)]*yĸw&8?՟>^eQ|]qGj ҿOIs4#YTj6a;tfҾU͎.m–0̷;}?`W^G ^OȖbZS{oY{'epy_z)EUr**xUZ[rƕeޗ7Y}WYL/;- mxXGnV.f-pP.7\ԴhשpPAnV:Ufթh֢YܹSVGLՁ_.d3=|{&=)ʼn4[.fxxz?5c ~@IK s33n/:xuQ<~ax,ZW! =1$&Uz"asr!bH– r(I_L IBG883w@I*osntCQgv?X&{ ߘB IŜl|Wbv2`m R>[}k&0c0[K߾? | _| >cCPu7n\=s LrojQ(CvqDWHVGfn!WPPўGrGVQv믿^~5#33JSvo6L 'uZWP(=KGNf:TT77m*'\YGU[,!S N.N:>n*9iі;OVC䂺ūD1T8jh4rW@AgbJcFi2X}X?-T4kQҙCլES@ Z*ZX}K-ԛ߉?oѩ#twooJ}`0vG&s+<u߸vdh982-15-j\"^~+-N.(TYZmZ#T*Ls&og\gYaw}Ch/r|x UVLt*5.e*{y=Ɩs"58zεk,1mOˆ# ]c:x͑3WyoډnKSvv( 3r8e=Yn@-BRY_ ۿj'\*TNNdpq^njfVleUM%*5.T;9QӐ^RϔQFT=6N~IV6'@O4u tuvkRqUFTBTTNX֏V9l K- S7nN-FO^@RӖמz=з[k8sSdsO 5`iתiW=GGGhѢӏvkڽ{Yo7kG4q{&I;;}gqߺ":Mg&%l} ?њrB; E=ɉYQјu' , O;:wB6p|֌,:M7b?x#%p:{Yb׮23|g)`K{~ײߡpp'6d-67pt FfE5""o7>ik'>ݧ37u5);\ 'xԛt}'KX3/ޟd6Mgx 6/|#ٌ]DNǁ9t)F#.w·4ev\Bzuݮ ~Q#ii5S'vZѾCkն&?cK 0|ӇwrF{QTߞ5x<3k{Б4fFu?UKkںټm,!oXMW<=B:g7]O'p,.cyWk<7Gٰsp!-ڡJ38"]AS,8A^|8#P,[ch csB! ^uOCq~z=F0G-]>0!`h5Bm΋{#뛢-.|sDYgFSh0ҳm+<-yF0 {s mc%j&izo#ǾP8z4vAדgj)J%--}Ѩ73JiZr#G1~pknf43ƾ3?wBQmt:P-z9銂j:m%i6t<lc#빔7unh9^o7P=yACӕ\TyĽ_&O`]T:ʤa(N{ M+\ֶⶕ񬳸Y"c5L 9TjMb]9st0vx02SY99h W@W\;'(((p[wF4ӈٺ53@[ۜ1b_dOov!|(0bΜJGNf*ʖ6'UgEsIgd aK7oRB 77/[, '''~0 ܼyhw.Hjj*~~~ˁ_=`07,YL7P`,h1Xf<Sw vB L¼< kmUPPpvvZ作j@ryف0C0vvQGÅZhBōts=4ow6T !BܥZhbߪz*T !Ba%invjQ˄aBѐHKT%0Hy!hH$D5Y<B4$۾}n !0Hy4,F:Ba3"6  oIyȼMz=h<BKE1Xc(jRyT*h?!V->̥9&8::DDѓPh}GW-f|/P@W;9W?m Ryڔ)EZ4a_O^H'qȿIb *@mt7B8'ؿ8:Ε|מq=s37C<ު7!ѰHy! ^O!]Q[ Dfp5DZ CV*'gOr=ixh0`$z̶;XR6!Ѱu@G ٕ?KO>}`Zx{ ^^< =V}w')[ aKR Ky!u>[]REg`A-ma>UKwhQb `ݎG"!$T`,"ڔ^4a|ɻ `4k2?aIi#ܧvMA[%a;R |QQ)Fc (Ui1n9(Wy_`gZb\e1PLǏ/tww>+S:~SO=StT*>((0Mkau_Hy4R KQyYQ3T*Q(T*U Fz=7oM%O-~t`~-oY,n(罡Xb%%b"hF@*[J4ibl5ZR B Au'T)EʣaB4v"6  zvz}>JJSpHY4,R , Ba{T7 ``z xZw } `c"FØ$rGh_>! 6b,FZξ̚[w ʱb"q}[}~hy:{KX@$rm=s1 <ꮠɻN l8w7or󪆫7 8O5!H(kqUˬhK6$$#!cYy޶Y!mIP]Ot#ޑ1wF7\aS/\Ek@Cw/Bt9Zuy|Kȹk _~on lU/s$$6dĒ4ˬA[W`@OOz bS0 5bwΠg>-LA+%zk X7|r0N޴M;ٺu+[/W> UpH4w[ኀhmfgfs@!rmPɭU🵙(sWUؚ*Bao{DZyAI ;U2rR]/&.zc?vl&H@Xka()쬶seR |yf)nw%\ўSѮ* څp!%;`H/:e]CG-}/aázo›u-ԡ 35UϯrT4o:WLb$kA`NSq%$5"9b?x o]z2GcOsbsH7M}yt<ɱ=0S6Ec'p9>M&9sӺ4]gqm=p4#~b,/5֎c` ǐ#edoΧrlkl EDE!G7>V9v Җ\ϱdm�$Qӭe26Zt397UAX3/қ *Cs\2T`XuN(4ގLbj\ՒjU폪992,HMk=\c !DeVlڍvQ*(~(Fciy΀;c轫V4/)<@=̇OLG5x@/5cup8Lí/|.3e@ص hmJFB…(V]YeL aS &㵦ŷ zVog/: \@rxyP ?[#;[Oi><ӃwY_6a6&lb^Z 35=i8Ǒ!&%tr>6qsb80<={% fڪ,|#'VyKp|GQ@?z}CP3g¨6\`XnV=Qrz c K9XBߩZ!hl`[mQ7]:Lyeν9kŽ=' ͭkZlJaj]Exzm1zUqׇlĭ8Rp@e^\mqQp4􅾢086wd7-@ǎnM+Ryx!o˸)thj>Wӵm4r.[o%ҘM|:tJq1=EW5%&80n'pq8;XjM 9dG?b+oχCPU܋MbX(uc)hXBHP]#| Kn̟{*\s骹T̏G-Zqzy78i&!TFG$ XۆGQ~(}K}qe՜61^`ś9Vs~:U{1w}$F/z0d]ۙB!lMz| ?74^Gg&w6ofASUc?#)9z\EXdit '12=:CYv DBwQi$E}J`8L \= \@vJAI#j 'egp--deިxu|!U8BtRP/*XOt"T֓Bx?9M"kMP, 3.rK\N!<KAբIc`` bYhZ;` 6!-hZiq,5Xf2+NGARe:h֯rc5D.gi|j#F{j[5QҥqT"i-:]QkKB!|Ou}3 R4q4@wBɜOMknTX}#KVո#x[*l͛9+@yIXy)XkhCr8^3r7:֗MDOkLo~97s6F-×Lٞ};dex3ZIypQCY2a!C;s^PPw#t`5ccjw貸h~8otPO3wgD}&17fPKF't`Qh(:'n0+0paYI2/y/z,6"x jUOYܷkΐK 1_7#Шl_U폪uvެ;z!wh|Ba9ZbrP3,{Ÿbz١hǏ_NM+M6o߾'VƉ'4hPtZPT:βgTJkh(wY*7A&T8;##Cѹg2tN1Z 4T:-j5t:]):&Pмnnn8*[V:~lqepp<|%zydܵ/7Fg*^ 烗9eg"sfd le֠|g0')tHr;gгSl` v5Op>9T'coڦНlݺ_~ɗ\šMdup8CV`^A`R~Hj쏪k!~~|sC dWr*w) Es;KшxM:].Kj ZЦgqgs aA>H4w[ኀhmfgfs@!rmPɭU🵙(sWUUnKY(NC?;^bAO&ng|XuTmb̑-F5(۾x?,hM:rd]_Ad楢mK}Ð8 x,9DtdSbjH0V2b"vKo~60ī́shPCIH!Y>Ph:08k)aIl%\-ߪ&j+_z#$T&aPYH^zV&+Иw x3v޻?a;^LnU6zxi B݉'&MƱ:8&lV>@`CQ2FqV6%H!Bv B.h\t:Ty$͸Tf?(ocaxkrRU$ѿX3z_hFj}wlGXkɹ4:b(T800i:X )ê`őcdl<7s}%̙0*߿A.X;UϯrT\gR}8&gwj80V!D!-H}(}vuM׶%lj^js@ƚCqonOҒ'W[(j/,4GOfѕC}|t@sI> [ \98AZG2wi,yz fDPogD:G;Tc~8bӵVv9nXqʃu kIB!< &qͻeS ֿԳn/b9{ᄃùtRMǣ-8?c=Ƽ4Q||*P x?h,No}%z|yke^% Ŗj3Kު\{F%:!ࡳ9›>š1䥲m&n3Fc:νDĔt=ЦD8ӡM+i/ن'Ƽ sP[>v8q"p1?\{ x}m^出ҷ :9m4b<$7=sGuZbHF#_*Ga˷3BؚADH0?Q]TQwp~@pQڼ NV:菤$FJBpmJaq:ҩ'jMz$_Fр'BGb(KNѐHTT}d8x*kq8b͛Jk 8p| ]F ).ueZk$Vx&(:bno+Oh@iS;=K)u~)SHӚDťjѤűvI00~^ՉT DFLD\e4Z-ڴ8H,3Q' )2ZMJ4W}DZBFJ"I3\>d5U՚_r8u*4.u܋ !w>S] zdB ~X1+Hjԯ`0?CՉ7bd_^9p˽׼8 MrX-ء{r{0qflo0t/!E;xu{v6dog`6-aj`͛{nؒ2|Xԃn fӳTm%ӽC>=g]lJz.efsc%=S4wB5Ǝ XysRxqǎXxjE2/y/z,>6"x jUOYܗgr,5NT]1je[W{~Uu(9*Yw,!wh|Ba9ZbrP3,{Ÿbz١hQQQ ݱ믿ҴiSk}be8qA;OUq@c,{FEZiZB{Gժrh@匳s:224KV!#OwZђ+gO&OW|&< gW窯+֊}v&OoVf\L6iךjåQɣ{Z:M7 iަwĭk+K_&i>MFB[Һlf_r鴤eܠQCTB뤤RDPR![uF^`͛DGGӽ{:ϓ^'55,~ZޠXFg1P{C%{4ct,˾b"h˫yRRY=]z}:L||ؒ!?+B _0P;;W8V4Wky ZȮZIb*֥vv~Y/vj}_ٺNsk<*g;}gX|MrR_rԴn]_PB;O}` I-?02&8kYtcO,Ba Tׁ5O"zrO&B!u@PS/FDDz󄙛[K)DʣaB4vT[>: !B;K9.B!D=Z!B+IP-B!$B!JT !Ba% B!B!BXIj!B!$AB!VZ!B+IP-B!$B!J"6  [gC!QiL1XJ%JeT!B1`c+B!GT !Ba% B!ӝ9sѣG[o]MPak_| h瞳u6hTׁ޽{['O5 RBT.==T]͛7mۮiӦ=S;::cgggM^öO:PXXh,+I QtxGi۶t]r~x'|*=93uY:'=<)l!Ū$s?Xf_D2\6e%~ǪLyə|5.C!aMR$K'P(̃L^5\BԌTmrO0g}ݱ,x\H)J~ Ω6G|p[\LMZ@8LzB4FXfD~k׷/$Qs2}ե';q>!߾/][Ւ-'eu~=ofFHZO:РZ#u䩳~Mۡ;={e[xIDN)wZ%<9UlOI t0̞,'˹iV|422Z|O>j ?4> dkѢ]˄L10н6z-u'au۶O4^r:Pr;&M]Yr5׌6jIլ8Oy?Ħ]3o"}#/0Ã'nT9U^zn\Qr+qw z},gYϨ+W_ cac䖗n9%=ids9yQ&ssY;pp鬚mCPC^F: / @͂|~ni _w 0w H%˟;:^J8^^e_2uTv腛C?Uy91~&AhFc|SwmJLj,ni:Pݖ3>qN G~_m咔Hb IWv?Ooc(?z=-/b;8-=I̢YOv<;ha䧲n\?K|Nttw,C{>ϤZ4"E? C Sjn\FvilG|4/s{ӦMgƄ,#|&:Mj w> oSj@~1+~i[x| >Kv)F녨<к$sv+L!t@ ougf `c 2>NK]}j H\KOf یh ϯqP5ZZSNN #:=Řcߣo Z-EslIZoML07rrgZ+ MG&gU Er.lMA5VRUKeA#xklڱu@u˛r8`MJ )ej8U^gVPrD.eAk6RX+=OC-Iٱ}cSEZ<>TMhb6~pFs|az8uTX`g$,<+/,KH߅yG;F;8a9shh'u[44~'ԕ΋E^|t?x}ob![g ڌS̙{^m+Z.l]:Bh'u%O)JG ^㖃qe ve߫,UEt?~Bwwz|}}O111lJGnV.:ThQ睝&e(Dv믿^>եrHOAN88ڲӒ.NU_ks2ѢIm1-NɅP(ppp࣏>bܸquO8SO=&}9Zj!Ȏc999|۷6kybtC9 2ӌeӱ/ PZmY +!)BR9*'i[EfŪ\niU;9KkR}ߓpC?L^^<|W7ЩS'vZnekѢEeeeU+=!(+?:9:jf4s(]mrEBfΪB4Z"q)nܸAygxW|2?h׮F}q N:E.]M2zZ.22D>߭V|S^Ȭm[xsF#M=ҽ!|9r O9#_ߵ31MKIW css9vãm|~ڱ}}=ϭfm¦EPm*T*'''omqqqшz–e:vɓK/ *KO!('3smܛ5#Co=]K%8xMC/)H6 TX kx칹Z˧yU;ձU[fW4IH&h]Pݮ];]^ŅӾ}Rϕ׿Ŋ+`0Ю] OUdDFFӕ'%?m :ȪgΥkO<ef`0w0W`j6/~aL( /t4?%OɗxpitdS}Rc:M5f.]?)((LJs&M-[ر#>>>:t^O.]*a^ETB G|=?<!i^\3&m1RuRaMrvp(Y0?0J&hEPmقңGd׮]ܸqÇcoo2e ?8 WWWzQa+ez.\(L}.]TtnajUcWYwKus@#g·gŀ$K!:@R`W' ;+<%ZT*}h(̑đ<ӵ9I4rUgm|v׿e(ukAe ~~~DDD`oo\<J???<<<*lL_'??EV;=!(vqW2r|/F38,d ,>,ap65HyWF#M ?~gFai"k\KGaSοY1y\&?֕pT !PP(,G+xUZ[rƕeޗ7Y}WYL/;-̙3 n?@zzzz=z{~ѿjȺNO!瓝Z6Y!7,p]-WfݹZf(I*|L3_ǁ__ѣrW@̯ :et 7T2˼7ZL30Ob+*FR]m~Ѿ}{߹r* ޶ұSGyqWf]'(qrrʯp\z<Λa?ׄwE%_P`(>>OΆ]YWŸ,ukAuEw_kuzBQ3Jz-W(>Gn[bG%_BFQ҂"u^D+iĢ[!FTK B!O"j!BQ$B!J"B!>5?uB!]QuB!]Li}B!B4nT !Ba% B!B!BXIj!B!$AB!VZ!B+IP-B!$B!JT !Ba% B!B!BXIj!B!$AB!VZ!B+l!B.--K.qUn޼iԛMҦMڷoO֭m;B4n $'--3gЮ];x ڴic,՛Wr9Μ9C= TY7rBL6m߿RڴiC6mHNN:O6fYYK@},d[gGQO<==mӓ?ٸHP]c:cOi4\LbO 9SgHb*,+XY7rBSύ:NEq*)֛ZM6:w +p%f'f&{-Z=>%5<$G|n+Kpp4u~3MbȑKۑL?\_e]] R Ih: MRK'P(̃8;gmuݍ]{ "Apk׎vn8ʢ417>\t\>>%<%3S~KI{0Kag͜yck0ok~:9SFt7ٙ`JC{ IBq9|`{FsysڵmX~4o`r: _-/^/bK- $\3ƛa߲A _Ěv%fg6^NE?yڹ1x?XaxeѴ38ś^9̘Of*VTYW9\9ʪm_˖ CJ]oʫ|JULrKu9hZcj=/gĮ]|rI+wۚYϾQKWc(3hHiq_6dϱ ppƿ+\ capppjn(Dr8uLd\oF) WJw)phǗLdܗMȈx> SK tbw8u|'o!~%u<|g귛+;B#D#z;y-o8#f;AwUρƟ6~6\9[I(rn[mϡ3DdvbwI9Bcxǥfy*4E̚raNpi sWKB솓':s#:܋ -&¢|Jhi#3]w{h/T7/IΕT (zh]}XÇYd:dji LwPr@q`_I+ nُpl9&ʫOx<6nm51-?o\m >JO&ZŅc#!Uϵy|)-+uO矢 \UZer%f' E9dqTG9e]~㺹s:}|yGjR]O\JDΉ_g!R!ϓ9JBz9 g`N3 x=8y8=\<3oy\1-M_WN^VOq<璓9w%p.ʭd"t-.w(TCKxAlw6n%J9WbYJOϊzkDsbsКdON;IN!' 'bHשcw>ҥv sS9⫘Kh`x1I/n2G& Pk??c?72w8~1jy1SE¦Ue.^~}j6yO KիbPXtSA[t!z)Cg1 !{-^ѣGs1zhBBBl%!Dj$ `:MKdr%9/ agl-qA0hpLbHHעN ;h>4dY?v7jmX /g|?X:OC_iĞ-_oLϛf~ӻphXWx'J G}ȧ.D+~|-Yf1w\ g6ȅNg9to(/bX"95tATgo<o)ILzh,~ه9ܷC𛳄}6&zs-EU(Ui1n9(Wy_`gZb\e1PLk׮YƢգ!='iS/?tdCKEWɓ6+9TZbldBS7f/|!(9SKpy۠AR㤾5#ZZNC\ NCf9hQd@9TjeD^ZPQ%3S2Ȍ#<ۡzO޾};J%?žoV6Ib0,g{qhL]s9 %pxIDATi'0O{ -ubw9p)z G)yRP> fӚ/;u oLOzv0vN>$͛G%$߻.{u8s:Px݃EP7_o)7B| ǏBԹ۷ꫯVMt9Tjq+:O>b jr2ɹW{Euƍsss[ ^2:r*e- c1^c/A]Nycvi~nuz*J}7/{&Waeepw&w̜39|: =.4ʹ0NKfک 'rʬ|aS3e zP(ذaZeV'$!l߾4eѤIHP]ZT.7qI#q#{{v@]DPT*uhurE 7.-P*5.崮\Jr*OSmtFO^JwGGGi޼]E䢺+==GGG[g"AuEgꬲVcƭ`E!;7^[嗢BEmۖӻwƏ1.89y$:ueƍ$%%ql;BXc9! q{1 \xo<[g8::憧'+O TY7rBRpwwͭoVJ;;;Q$L [BXc9! qwRT?-*%G TB!ĝM~\!B+IP-B!$B!JT !Ba% B!B!BXIj!B!$AB!VZ!B+IP-B!$B!JT !Ba% B!B!BXIj!B!$AB!VZ!B+IP-B!T@Cm6[gA!0aHP]OOOFal!B48B$?B!B!BXIj!B!$AB!VZ!B+IPݨju˗jnv!BT%ɋ;*d&"};SyixB!,HKu5 msGvyC鱗1; P9{.۶] ~8>DDl81G3)⾈df;r{kܯgm['< ?_zjn-P먻_We3c]UnZ6LZjI:]?SS:ZТe ukk /z+ ;{\45\ !$&U&Wҟ'q *,==zKڑ-`p^=Ç3?M7!NrϦf0ty[%9~kXhA'62>9pYdwD&2߇Q%6UA3n y8c>L  hVAH$r,f-]DYu ypq& VM2$j?cL F6e/>>Ze޾(%il`(&(I9EdTQC$QIUtqiD4ι\Lwwp/8-,j94Y;Ȩ֞B!D}5PM@t"9'lj2O?ɬWI?B8NLmoaH?vC0;SG!4aɸ/߳Czh(vbz2Đu:8N|_8WkV!ߑo1Yמ#2ra 1>w;#y>BH [ AM֠[^<Mƒ9co=`x'x}H`m[r6|., duu"·33#~|2 80!v$mθ4 NΣIyĦWB!5`ļi܅'#'LANKkLhD>YMΦ43-7m!{x:Czt ‡3*t8?`K>dDb 혓㓃3]'?1e@g+|2 BoZ ~dܤ)Moıo㢬'1 3 X%ev¶VǺ-ZZd-U\76-N wB)wJ LC~aG~>\99׹ukS 2Xfi%G[D汝)?;LHw@n=W֍F|{1z!'gWs҇5JlѺ\=c zIB+jFt:si gߙ6_teq,WkL*/:gOzKtޒiT=IvD--X8=bGPu!=P"AAADOcF @)Oq6{MaSshȉ|>O @ eL3Ď)<@9yDE_Rh:=GN0%7@RV_ǯ$*X_B]:#aUMGٻi)6\Ť` 1p+~jM >r%I+*s|kLf4bcb@Dؘ0l>ݙiD6`aJ,W2`PͼT(!sR6Qۺ8~K25"TSBnN= 7/ms˯vk3~V9߿7yR|M+.W9w(1kA:݉0SϋA[۵k_ls,};-f pO1\t5W*'&Lp%I17ZFu~tU*4.1*eٜw)+9, ~TҍH^aig6cTnLs:;Ysu) ߿Gyĥ4+Lľo1c4 v>,]پ7fTb*5=2_|\*_?\6V"qߨ/1LYױtƲS>BN"}ײ$aC:~~FtW- ?4DT 7c!=hM.+\32X? WmɊ!OʪG!q%+DP mDZ? TqQDAAzYEAAj0b\ܠZ  w$#L&P^bbaZ@)"&vs"0V;*)/"لOB;$@L6|;ǚu>R U_`s^_[I d&|}#|h 9+>O-p--VOA[K(Խ WGff% ,%v&v<;^ v&v4P:23+-e|{~%6$}xgV{\36Ps#V@?udfЦF[V,Τ2l,mVvFՐÏM*j=j DAAn*"DogBlO͞k\Gf \A$9=cT'`IϻO)N?FNyP@1q\>=mENxo7Y"Q*RK&1kjΊ!&&YI9IyC̬Ք m]Jdd,&G2+)vCI{YKIs^Bʲ3+YvƬdrt̊!&2تČzyc`)bbXS  톈jhnrϒWh KW`OE݄Zط DsLpz0^ }-*?7C3$:;bZM0q^83(Ls=j$/}ڲxnAtozWL3C"fywAAXx@ֽ@o iԞzRt1Z`v*g&csx'S*Hya҇(iBo@9n9㬓O VW4&=)jͯ`ǟHA  XD3RJy2荳ٳ n CCN+ m]%~RRLwjvQ&O~?bǔ| mƼerI=J* ^<5)s ZnŐ^FdAMd2ǒ|i;/^IQލoF0+cדx:օmCg 7k,ayVOeW؝䠄gIVߋvKh"onǞn"oϡWBʱ&}K_͉M!>ܢ O͵5^=Ⲽ<< ='p[!jg1QhwQYIzE՞sudfV GX:.=ԑYGzRy1J5> DS.7< C'Qd6:2c My%J#W{zwӹ6nuhpFCfԏ" 5ime8Ko_]Ez @,N?AY ¿\m {7ͬ$\I?<̰EbwlgLiV=H_!O'nu:fl(o9~Gno'f7r%[ûQ5YIGC|{zlqڱko?}A47R dS&(yd ըnEjp359B()pk&uϩ:X(s0џ.&ujC0i(37b P8w IbJIXD_V3ϫ秠,'IKhC* Pd {}Jؙ_wm9c3؛GQ-+fčdC2\=Z@ENGr}W0pWDJ5D!* V3yYVD }1Iq@j ˉِI8lX+A,Hj'VOИ JOֳp:e:3ɡzFYj('Mh_]ޥ2ػFV<M9ܷPWٿ,Z!5yjgD$ߙFվgJ#Kr6-dA0}O.ӐQA DfwC(B̈́`aH?FΫBS~`E쏦<,jOG^|+~KOuĵنkX+L'ORIz%-F[Hy7b;KcꘅT4f2a2}!*R{ /3\SNzp 2>)T'ҿX P7E)G k*, @lM +QOfGHK|ֺf$^(|#' N#Y4=fHdF,Rǡ{oA ҉7hsh0 unh1Bgn>Y _w>p&[ rP4ZFk(~H  NjA%[gőN8Q"_ۧ~)[(9kvR'UPC=Z!,H^< pfou9 Q`=8Ğr\){ ŕk|b&g^\krLn3!{{+-xcDX"ͱe47}9nmMN5$ԌBbў9̉5TU5_OkZ7#CD`k VE'-צ+ >:I}0%7}55&ڕPQ0gQ֞c~ԷhWEP1}e֗ؕ(qؐKrh&mi? :}CQ:^O=^xף[ tRѭ׶ߐSLeS "8PAI ``߫SZVqztp2')7t.B|Ϸ)?yitx߭/m74yCZbѳLNZey/*HL3j+IL0^&'7VA}u=^^^kPm?{ w@I)H;o?5R JTo&k?f5hǟ$z]1dz|C4.ri)\M @䴟w/%aЈ՘3؈gPI}<<\AUl=K(F0 ,Ro&oؿoO*#T׃W=u_ blVL29gvUɹL%p!I'2"%z(<."Q[KwW(\?d4J/xQ)>qB W6ral80cr@6qIysP7|y;zl & )؋!8#վm4QK&=(eߋ7}$FOk]IB+jFtPd2g%SyѱzD>-ϑg!PCEZC5Z2G_]CT7۬zv/x)K>ljzӳwV`*E "7T  m`4 cӘ>vӵ2h7hĨPrqޘPq}$a\L-=M<Ҷʷ}/^+kVZ:v{* Q ({TKW+Z/l?{5m&q(`T0 fMd:]{1Ձ]c)#fn(*pQ$^&]_#?cH8͓a7*8'f1x2=nc9V0u$сswLͰ٦ >{6 >b&,+kHistKƢ.9I<9׮7Ǫg8  g>vӟZsFPX 64"0%?G|}7]@vR\̱r (>LDfѫ K^doWub0vY$~2z/XX.eKDu$۹& fKCQNGMg c;Has13A+HEPHq Y S =,6є0W(4Zʯ`[$qrU86*0gHC I[l>(+ϽI!ԣxcwZs}.j}\8Kߙb[P)}>g]`r?>Z}tߦu<\)XȞܾi@Eu};erH / bv2c J~l2dͤzP'~Rpkn:>^̬S"AAv5ls,};-f pO1\t5W*'&LilBoDѠџ$-ujݐj:*' b7s,ڛIQ6]5F}|͎b[<ȸ; e4~~ҵZ}?`*yW'kR e9z}=u,7ą-ӾΝ&?OKVu=AKZH LF#477h䗗#F?B}P$J^_o^phP[V p jܶB{VRM)*4w“ &.9V;rAnkdEEAAA""A5tTT v *,Gӳh24ݲ2s7U|խ;YwMjDܷSmhBQ~W*ї16~&QlCs,JjᅶkO-p--jlCSH!܉~  mL mu&~$R Ѵ M/bb'0u.OY4 BF'2;a{Shm$"b/Y1h>%W?Mp T i(JgOsOqcLt87h#"ƒ歶#L[o տ DS.7< C'Qd6:2c My%J#W{z{.OBf_Lff(cb!h$rͅ0Z5sMok _ Cm&jRО踮]V?NXOCY6xלջi]*L$4NZ+^ mf%տ\m {7ͬ$\I?<̰EbݱXɪg8tu꘱吞jq77 E[O݉6èf23+ aP.悿.ArsW-F\5*kWQI LbgFu5:sS!NȞw|VRH/::t*h>PxQ҄SDt?]aT3=*jsCr. gH\XJnwxz9ZCpݧbtMmrҴܐFCqYl|-Zl}=kdNh ~Wֻel^6ܭ6C>h/|ZAVGffAA(L?a;(\(ˠdq6oorߑ~630q[t]*iOXk25#,Y>XGff%lОo+4 YQSGf߷txV~W*SH-O5nT x3>Cm9rR6CpD2B|ˢYM?` <ϱ`D`שELQä\܈0º3s>Ba$މ*$]v}#}&r <"xSC(XC40ƅw`g::62c!22`R-8@&'Bѿy)KG'1/< y>Y z83ck>'C'ڐ*8}87"۟ε:X7I/wt24'&VL g@]&лƓ>g=3a, XI+oLYz^߸/fz٩JH73*Z1M¢ R6=GNfcI,~VQDu#Tooog؞< ĨqᲞQ PwaVG0;C4/y0-Lx-{lrpy)MG7SߌbL];Pw_ {x!5irZ5J ) 6FgTVқPFbXT?.f͊0ٳ=ы:~a8m; Ur0B0~<c ßyѬ:~/7M$@ yea@WދewS%my#u#;E5f^(/P4۟h̃]mv6d)ʯXlF*ZMJaO)^9`OɈ8$yA٨CjؚQ֧$?@Fx౅KWE>'\%[Ǘ d-*ֲ Wj'k5c c5^J<'bEf`|l ʽ{}',`Oz#W:B߹<3t?w|]G oeeA2cv`:xᨦ xz(П>aoPOͿg<ݙgjg `L1"wdK5-ܨ܃xBhNnyi0L%tPjpם!"?hH;ڧ?44]CۗrFXuWhhU3$']o#AD,-Z5ms34~ _1LmcrZc`gps8YU- 3@u= bds؂7:F%B]Fsã(8@(WG)j W/LzMY|Se(C9OrlCZ-ކBს ~g<ÈPQ|Ml-sN࡫'xRVNDdzdv'melLDcDO!Qql6Qm`e>U`(bz5;4 h9\- %X;Қ0*:+[Y8@A1^־"fYa J03M4[>N$,n6؁qF_LVbO,h*9ƕy&9vo俱pl$(>gǯ0kuUݗFӳ?z|_-1!J@ρYY|Õ#q725 |H$.[`?YgО|P+.%OKrp]1͵UKH8JI;I{Pm=2ZtYv'2.廸`y!7u/˼M,Q (4e3Y$aFbc!z ;+ fS4,tW(.f8#Kpd\}BUo_ʇC2a9Pm<+aҾe?4B;m8a.7ZCè13ji[M0aߔlBꛚ/p!b1-ٹX< lؕAjj`o^5i[LsC[c~p% e9=o/5`WRѓbƝf0 -`O?@cLy@.0U_zz4vaBP9fT!0yyB#RVM".-GF# w@I'5?pGJ ESg/h܍cV'ouQd̄Fd2]Tu=t p&@k93ġ3d#[:WVV9|YttV?U1?mm-uXHPu~`4[R<`q0c8{%NG*XEJm]ɩ +O"5'6+ 5"D #FlsQL > C~́eJq 5/*kNh@#' .ƆOPCtyAqIyT\ՑgRRJ(XFAq BEAl= K`y-X:` W(0PZh8t+F(.BX%2FCE5~~NI㇯2=>!'W l>{݊_uGf߱k L#I;CAY5Ň0!S5[hwE,ܓ3!a Dzۙ6 EC5M?Cqq)'t`mteтT8s1?,H~BoB'CScpZ ^ysNNӞHpWh|[ o(~̶bB畀N3䤓xp g Uٺt )f 3Qw{ rވ|׏o3 ]j|F+iПH,"11ĬG;>КnG/YNgvڋN͋EP%*fP ׅJI.›ynl^lo^jT$5oh{XgpO3F:jVhb S%Z`5-6g]9NhQC]N "e&Kmm <ۋ~C1J6`t/6͋ JUW@0@}%eoh<Irofl! mR!g_#c'0kS9{v6K{- } ̿=|!V0Px\[d(ށ;pXdEE+X[QP);?_~wh yDoA\.'6?VKDwcg1O9lOK~mm5 Hl#b dc)Hi g6A e0o(,xb&i"!֏!' ŠavW*%{򑆼Ց|p8`<- Lt E&B'7ZQYI85 Sw?sDR70U ʯ`[КXm)Z6g:׆R/OOoކ`GLbuGM63&rdV*v,{1V5Ye8b/np"gQS~JҏHԣfN8Ɗb'TtƬ#84FgX1ΏYL =:/ʾ~/"iȉ&{N.O%lT?+`، ׾Dڨ/qjf's]df5|} yZw;\уOCǒ5qBFv܄Se7=ܙӢ6gh/?TUOd^OO}kHdM,I~A'9D݌f7QmZ2 }qި/Oo[pPUDRI-`[D FT=kE w `, x 6o$"5xX86YБ`q?$A-F B  CAAjStTM lwM/<@&g.*-;󜯺9wK_QM&yYntGcQVM ֏M4PQVau*?CUU֧U-h|0yyDo^HGȱ] P^$>c.QC`8ϫ>FF:f3kP%DmD2[ɔ?6MxkhhBZntFdg.i}(lCSHq<P~5u+9VwJmKB M۽"&vs"MW}ʢ^#wR1ߟg i %:XWOv;%kͦj̡o Ҩʼba!ul(}7m>=#ƙNW+3Ѽ݄X7͛E&f~i &v\#L[o տ<>vB8 ;l1e^$PcO?D۞Priʀȹ?!nR I[H:Zȟ΢>$NM~-Ll/aU>gܓ3b7xLfro~wbb [ϒu<J˽H|6n+NbSt^xkQC6VϹx+?(uWIzр^_fx^9ͯm)ثܐ&#G{/ߍ<;!`wM8zFsS ASY:ՑDx8}:ײLXsT_Gڜ)Sd:Q.ejz1[nA=KJMz((ͬ$="jO:23+#,̇\Ї@̬#px_|Z%ʋfVR!,l 8v I>Z%Q ԑF.$^h+,TOw#W5uAm4P ΌʲY~KdnV`aw|VRH/::t*h>PxQ҄SDt?]aT3=+!7;g0ca&|K9Z +LqWvKFpZ!-7QPtfh>_gE1۟o5Y/e0Z/ϸA]eySc;cbO vmDy:K޽l![݄6Z4X>}f?cy W#3^dy.eV8z[H?^B_kuhs-~Wc]}xFMtC%uԇ̬$7 qE&A6+uc̼V[{0*Jj}lBɐ 4}FcOU[MNF~#K>Ί5|Svue%f)y kX.dj3I^}A$g$ؿ'51z Z=66,dϚI]nA=K47R dS&(yd ըnEjp359B(ivpk&uϩ:X(s0џ.&ujC0i(37b P8w INƋX|H{{w3Da ok .]cIBo0TD`,K ^7L$;)٥!fC Iq@z~T`3t$9VГYGNF(m=y<JQoe=n98'!@D0$R?TA~3c%ٯ|@~z%PCf5δ{u2ԃ:k_.tt3(F?!9dyaURcdf+yM(#z1,NfEYEsa?0a?Oټh@?◛&<0z+2`;D~\O7P=cWTs`i_]OKuȃX$ϸ@hv?(LhlZg6d)ʯXlF*ZMJaO)^9`OɈ8$yA٨Cjj芶>%2ǣ0-\Ȝ/?/:L oQ1w0]C{ ?a42z͘X́W:|G=:rD3 y<2{\7?{w:AfoJ2CX.Y{A$9Ȍ=9 k ⦇>o7@;0DcƋ6gAX!Zx>e@YKCW;տ_C͞r=u 4/3u[?p YZcx4/W |uzZUOx}B qXn٫&Olj@Dh0{&ȌлY2C47*! ƥo[4C+tPjpם!"+PS}CC-@# 5})n먈Ok7obh9s]̀>o=''gŻrp'O&j'#;i+cg2%& O&l2@Npe>U`(bzzUh]:ogYi JNrՕ\-C,D/ cHcq3h%˟dvε?Q3#Igǯ08/O反i5g7(Z=-|[bB"d40Z/_×%aע}Ln3lw%a[D$'w%_p4=Dϑtg~C=ٓoGN{,n`l6Ismkh4DE|Wl?@7euq?747*0&|V?5z\Lo$6ִtg5Tl&Qz\nZ$(.f8#Kpd\}BUo_ʇC2:X m<+aҾe?4B;[m8a.7ZCè13ji[_뛖f?n-/(yFt'whυz \ zֲa,w!ҏ41vt>MUDhj+/_T s\Z /w퍔 lY 0浅\:;AǘݔM@ HMmͫÔ֘߳5\Fm8BY{{Ϡ r {(TJ3zSָfC 3}rK\+&T~hpӋ~TH\|SȠK|Q1S|ΪdXWe~KksE\[<蔫;’gH*zHfn,ygZp.5[O)0WI-$,aҮ4/NeO mep(^tBqVsvy.?GίfG  C Hq"m7lf8;iɡS觸Yk)-%w66/̶Gi4o7 6XK+LJ_ pz]1T폗,SM5jmȣض(l <q\!Xq80gAO±ϰ$f,;VY? Φ[ ʔ{9{q(Oi+ }/e7o9/ˢxb"vꐱ<O1nj}#;iTu89^*>:O{"=mʬ3M㇯P ݛɟm >|x.vl&'+S8g8֥[H'|EG$kaaԜAa NvX^Z~|Yx]HV{]4Lqh1x9R HL| 1GNzz(@O-u$Qċ{ә"g_:Ti' QQ?Պ\;7ܚټؚ߼ԨvV;mbo6Wbvl(4T| þP>E_^(<^JQ^>>F0XbyU5UԮ Rl")Զہ 'tz{o=<>F Z]ENjMfR*ꊪV Sh>ˉ벷Z4~?C$k7G~h6}0kˀZECΙϾGN`ғ_jrl2(!= [0 {.@iMCNuϿ& to r?ZPJqJ;}4&:ӿraTN=AA}c ;psscƪb J{pLۡ2S ރ:[Kk %oZ3?ljrc(f vw­B)e şqCsuWxݐGĕb|⍯69~Dwcg1O9lOK~mv'^0>M63&rdxBTUX:ck?Mq Q{qpq|<ˍ⥵ď`(&!+q1Dèo0'<cEbsT c֑NC #KGibD\g_gwEED8 9Qd"pI/⽄8ݚʟg~wI)LI7FΨ`]Ԭ-sԼo:Upf6v#*(ɪe޹X-YS?9"j43~|R=؇3փfd!~\;_1p=KQU/33&oÄ?V;u#[bp.ØqAv,̌L38i"OnC/< C 2!gQgY}?5-4*X7 W +X23th+6G{cV"3xFwJy̓zً2+>IwmBD0K9n&)}축A%u.@z s;1VrX3aS U̟X}4ڴHBFqZ O||; 47tk1j|hJ'WUӢh1p+zi,lJw }U=-Vꮻ1h݅тJOJڜ+F|PbS-٠Ӏ7:]3k_Chל( *hP{[A_+i zhnLdܐ:;YГ Tt_ߛ9S_ӹw=WpLĭTұ j?VwepJrGn j__uo+kR|~mi4~7G4nl?Dt_v*5>OEOdFc޼桺Q. j?Ak#?ƦJk#?U>Ud w"IDBKD~һ|q)h2% P0izggEA-ܡJgv! b  EDT  BQ-  ]DD   tՂ  EDT  B)l[]AAAD\]zSAAF?AAAA."ZAAjAAA""AAAA."ZAAjAAA""AAAA."ZAAjAAA""AAAA."ZAAjAAA""AA(nuAA~\䯫 tP{p! ^\INfJ==lێ Of!doeڏilJ oANu4|~+{a!jAA |yCp ׯo$onoO嗜~m~9h:X qoficv.tbAA)l*-S@=T[=¿ϛn:],@-7 畟͏fXAAn&Zdss'rtǣ\>vF:N2^R- pPS`40U/㽗7/2p{eҤIn "AAnsʷjZ.'GlZ.\ 55 .K抶w-ׁRVnVœ؂  =/qjk`y7O[hu}ּ ^ߴ:9oh&ɧ!}Kŵ۵kf.zl|ef~Y]V}[?ֶf xO[^\tiŭ`AAK}nv-u\ߧ[>_ ||i1[͏ܶfY<(í}śh Ku lwy}۷oVAAէ?]u4߿1K~&npwTDZMǎ+AAƑn޷o_1B-okqwꞴBz~pu׮]'Ϟ={( /3z޽Ӗ-ts8ܶЧVj=H2@Ŷm[Հ/iFF<-7/tmAA[5 {sqj.^ ۶Fۃ -'=En@E)ML:g*Z.c{YJܱcpAA67۶& m}h gհ<kκ~tEKn ՝Τsf5gVQÙEst;NA'o:dWu Ί֑/ΊklMmaonigAA!UQ]q>g59{ZQіv Zʷ(05wm .DT à+UAmWyJOjgmߖi- Bw@-l9+E`[ :+oHwj[Vjk`˚m.L"q slmb[C1wh+E~nn6ں^k" p3Ξ[NYk"ں^gV5CQݶιVU{h}{a biv#rb 0Gjpry   ,Sn|irGڙ8(.l;o6-[9u"l+25۶5h6hb)m AA0sfvULo[>.t"]v2Uxk"6\T[ÑZ|AApd͵l @κ+3;Jk5wK̅s3zsسT ks=ě]D  dgE3mJ8Ўֶ\w =L-XmL[V5k{j70}rZN%Q- +<\Zs&ҕym]q&[>=16kږn 38XVT"AA7`ϑi[Rw=FgD=+4,ՎD-F`>/-KmRmhՂ  N\sRmMdҖbۖEZ<(mc蜰v9Mw[uE;#1mZ"f}oQK1|cYZjAAn_l TokD#[ΊksvEPwڑxsAm^I-qmkaZE>AA'-m \GwEH[;]KwYų#WGjg?ۙi,ŴY>l jK  ?,mkggBXֶ|m]s¬ykÖ%MD[.:ZPAN}K =EG~۶ :#o끊7[mkNjKm9Utl[E` p;@Emg i;cv{Ίjk"ٞc,lYmm["̚\ ~Y]AK-ZAۉkv\ve=vmkeVnllK=+5lM<[slmpg-EO5{j/m![AAhϧ|YKm[l[l[Vo[%m]gW*Nk׮]sss,q_Jm؛\my8T[nڶ  ­=Gb{j[im޹ʺv=5O ,+.+[P[Ak|YZKikVikgj[  G]{{ bxX+k^gs1Pњpb^_(mэwYXkͿQ- DW}2 Z#++a=JWD=_jgۖqk{sOCGc,#Z.b)m-QnR-ZAG3N9^x_, ekf[O@ڄ;7 kKד-+ma_ښۖjAAnWT}[T{3ssϰ"tXlͶu~{mXw%Q`E{l[B7~XZ-&7Nw;fطTc "AAN\*vnDGbH@;]O R[ cWh6VKtw8֞ߴ3ViN paKb#ܞ,θ`Y]whOL[ i[X\[s iJ[h>70[s0AAS'mj&hiykVzjJ=[h{2ZZhoҏm:=kVhg\=f)֭}[ڂ  N8#6Z\U1 Y9ƖUZYmg/S䊊քԳ%-?,nƝY-Qmm_AvĞ5m5Ğ-l+59 qYTwreEg}1ӎ5?jK>p6/嶈jAA <Ζڑ:W}Amo[fWg|m hkێ kKsimO 9rT ph3]X;r2:-<Վ\B̷;+Y򴜏ڑ6p־m AAUbյ:=mkAmE`uºmJx ؚ2.'­-%n9k9k<~1  G1l[o%Α@^8N;θ~@سVۊ=7^YA,1Rak𢭩,]J\RwkAAj{B8[ı=lVY]NiK5XVsS9,lN:3% p'v3θX s|};s]RC-b^Ngܬ۲[P[RY9#jAA HGnƻ2sw]=UӢt%Q &ʶ5   sEڲhwV\[s\G8htuiQku6NAfsqۖ뇭0Gb޹]VQ =*--⬐^9m]pAA WDm lkf󸥂nAطwF eьbXAAS茥2Lw'uѓ E{ǃ0[ZylkǸ982NAvaX;q͉cluZnq. +8謻0SD7npg}{ⷫ^  κ9+;/m+5n\ٕA"AA!ŗ5 j˔_3SY{\[Ko9%ނ  NtVPvגκtDY5tjm%;":+ET p;`u$m";]RCj蒰窸vtk"AAtuBG"bazRPM'^]]B\ A_N Wӻjm4Q N k>qm-f!b[A;NN,A 7YTCuWlŋ  BG%ę|:k5Q~⮋w8Ђ  ]w q渮t1-രn?ӝAA~tT|9s*A XT{ŵtGAAuUJ1m!;vW|AAnGK %͹Du{\ v  n,"Mm+;uݞvBAiaةoW!m!;n  qy'is8Q}tvx[}  "4m/^ڂ  ?HQmEp  8?Dl9QUD (*"AAu   w:"AAAA."ZAAjAAA""AAAA.1VIENDB`sqlitebrowser-3.12.1/installer/000077500000000000000000000000001374246124700165125ustar00rootroot00000000000000sqlitebrowser-3.12.1/installer/macos/000077500000000000000000000000001374246124700176145ustar00rootroot00000000000000sqlitebrowser-3.12.1/installer/macos/.db4s_secure000066400000000000000000000001741374246124700220210ustar00rootroot00000000000000DEV_ID="Developer ID Application: Your name (AABBCCDDEE)" KEYCHAIN_PASSWORD="yourpassword" UPLOAD_SERVER="user@example.org" sqlitebrowser-3.12.1/installer/macos/background.png000066400000000000000000003670411374246124700224540ustar00rootroot00000000000000PNG  IHDR,֟IDATxTcAн&JKJXB_"A9>K9~=~?Gݗ2[:|-϶p^G@BC~K7?GL(\!.E8bKHųiLIS#:]Qd4!l*T Gx,փդnA5d ynG\A h}J-hežo/ax)GƤ]HJƅgJ}r#)T Qj,9Q1^qVL %yOdkF-Ŋغ!3ɓ$^)œw!`l(F.d)GT P2Ő2nyV>Ū n*ȖQToh 3|JIO+1`FARQ-QpH#kcXHbSJgfjV̇VNƇevOLO |3+ g# Uڇ*rl c |6 j9+sH2m&yHqF<N-ܒ9 ~U"3PS@(7fs9Ph L8ۯ@U^ٲuR䷿hzy-Q$>2^;0@/ N<{b= }h-o)lb1;jvTV`#*ܒd^JUvقE~U{)cԄ\QcsTNcMƓ©ж@J#styFљE).{#tM#/3Ǫs0f/[-ppɏW +%Czb֍UuԚɃ{Q! ЉHݺI<|^5T95#cV;>>RO&3IssјeFĊGrf\K(9w P XZ"aI*{yk:@syN|gld?ɸ ˝BY5(OnjuE k/q'X:Fs9=%1<_ߔs++=r("lbS&</=00&4~K(D^^Aj_;]g.]5o7ڨt? P;rBog+-5Gpl[K\ep^P=UU4JŞ9:Q%f=8;-7oQИ%D%`#`f(?iVO)1`%h1.YzlGl#eL@ =h`,O,YӂMuVF¹M^:5-`aUiܚԊ;ao\Cl<5(9Z~lqPbmL IǥdM5cd2 $hBdvHrs6>@+Ն4})z csMun!]@%:UVEIB*!TqU6Iq9i $'戗lA >:vD&+Ixk C6VE<}"|xeSSޭZyY"8ޕt9s׼Pi'C [RKI=F9oOR Ph_E| e[@'S0,yhW ]0wa2廋K!~El,<J8e& ~:j#Bo ثJ(S!A(@)T?(W_lx?ehJs[fMw}!.¶đr!_̠4Y]wȹv3:$0N){[W .#N P)˧'zob7[fɕ.kͿxėqw*M׊qirCo^YoNmjԈڹ#>d׀K:>mxs;"PHJI_8FI/fl`#|7ߜp?V`RP\U2<=у9 oۣ+CfwmU<~ZʆRHPj]hM"fo!{O,l+_+FZ>" ~(~D=*34uIi\VZ`#}kLZ&y\?lRM/Z:U0Զ4%'cS,C*޷sp>ѓ8Py%` 3-aMI3Sڨzj8ʌ] VEb-s ,E]4ٌ!83ElxI=Hv Ge}l/鴑E(R&hTm.\ᾔ?f]%j(yR]ZSPfޒIXC+N-M-khZU wTm]甆ZBdZ%v8A@q35 Z& Hi,9hէ1"kǙABn+nm9FKøA z/785Kx|7}^^~?VXN`?W,pM}S<(d`RᆘZg m ^Ĝ*uII&3 -"EI: Kd ="Wv zaE{5}dlSp95 _ (s0e.` 1="&>;5',6tO.ަv˅ҒٱL!;`m'֧m.l*E*WZfT4HfْX^/dZ1grUAgDMX)OE !>ʭ*ض&H*Ct91Ѓ- [tAFאiO.iw^d`+sQɰK$ |؆Qe’lD&L@Z uz<ѫcA'_ղ*~ʻ!ܬΒ|h2ΐKDr  ~OnS뀜&LQ*]Y_h((uqGpAPs^5C]_T黎lިe't XÊg8,`)M0ڷ=uRPOs ubu\uktFd n e%h#o5: 3PԼI˳?^_Nkuyd1BVs6TI4}xE}' Ԗ|Mg}xieS@[{VB}QuVr숊#1#9ݷkJAqILwY!BYraT=:"Ŋ42ڵD"m lT3]Df릯0!5[r\{p54\sZMf$lе2c<8ѣ* mZEP|$`sn?og<ÒU",̥+RX4(ۂ cNWwOC]G HPҒfp4R= qJ .ygzAq_a13,oY}_I<ÙEP4@<&[Ū)S2:g/fw& #ڐ5u^G_655na}SsWq6tSȩV=tjk^&n]v|qh_%i~9n'ʹ0,="]${+qR* ֕~H:ؙKe.ͭV"=3ZqhCgJ߻[2-Bm$`UbWJNYgn0FF@2UIGJS8znW5ܲs^)9J";ݳȔ&7*ك, 2Hsmxčz E!_f~i2Z.DPU:Quy7jdh ld^vZaH0懃#0nGj_Ә {p.m6bY [/X]۞UY"ï3o8J&m~V >IԠ8JUZ' 4M UUN>\νtV:Xdau-"cX_3<+Ey2s=wi.L`]Oep~9bR*#?U_i";agcDTȺ9(P͠t. ht F y5l_MyLKH:{(u_: ew;I*K 52|jѲn hm ބ@KA8{]wAʸLJڦE;pAPC";ݧ>RKY2_ْeL`_V,B]CLa T`kMn<,թJd3M98e*`€ؘY`^ݝ JIn9NUOY˂mkpG.n%5Usw̤SI褒RȒ5;cp>%qћ??hAD9; 8$Z<Xfffffڃ;L,I`̌3^ZGGnWU""oܸѵ{uϭ}dm9[_>zM#_;q͡0nz_{쯜;1=2ưc3nAFLqg?BEGәb-E1H${Jn6gUD(SAI@@6ZG`됐4B ۣ_B- pYɠ'h _tܙ6ˌ{+݂5EXs |{ʄsq&H6lٙ[ %e 8p!u$MUIV֥}8y $24dp1kw}o=jg~yϱs>yʼ/.is}/YעUNw53̚d{@X|1LsN$CZsçfd487y#H880*4A?x2:KĆ& ~MH'0I2nL͑Qn,|Klb 1yrIHiu DB: >pp68c[B5A󡼂{SL1̧7S,-/^JVTo^î슰cϒA܋3~ lA8NnOMm//3ҭ={^Gpۮ,z_7C0?ṛ8~|㞊ܟX+p=y˟ZD.Fiq]<0/ǰt 6Wܒ:4WJ㤜r )DA0FZL ޔ<a6a;DF1+jANҴ"zj(E𼭱w$i#eR-/RGS>CBX3-x";:A]ֆJa£rq߿Y5$r\PEfJӫހAh[O"_1 GE,E*t"k(̐-Bu썯^n0$OGVj'^fWT"`ē S}g ~3P[f$&#@uڦyATĤ %W)0`֣O\,bo7::$C#JSIzPʈOS\̸;`tvðmgmLRB->q{'o uνyބ,h] ! K ;0ՙojJ'Z 53vB9LXES&H; ItcsZ7 gf+8<\:LM{~frDSϱ߻d^&K,Gܶ/[* \"mǟxxl3cWK"O}e].0(WE OKi^-aj,;AӦ{$e_J˱14`1賡Apy-,t,'|o 1|f)P].6@ξl[рVbD@FVgΕv\X Vz=P^6!:N2ΘQW>\+!KP8?n,wOAF,w+w`?}Ԛ[*}^K6))7u]KmNIp}5ܽU6'߷]en֧w ֨$׻~R4OcOͯ!&Oo"E$EVM$( ;e¦z 5U3VNd.*qjߣ>)x 1aNh@pSz9&Xa,f#HS/0R.D'7lF)a1Ou?]5{Pb%:u4AjqC<=nр#rrSrN<#Is/yb5i ֝{c{C+:cjeI|W֎'Q~|fԽls!=HȷA?^4-#]"fg&k!ue)'6sWeNFޝ0-QXaa]҃Z#seh|VΙs{ |1WC35|fьM! 0* Dm+3Dywc1Gp1G3jU~iڸb(ImڂQ]AOo!, Tf6j>G \Erɘfo˴:XBCnp5V_2[{qWw\o&X&^upf!Rg 8YP=û:uCAvȴJ!wHw6:yCQ(XF6\:\mc]laSI)e(eW/%'x?uasQ"yt\#YP#qnOɔDgۑ EQa $HmJ^[c !cǣlCrLY,JxM0/Q2cl1\4xdhCx-ߋFWN9im7_Tx$HBn 1Vp+*MѓYeZ#%:m.xNL!f-"}c:"oj(i "3n"I:iqEmpO{N|h&y=j,,_]=tFc{d+ &"Ӈhݮ~Ut ]yf &nO鰛F; ^|>}A\-^U?mr쉬ҷ/ZRVo>ʾ~zŲ^ѻSF2S:kYs)/7:/ӄ?w[^Z8fوWo3Yk5Cn,o;jyſޱLyu"#zdeZZ\HqJbOY%qȈď0-dbYۃeOATSZ;+<m)70̗Ey]'b'ev-a!SxLt7,5ԄpwV'̗<2TȊam1s]Y@ŮΆ:sgN{mN{B^lJBC[KSqk;c8sOXZccS9^b WU|'}Rz[uI'4Znٰ}_\a,;x9y_>ga:(efNwFQ{o>r| U3r)xx-_߼`6\_ @Y#NwW zek:|qh[oou kW_Z>n\h|S3`⮄io["2kjT0Pk)M MCM㚭R'A]0viQ~""nDgM?#鎖 U36y>IG˞(֡3E^-au"g_> !Ǽ*Kʭox~-;w ?c%v370~zc+^sᣫ1N[>) ^+NZI(|]ܿCQ.|lѷ} '#R0 *| ~vq=?rY2jHEҵ E7zz9f2_̓: F8wzZ@lFDkf jivZp=x~~2&^J;qWOwY'W,þۅ?^-G q[W~t" Q֕OZLސ,RZ ^ec/H(yh ҝCIa7 ?㌖ pl!#Q\a:s VlzO_ p*)n(c0g%~5tœ@"ѫ /+͢g101eodhk^]sHd`8/I Zq sl!3n;d= hIMټ>}Fh|dQvlr(U!M틌|c^ sqo|C8B? R ؊+[I\an+}C+7ʏU|ZPl6nKBǁر4Ղ`^˖ 2}I47MRiqpig Vi43 q!y}rmT=}~>q9jk'^ vqil"fPJu#e Equ2y 1֣.<?Óz_:km*XY\`mG~EA.6&|ʝj-̺j,_7yAyx4v+V,|[E[o_eo &,pU@AaȒAO0Im7o=$_Zj1Yb^f@CT9F% Kd?8", 2 'y)IOfl-V1u[dY c*648ץzG!KhQ%gE!eR:_\=rPD{2кKrz5x}6k;8:[v9VY|aewotZ.H`[mZypT/4~?1GI/w?lkGup٦N/ ]Z(>=0o6iZ0|e܋H@QZw*آTeX9U4GL1Ʉ lU "{21^welo7z$еG?8/hQEnfzZ_܏l:"ƱG;m,@S+2t5ޅ=]*5[ƾml%-gעɇ:_f3S&,-&x_(ϼ8NZF]Ic&;51n )n'ζdd4=8É{rG|{"3ʄV ,SSbr]RhH(S[G,,3HGX Ñ@0OJU$_6ja )֨2ӥְl&;JV)lt-GD-F Mɚ \3U*@rvl0໒ ٩Pz$$w̿D:eJ,J)͖ O@W}H,\3eU9/)UB)+sصMYl˾1=WX*;kAF*$RXqfnIۄVK+Y ݨ1nٹYeOo~:g@>q"w,o%yDZsB*Jt*|ҽvOx>m "o)\ޏ:SQTq=9=yG7K$-lGHXm,tmc-71:, O fޛrxtE)༇׉&ͥG=փ)#jT}&%d[u2:^4ea1&v}2@+g(eGY"(b< 4K){$X.," I)OշԆ̉Vwak CDYqFz+cUv䩀R;_!k슥GI^}U3gRsƁ.$*z_:gщwsi>CW5 ^~؍#If jt.򝋗2fSp]]mo 6^6 .{ۺD-"K #SqPH!!t'CBKz9Dׁ(%;Oa&?ȑf"t$- {lT$=D/}KN)O &QBCT`q3ym2eAoy Gw27UC{غfbMp\m,aTnzqmN jx)1Wº79yxۃTAC]>GB Xqo"[No}fgqYVep/-^5m!_}/mi-_ C4mZhY D7\@SgZV7B_[NJ-\XDe|2.&Spi&P4hA-"$ &?22œ ´㬫`$#6#Ў^YesAawhb*\=4FvGD ;ψR0.#\묇VZL)'ϞQ:؋c(ISLaurҒ`65c9Oc7])r!TطS0&+jVۑUjvvۘsrn|ռuHza$rp9G߾i3`7sM߾pqI}HoVyoˌwt5Q -Ծ( !3hr^0͜.@~IdqAzG@l;R>!v/(f$xӌ>`Cܪ Yzǐs6HTk( 8O" 98eucnt]>4[->c~€}wsH$E*9N|߄[(pj֗/X$ c +w{ܜ:G̮6ߕ1 F_sL|jo GOƞ.S`ˑVnu;`퓘"p<$ }z`KTuVʻ8w^.:8fQUnD)ϟۗW5 }s7w䌛Ga Sl?{@TqnV3e {I=T9~$bsH /+KDi8EpkpX-'UhԏF'TFS*$ܓXN$ ]!5WDn, t;qˡOiH m)e-_3Y j-ېXi$]27 K<ϽʡʃSb1s}dr+gc1<`[ s/{Ui( C+zp#hl'_?kvA cO %NR!Tc>y64 SRec٫9WyO>:dķt*exْv:W>{\NX.mdCJZE;7ޥRoW:"g78xůn& E *Y )CS`Cf.TƊZ=$" Hk4/X\0 љt @'u4+JK`s7_̺QjS12+Nv/ĩ1oӪ5':;v̭e~v2ols&vE%kOE9{xw}%gC j[TTKPqܻ'FXƿo?F]L紿a7[\%?{go[P.:{=K6p>I?=u4Vtjft:cZ蝆&&D vt Hک!B #ȉn/uaY/s-A+#X:v+9߂5@;d,D p7-QĎۦra% ܤ(`Sjg2`sc oW >pˢjιF}nG s_@I\T:oKUݲġE wwwkѧEs2g'#X$%8!멟e.}4MoiPptv`Tf`ǩn@g*ror勰&yp}A\MwV=]w@[ݐJߟ>ZΧXNH)l `ow#yN9Pc╇gyR+sV@18ݷk-]cH\l'c+&DR+y/;X/(2ŶLJ7+{sV(NPAq(/|`! B/==20Miߧ'3g8N)3&;S1`П`isG>o}Y..e\g)Qԭ=|ˁc?zIV @wUJ B[`#= ]%bIYyP)AAO{ &LsH r_ZT8%ŖgûHѤȴ¥dˑOP╍sT^,fTm ֦JZ̩w3u(Zr|]2NYvGwTs)gSXL_/FVS`W.;ڴT{S9P'tjRx-@iL gBft֑ 9?g9fcD?Or%s$ׂQ'R^Mr>Ѿ˟X.3ln>`ʲs{J !VhѬ veb#<>988< JqʇAIAIsS :OeSʌ+JEPK`4ˑlZ 69(.X,Abc{*5K' *QX L_[ê VtѢP\dVJ`w]v wq v2ıRj3C&rTrZ.%T<잊4310( ;Ox ?B T@g@@|(3\wNx;~CrS"C|gH|{BحQ ݃W#v[Zyթˤύ4bAEiDW#^k «o2`NYF8),j*<8\n39칍xTJ&\jʯS% \4,SSFs脧¯S| 5v*-rڨ{#"ub#@n!]I @`Д>OL>>*O*.C·:3lF0@H8Z\--4>fH^0/xvC<%:C.q4Wy| z(@R]Z./0,x9xqHY .,ح"- R⯩" J* !і(sv~ed.3\MLen(Enfؒ84XݱwdzXٲb MOJuLQI]RM٫{EzDmVnTkj1] ֙3z<* jn>mLj*$|t:W][T{*< gfwBu-inmYQEQcG룸6TJCNu ɩ/bV"\7Mo:Ӧ9}AF ]mb9#6A½ TբM\}S}'jL]`Cd Q5lJp P\\(gO@vQ8/=\GgR ?{hk8ܫ_2E#}(?3(26.;@.#\\QM),@~ToWC%{"!}-]+BF<\߸a%}Y8H5Yl_-5q]· rV 2Ugoy,c C? 6D+ڰ k{Ј8L^wQ'tFKlXT~D ztJd&bH?BHTuegυXgWIzz(j/hzv >H- Z]N9U]1"@-%x*?W?9sɧAW9ia*m'4L/SZxM]_F |e)@38ЇR½x:QV4FnvޛRU'{4oS7eڬDrv-窆^hR>vX}W#Le֊R )D.V=S_uٱ#u/R2GM\hf4tPw<v,:% /~#P+[: vh 5`iD=O ɨ觅Bc+u8vTۗtzLT(p8/ȟQ~ʟNM">GmoSMzE{Ojl%"3&YmQ7Q4w?w'opd9"7oLr|{G6\TIi7y荵{x/CU[kRE2sS;[bkm\iv2O;8/O;K3Vć=-W?i^܅j;wr{Yz"#rSNd=v dԼޜ:1/l9^DhEj#6D:Ƚ_k2 ]ڽy1ř"zu)sYvn#c"|/.u)4.p_%SeWJ kc FnYz<YH>kn}˗NZ*R=.ݟGSGuKqjU+:tLutn& O00,1!>iB(q@ZjnH hNO^0EU_~H%W2sm~3T*:;O<7tp&|MLZtiyC tG>TM5͸01e^^v>$,}oUC4< m}:sG ($",ŗŴ .78z۳urS,yIlg wnࡡpmAJs/~Jdm˔yOushwz~Gi!.yWl7M:" p{+h6Qc5.% /@Mx!׉wՀiQ}\v]xs>H:vThy5nDӛ}< >3!gSz'ˀ06"+ZG*0dV U9 I4E"=&hwy"e3pT.438'℻3C@sT%@|36U~hw=AG4َ9'Y>oRK ,p [yF}i DfjM@jB>`n$:l qsJR/~aa*鋊+n{_j[4:ʤyr '*7 |[U?,ӊtQ+Eج,tX]Dkj%yb+aC7w8}{aKW(&29)z7j`J#tA&zHLDxMAi]rڀΞR WQN!"$ X~ 4Tl`*tYaorA6vZ+^cY1O ]kr |SAZt^9/!XE/"A9nOBT>0HnK2O>-2ӡd?Eż9-pz+7S)-3-s뷫h(G龝ssMv`KKwIԭIѳA6+|c5c.toϦJ+RM;C{_{&CU=:DqˋKzzXRm]@c ZSV bDcRoؒ0:v5arM"wk ~&_O9*IvK|)&BԂhPP?}f9فC#ZЍ2 %8`#]Jr 9p#C>,SO.=^jZIQ!,EFOJnͼE?-[{K /eqgf>J-wnXۘSW08fdsK$zq:?O޴;q9T^zm7N|ODUn) tAp0`.\]~QX)_RL0fڹQjT秝g-LPݾ mnZ^ {ϓP縗CW̖bVe4wG09rua]~?w%W;r#^Cxr%#[K ؊%#q;Z.78ҳ/K ]MpcI?y iM qB/E+vu4*9e x 0 @O3`ګ3s4,ӟ;zé(rِ:Gv<_9؇ont;ĿUt8)B7OΔ&rB\A,2;!9^^`CZ;G4byNeYR#nj35z{oq"5j\ ,?hF DxU[\ʉ?H+iU%.\8~iз%_W}mEXψlH]I:]%vѤLdU?~w950-Z9{PGRӢެjRo`hEF:)ST~2*M;*3>ןEsET 4]#I ԌZLݟoڿ?73J=>a ".uo)[Y-=ʨ |~u3K Χj/|OS.?7ߗʈYrַ>HVFb,Z[n{,槝Xrn擧9,M/T9tc=5O)/b@O0H j,EvtiQy=ie@j`NσLGU?:}>{FunJ;3|Ou4wqS! 9A4Qa\NCN8[[7{6h^b}l'l;$/1p c)Z pŝ}dfҿug~jz(=AkHR"l̘6fz[bbQʲqGY=L8N{闹wCc 둣_R{dR$ cqݿ+4_7ˑ\.M%F^phdQ8e{R3$r d2%-ةx:d9+ngaf뿈I; n;k[k_zP_3 {9Š0\X Nx]\mNEG:i\x1KYP-ذ\!I0؅mH4:bxBs@f|znn ^´t"6jL|6),8H9vj)`|\LF i"1K#kT0d4ʲP=rC/iuo_ SHh?xa,وhG5GbZvrB5A_$i:FS vvjR= mf*c(9r.c|AtA:OaJ ;~F|z^.DwF7JAҕUuOuNJ@˳'r` Q5-0TgtX/[2s-O=^x)^mEn+1z`]eLw. y>&cVCrS>X@ky ȧ79Et?tP\4Ӧs&)uk0~42}*a |F͚M놀ϴ>cGsU$5>LOa!ovH=o0CSVA@ {ev6n}&hO=tV/>Jug`[tu-@U%ga !Fy_^a_SJW1Lh!ꂤYrI Dl4-N-薵j) .h H,zE;,߷7gT.Nvm,z#R+]S&h/Umie?E^&-H9k o~jܮ}0'yz^&w /5hitL5Mr`]`04,&3驒ZG2'S= @Gp ޤ쁯ԔAn2 X8s nTP(2L$F'f]4).H`(A&=< MyZ%MӭXje-ӤJW=XdHJB!j5yD%$IJ6ԣZC`E:s!IF"Q9,^ Py+cr!|׭5(|9< mTg=2^;X1ivo;}EFх=q6׫:V=E\nSմ2Hp7pAty5,{-.'ê˅D~\HGtz5K!r\x!%L?UPmK7ے:[N]Wuwi\9/]!K-L_v$8H(mfFFN-j4@*p>U%"Д:ؑePw.oW/Z75cz[ui7m%Y]+C$E >whg}ghVˊ}ņA>fLf 4Q}f)v,HQE SL3Wʫ_E0/vadCR᱑X43%cr*~233(g`  )YKvim 4աH?6>|xyy81{ީud @\o@Ś(Gtz,?dU]Ұ`<#Yd= rDr8n5RhpGõ(~yT]Vz (σ̉; q+UۤQ ~C#uVX< (K-)dXAS O4jt0[Whmw("EiK"[LLii$a(.<>|@(Y'w&+5[*u?P٪f^͌jJ?Dh5"!H\-jz&l*4R#pTHɼ?$|xo~Y+q8>7*ͭ!1D3בC5)o8!Oל0$Vj~?&R HJ; ʱ^$ruhFX)9h5` 21lp9Ӳ$x! ќX3IS&u%sC~O)50韌cìZݬqP*eưw*Y{;sMBl; $G˨Ѳ]'uBS/ ~@q;uhSCTWХ=al -=5DQo%3>aT^˭o[=IE+ܸoY\ّggKǼHhXuS:k^O~S/zjU~#>\Ĩ jHƠ7gGfZui Xi?a;$KVj7UsZDZۆ [\k$M]S0MBwtҖ5.}jj(mT, d^g'|\Eɿwņ`01l1m#] O|uږ\="G- %ny̕K$!y1߾?[e? (L1v~3\_VD%=p/ vJ`Fl5c!$S\xLy [$DgIH2p L?qIw)*fHOwaZ>CϺT &,}{gA@R7.{fH,AыUG97DaNgic*'24c1[ 9D$J{ or&H5mŻEJ5dY05A˅݂΃&RY(>=3g#d~[ WJeHˀtj?Gb 9>3h k.wwܮ'A߾.lln$لk7̿j~s3#$v4M~NwzJ{%FG$񅿛cu;Sw8n0w{ {us3=O,?_ 4idZV'Gȹڽ};ƪ$lܯ;]WwO}^[nyNrRAy&C}Ȯ&D<\Nx:[3$*4Kⶓh/@gN]'T+w`NOK2\Sxx ["&!FwSn~xQgtC:.s*-NK{o3QAqu>xY$ց?ʁAxWCIqnσHЩZh;gܼ%b 6Ȇk ; xmM]mNt|Շ0F(%+uݭk0 D>Ƌ,cWkK VUMk*PWK'<~4^7U4%K w)L l.>by=]RvԪ[lu${jvl *mHs) QG/5'/ЌrѺcp2F)cn_7AH\n9Yyu򣵣rO]! QB%˺(rЭ)'7> ևm^=q'$|TkJ%\_<{^3 lxAy_勛mL'50ZVӽbNk4 2-0nǭ~ƴ-P{dq.hA _>m 5T/]١2"vtDi.p741s8V:w9He{X=DR٤Gv)ŽF=Us/[3w7ki~(xj:$E~ tꑟSWf1 u#&S5$ Mdo1mQ7Ѣ6~էߴ5BnU$aUB9]$;GvcO|HxG=8o)d(&;'@SqC@L4\ i_p_H@=p#l_}<P!33gc@und5ҟ:}j?fi iIahU)S(|B7 ֧#=0fzm'$r$5 >lb;ps%?"X8qH=J7P4iWYKaȼ2YҩBSE[mQϬ8Z= #=DϪUhB'E*S& 9lWUL{[~ NT2+ ]W~2_9|DBc9_d]ȇQVwOߺlØO}Nű9m9kX~{jI Ak3>ǤnI~bERc T^uLֿ3~< TѰ;`Z-6qev6/~״Eь$xz Avpg@:^~Gc"{G W2xېEU,WmOQ;?hz4 0'``8^=cJ1_J `<ƥOI XB-;_η& zwP FR#h?&鲂tO^S>TMi㿆;p&R#Pk6~*^)rΆ;4,|S3IqSxA/\vS6O; T z5%<شkʱeؤ1uF MzҙG:ww,ߋ_&1h`Zs{(y^`+/YТF CJ4\(_ߵ XgtB2ZQD0w% l'2,5&% ŷK86O2j62<)1Kt P/k9Kc2c* 1xTCzF٫8@G 4=>3%P_}(&tFBEtI);wpff1zZO0d^+X3}5QS$*^Y:j"ϋ.B^RQF^0J1WOk-d-ȱo^!랚L޺Ոw%&W_MYbfƔb8gƎZ\飄 ;?|acRU=pg્P0C &h䥽iWJ,]oC0gjeCaB~+@sO6QWD0IWK*6&0I 1h?ݽd@|iJp(3ԶE!v ue| . q`&΢.kjsrt:xk*W z ^2#иa;^譳dQKNtW:+r#IQ@dֻ^=Q*Xswۜ*nj2~0z{-0|-fjօTdC U0qhidsFΆoqfJ4_8[pm0xD-e>%ަp36 B)~HevR::@ژ0 Jxuk-E}4fA'tPo;y?^8rU:ao6WD.4:β(_>GI "9*Q3P}qUKJVN.P-܋ɬc5_2K 5y͆pÓ_| V\y) 5PsNCP3v{Kjq1pHnhJmJ8=N7꼻Uꇿ34Z+. {_"u$qѰ㗱w_w4#E¡v#!#ߔ~ʨ3ĂBv.*!Qf p8_MgcR?zLwJ:A2$FsO?e:c\B 934aF"%Fh/|iC DJq*y%mShEOe4m(A)y-$"<;?cd27:{'ŧ3-`M 2]\@0]3Ēf5F51ErgLʹRT̈5S-xmt~\ˣT:DA vN]u+a[gY1 q[O_j|Z '-o7jWT.C"7Zr`{): ?5 wal4ڱyyչQ,>%iKgq]wBrҖ߯>qkC/nR{գo:eF X I0~0-Qf EmYrvڏ<4UMbE@|F0=V1ܘͰ"G9zI(!TOSӴ3,*󁹐C u㬬Ȯa@<*cqʀxjE\N 5㩊4)+Kv#Ց#߂cxhO1 K\RFN5VtV/}W)au?Fe{*V !\Ќl;ME)aU E*5JYꏇ)kѕuxÎ5d+9}調ۖz VD l_>х&FB'iXJŘFijE?ٮd+SgOD.vӠ9'/pnK*7pTC 60؛G]Q.|J|ѧ}>V7cއa?y %%O>z#;pic6M.ێkfez)?5qsp14OY2SY39Dr5ɵc(q"_J3ROK)}A|09mVB7oTyU*bMh, 8=12 { t$_񔷦>pdc[I}8# n5pabj|`Y 5kQr}e.EJ &SlNR 0ƈ<~V0'BT#/3e𓔢L{X%#u |ITW5Nw2ilz$d__rڎ^P)Bpo+G\BeM,ojԧ:~YpvQit4zkS>)Ͽ!}gHH@9H3 SP+H.Vx[G_<꥙j΄_tgpap6 hH4~v([@mh ^Zp5m=ЕƷip5Q@Y^BŊ3H ǰL>J1e+qе$p76A$R hV^K-OP= }X*shi  DyIЅ!+b+м5ZxamHQ"K?٫V,Vno'PX)P4QR:O#O~KۤJ6e^ݗ"FLխ X?;o4sX=bv.QoXxQFi/#6bwL' (I˻cl{Ls/V?j]d^Մk!%"y2zxm 쳄l=OElWT "ǀ'6?kIhD =@C{(b@pzPxّ˃M\ RsQNڠyJ{hN5e m~fsȮ",i}uEV%pSH{%cZ*&ȮCZX8@aS9j ~ n~HU8a:Y}P00\ у1I6M>ze6 `SИ&h nMm:') }j1J5>Zդ5 ~*W+^+@Y쇗[B,pRGHEׅ%u}aLCy ɟ_]2D;歿{۹?ʚ+$2 h~d{HyH'{2ҏ=/Ff4Ԁ~J ͑eڥϺul?ևc 3Vq/1t֊zڊc?wn[tͦTwuH·tMi2S\JIBbP/rxULɄ`OgIiѴh>t[0KsEWq-bGXͅ.r9CA@0Psgs Մo_g_|:{Wzc~ v]C0cl"pY|EWgrSl5CMd[^a8(xFim54pk s64LATLI o~t+kͭC_!+(քnz+/ H|c/uS`ؼEFj8AF&^;t͋4S5J6gT7es?4wElch?kltJv(@LN;o >3t !\$_-8ʒ,_>q\B \<1]C?u~ɋ>pТ4,ph m`.Euq>}ͬߏ?賗1^$)^{#C@da 4u:[kZܿN쑒%;Yfgb#z`*B @wBV5|?L|.`+J4AY{-g*,VX'|r7$TBHu%b8cnZQ4Ľ/ɦ:t%[/3Ƃw {ϔrDa,uBĿKMaw6u-F3GvˎJ ֩]r<0Q]AfZ-(!8?U\+fK KB:Ngv3NLMj|bv HѠΚ)7*  *Bia9ulׄ1 )> '5lzV#bǼ {az)Vc"``t%Wo~1EٙV4.0N}!|`{|RU'71PoaL/0||W'1%!_{I @Re|0A$,PF|0T)buق =tox6K"&.@@a~EքΉv|xlBX.8S@mpa'p7,usf>`Dns89E|DٍmUǻ+ɪ^8 [`‹ܭȂk=d/;_{xۚ蕣ŀr)xJ$x\=*3MA8r;곳 q]~Q\m+,`XNzdB oL홖+{6>S/$Y-TF_z`sj >׵1|ՠO} zf֓;P8Χfcmg'h:ulFc;O&x^8z@LBK)u&":v37?9 >| Dܢ0CCrn4O1e`}yY Y{'&.d~c@.|ZsH- 6&eKCʍy], EٺYzgv,29$˷7[C\+wKc*y"dtAQH,Wntj**p C],D>_1GV ̷x> ]"G j oTt!Q|aG- &18fBA8, 4;v P l#g #bWʼn]At 7nyykv"q|-t?ɲ~"ul~Pǰ](L s?1(JG.K$[ sI؟|Wdܷ|k,&zg*η03U>FE  S.jcR%ϾGe`YYnc-9O[d_Yg{'q,ϰp ]*Wsfoz0;^'KP>tM^IuIB=-&;Yx4:KԌ8,~ ,iۊ$D1D@38YƦgu.4}_f[njeB{2 M}$]i;,r^({(imC)p&35Ϫ{ v ,ͫBBx|wz\Z?\ ÎZxSq0$E'fJ`Th h,CiKbDؠR4IjHbXw }AP/ w&)I:o2}Obw 4z9VM, d9΢)9Ilgu ./E'P߸'^ B-lQ:eVLtkc_+NIxLf2@H;{g*K(jdT)pY|ܲ25BwӹdJ߅uV.i6uֱa?-`+)틔Ӈ<}4+Sb]X$207>uؤRO6(s'@)lL5|_2 I[h̅ ~-] +nNQ"DㅎMH.L9DClenA <߼9 wi.VE"̰򞬰7P4c@M OѤZ3~CIF6vCs.%ˏ6e| `()tFdB"U٧.śnR"@mm|8`s2]H @zw!} xĿ( [ nCe6gdvcfMXU!1qY1 R4#v|Bt>4j:YkAm^dsB9f0YqYÛ3;P@ʣYܬ捥.$7~L\@a{e^“br]iVD|=k⮓Q >jዐ`d~U3!0pLJ/%rGBrUCӔ@҉]+(o` Lﱂj///6lbe[fx]Vl mY.}C#WG?oӺI!3Γ)TdР׉ֳ 0=;뱉{B^ Hvv:(#Q/ XϞb`]n؉b r·j ;_2҂o_wei5^MCRR.ħd|0q4˪,6Asy4ů~zKKvXkJ|Nul3PZ:"rXP}C mvT WCvvY$!!z}*n!1V%Phq:o*mB"[߲ūq lK&fqĎVߌg?jCɮ w24.okA&MR;upz=)iGDchP=ԭ̮f[Ԕ8J85CJs;l4͒!a`؛^GֱԝCgNq9 h؞GA+j1|pc7c!4{=@0=XO뀶 [¯Gc03o}'Eǟs3O+ƙps?&ql6#WLۃG* ;>$,40ŗzA}HM1W~!39f,k2; R3U$af QSOf9a;%4>D<JF7r57 }.z "!o x݄o~V_}(Z˦IVh']nvZg?%A9l~e0+FZ@|'ѿ2˧1+:va$OJa{c%G5}Y2 [NPnJ.CJ@Ig̋~Umi tP=5['B"0*aMV51@|kG' qd^^j_gY|*fAd_ŬUܙ=vN<(̽/ýu(Ą!)"tv`AA,c IטPF*{|!JG2߇.98ZoYS9[G9UXxF91ْV?0Z5 fkLZ@|̷}ٽo){b5En:;w4ՕֽȭK_.H?`@ ~p a{)!3@4ӆʷk}geS}ka!b*Ο3x T! PiiPFԨԽL52(i^(VA r]2URj%sx])?s2j RqL|.5 q,q-\b݊3A)@@]JxsxSKJ;⡮<>Z?mIƊFd*N߅ubG'N?uߠ19Jee^;&0GT byN.O50DF=GyI0԰_1kbvvPFӍ-GŪOUhN״·,C\t *l-^H@y8(Sbock[U @З 4W'8.ZhyQ|u}+,eSXWAa:hyTX#U I1C#iU*/,=>U#'H#DhlS4mEа^`'KQ2Wje-X.< 6jr r豆a퀵g3_]@cqkV:yrTFzt''\3j5{K`` 8#IG4q9CPQ$̻ ʓ1Z y%d01==;`}G١<C^SDJȥȐ^߁r@_pٱ/Te0'9<~Bup+h}9 ?;Yb!?MOOYS׬`ih|*Iyz aǹ#)Ҵb0D u!YI.c=FylqݦQ@lTΐ!|>SQ tƈ: oAI"[ҜpKɥ/-;jsɧ S-%[iNv?w# f:yIܰ勶WCk7:7g ,;b# ؿ5^^|cȣ2l|{_VIF<=(%l+MAU1 ;+!dEMZwY&"/@FRE z3'`!apU&kΗ[ Ƴ`z9ww u_ <}.-mh۸G?!x,ӌvKw=4%mbM(Rϟy-DߓAh"P2R\kUMgEa&>L $ʡrA4P;31vq(v@L:Dg@<)uM8"K>_b]RXS((Gr54:~0bZ.-EƎv>wl4@+ֹYDQ4 {^͢=(.ݎcs Iuh(6P ƶl[kYޣ}m/'?(C,-ةQGe1qj =SsJ86}RIw YD &CdP׺;taOq3Ѫ>N +ߚ7Jwx*iSeͦ"ۤʦ6M&':<[4((=XGfb%/)Be3 S82 {%]ʴÎ 4Eckc}:x74=u %yQ叝5շ6gF=d'ʝZbvTǛ &U7 GfTƐ/E)h=:/2Pn nJX\0حY1 u1T_֒W(0D7dzLݺCE =y\|9A}@@EyYvy 8tT;T7oMJ?gKK/5If dwY YUc,߲>gFs f&rBnf;hlGB@#0vVzJ$YmU7vlG"܊0 _"Og gA!h8ŦVYU-!+AFGG&SY~-3*/Jٗ2c:/h&eT;$ߵ5F)~x qVυ+֚3uY)eµRcR fNΗ4(1$FJB3?,|߃,aJ^Ё kfDw` kC7k%iY!&cT瀻!pvMyytoeD~5ի/^g?>8q,9^'Oq C0\0d AUH J[NDOm,7]̤Z18r %GK26~2L6 /W0NfTa) d*Z(k) X Ȟd!:N/Y$0=a1{z?ν0EUJ)2]7 ݭۣVoO|2h@_]h,Ɛ8E˗6М 23_DwD1F u ɎQhTiҧ20tQ~/ӧ8YL[ǑXϊWúBhүOԨs53N58;o 4Rʗ?`zb v\q0bg>g9OC^c8RCW9d/p5?:ʔY>b'u`̗({LY"|it";Z4eA Q?!!c*5!KY֬1pɲwh[(l/}̸kO8xćLXvZIO y`uJ!;60~;=]OF?ys ua^NŪԝ ^@G̼C Rp @ }wQWCb{l Tvd7YKAyCNb?o0it$Jc.vlEN$R$ۋYu'<_:; (*ʂ> y?y ^\?߿~bϯJJxxN~Uȼ+@$ؚy~YS5+sG@Є1_lLoXmk\eђ\E*; QI񏬆+;< p ((N#u(ǣՐͅXP?u;T3:^~̃8\^Uu qR9e&xg/4= qɪ+HzDmG몐 ]bv @tpFAdJ 1TrNTK'%;MpW2@ut~9ݘJ#Lw#Z7ű1#qt~ y|7MqsxPq?T{:A2VMTsE2Eppxy^Stm"]W(WZw:a> YvNC5B{noP^6+)-V8F؜8q2 Uwʪ<7NU |wV Df5㬒 ;;4WLͬAn[@^ b%/:1 ,)J+Q&O׏6Kй*kbdw ؉afx)K!j 8q=DAg2*!*ʫI"DSYVh5e&l_u3'x~&PnN PbxT/4 >^2$G\+. F;1WM4zvV(dp_%{LyKA ;҇v 5[a)yT5#Vus#j*ubjY%KŁېG}V̮)02P'#tST{=֊kL=}zQ -PwiMT,(OP;TZfP)+밴vEs1FH-Y(pN&=JX LIN9Se1)߉='[ƾpcɷμjodSOk C(FdkờUIsn-1,=HIc\H B ۱zB&&߳Wު3t B".f*krh2Y6R)KVHFB } ](Jp~ϯEiqxΒ|׷JAS bUóW\jދu0WO[22٧5NPgWih}R77Q";3 ULߵ1QPhRdؑuK ﷩ ۳$fϡ7J8v0se5e5H?ܺ*`ĀO"@Ax & B@SN:GI 5$Kƚ`Zc8C z{_9O@:9~A~6 )w19 qoɒM'l>_u?ʔH +D,kߙŸ@ךu(۹ Q3QKY $%xXѷ ȲOSJ_skm3$㺛WY!ZAW(=kVDJ"f##;ǚFQs n-t'Q>Ƃ{^]Z]HzkN'B xVtԐ!TjZM^wVs:1 ;{4ZhadoAEpy{Wf]Z]HC<2LGtTW̎\StsXQWg5WQGpt'u|L˪xR%"0);($5* w|mln,"?S@8&şe,h܊l*;o&Qx. ;qL ⟾xq_O^4;ׯ8saz;_QOLtm/|2T<ׂ֘-5e1ӧg?>>UQN>@Z+&֭E|dxG`{deSuvKEڳLqO@U׳R9C՜-؂CzY@qG"Qq`ĸζ~{@e9z[+wX̣v35Wo6F3KtOPUƈJ̬gD5]3/TQl;dԘl;Tٛi56Sb"{ gddN|Ȫ.қTYf&Zg UEkC< fwd B0EsQڲ!q6`/ֺ[-ʺl4$N/<%?g uVpo?Ng??'\0='o,ҕ;sp2%@FVs8$*'k>ϼ;n|( Mwꬾ{# Thjˉ۠<9UDJ ٗXc*Y wШ [@݅-Vߠ/v.&0(5#6{Vs4e/\V] ".T:VDOaMHt =)p\r3|1g"$T2˝ηLj) ?\d=z6qΰ1uVգcϨaWʃ1ݧң_py>H'Yld2SCe17̉fJߗ:-u޹֯2F5j?:::O=fJ*lkɆV}ͩzG AnҐd]<5vZT#Tߚ]$]$'9x@Zh痒׾'p=W=x{Fr9|lXߟ9Fp$oOBQІsȵgXd}]$T'ݑ䲯QC|q} F2dg MʖZrT%ԴC2*r>:Ԝ*:kxl^ $}φ{֤3> EdM߿dE箸trU,̋{q$Bh"[ T~ a[xgq |0# 9}zUTK |G4':&xRfPU᳚U) A^Oe)r}0 B,[E, `%,~|/':|k6Ɖ#ƅ7;-v(D8 bJ3Whs7jZ%?ψ}!@Zrݑ*qQ"xB/wEN|@(۩Mhs1{8zޅ#ĠV,_n빂,=XPӱfju%i "wOlK!a1dpJKdVLv[qt2bx_0Dp/qQcoPM .ٰs5P< ?JA$u2Tia#35 wz$6]$ r%Ja{<[l4cU,FN9,\SQO캢Xu8 bk(Cπ 2p!cz'Z$Rs!fEe7W@gܪ|@y7~n |~̈pnV[/$1ĸUJ_E&+/^- bNm*Joiiʀ kI&Z]B%Y vcYwh&|S׿:zMnr$Tp*w*>|'3C)UN.g3To,2Ϛhx&tsOX]ҥ"5n6ϖg9;%i N[_Px\&ȋjv1|qq~^Нw‘}TĪ ãP *@n hcpz]HVjAgXrUg@{Wٲ1a6t35&WGʏ@wu F]J_OBy{I_ց`pq]$O<tu%,:QlX3KRڮ˘ ;\a-iJvv싇ZW]H"hJdNbQv䜅-SFFKNN@y) hE:_[.+;?ޮ~wǿӉO]kIoaF>"p58?o )46C{vA^HŖ2L7*@εL&֔հWlZ9H}Kx8mKrj]. & D g,˒5sJÙZ7ޡe wιtVzz-FPdiH$vݦS ^1gO{+ذ1zBS= 62l7J!/ !\@D"Ȟ?w}N i7bwU;=p/wM1>R3K  ['TdWx L>IdQY$+Hr(殞R KH [~ b\-o\~"Xy1 G{鞻ȷ)?{z/YY痄{ٛsW1f/;P7-eZ.-Q$11 i;4q"аiY$vdsL&ٿy^(qc~U lG3S*g0T:Xz],ROwsHEek>/)fֲ(abB{1' L3#r"0tz\F\hS}([Ü,+};'ž{]uo? ;ļDRs;IG9ByKhv)' J&ژJTIZꓳoooĔE^7ؾzNb :3tY]jcorWu>rcU~!h>Qɚl ¶E;.tؼfL,7\ ZjynHkh㟲!iM1?0Rfz1WXuS?{2 Ik߬Zhݲ}j0<lt$Z.p " aԶZG> Ԭ8o{Q1Oą.2#u\a!)`>)%ɷI|ß$1OЙ Xl9pwOw;?}y '~Z[ {oQ-`WIDxÿ> 6`G5=nK irF]C"aGs߱&9AAΜG</(Xdg$!m-wNcϰ)8'ܭꪦG'fC9=֗݁&oɆND _rl[nJl(Go0.!60 W/$p+}To|TԹr<\F G!k4X)l~1̌MTѶkE=>|gN {vQިJtjŠBXGEAkrt+˸yc6β"iK?|kّmz<iϠwVɩus-h۶:Nh >A[EŌH^VTqeG~ٻmUY>᰾Llsy6"^ ӘrNCF"D__Y80IygUZ߽.ɹ8xm8Ce\:dښ<],+S>ey[PS"C'qEj{D饇Ekv0E'QiI-x>GsJ0L+Ȏ™u8ܶٹSI@<&YHSb-Fq: ɳ5OLW}]O̯swϏ=sԋā?x5kM7&7/LG$yICsJ;^ V|VyB.^'N*w1kcPL,7ʻK%^$g9EˌXkM 2eAXRK,ݠ/-e(rxuZN[}ILR}ZZwܾziHvnoUhkL)3@6/͂pa\3B'pيI]D4켓0=dܗ@j0GߠfOPFODMʜ3>K ;T<KL[mr棞϶T,LpŠӐǜf8)ENyjjpߢ=Y_x(XHďsV>=w0~O4·g<}<|oԅ{ ݪ_K7Y̚({ތ澀i%;FONQDL9qF=>BR4`=o*W#D|z\P f({m|'(qgl\Q-Y»l,[q8$۱&d?CMg3ȶ&r%Jt.&_c^RrJ{#%c:HsRH飮2*9eou${8X%$o[r\H$MʘڊTאCS [8r:-K|GlK7 ܉SP3k:֢>2u 5.TРr+W\[vL!ٓLn]#J5wU8Ā,#=1=a}ڧIs,"kS8\rN< |>e9j -ýЏyW~~R!=ŚqۗO<{OE@)Pyw gt𽘙33s3ѹwoR^ ]䤻?zvľEN3QF_:n0&|Cb@ LrUV]`"!0-z<˺t#sE:۳l/_pZ5ok58oH[2GG^0&>W";NIz a x*,k}Oo`p&t]-U1 -gyyYмr[9$&e\S)5Pp4W؁yEYbtk8aKg)eq%lL63#9GH$ɏz ;#AAQSJhqS'֕O P,{=ڀM<(M39| ʯ':!ٴJBaBmʣ@/-CHۭg #yYݳ&cOS;\ d`fD໎\^ˋ6 ^:ԥ}\JhW%>nݹ ōݚ>>1ǐB4P\fhcrO' s>Z X<*("=t $a}$ [% ;Q̹>*TF+ul ;U=zQg$cPU-'sdhd`LNhe;,Ph4Ѻ)K͞s~/*>~vT/T?zı9Q¿8o>0}?o]wWrG%o -Jg"5OQd^)@AHk)F~ #UEsH!K^s53=gbCD^"&Pnb 9/B.S~B4y57H5H\TM.qFz׿\ GX}L(%߻?ês"UCɎMycId^ݵXGΖ%ȻtQ1 ڧPIv(ܕA>^ ۞hЊ!'廅˜,MfSQ>=@q%1 0#V~D#ꗠ'p` 7BmCWsO:3Gξp?6wwW=‘SeNSuW7}??Ο'xL94K˯4^$ *)h XØ9>}T6qYC:{5O9; 1ʈ$ml 3|we׼?6s53xiwά&ÇPYyFF7`M>ijTUA՟;%RRJx]>\]o?kB n3X$4lHl^v G ǦTr28 WgZ\ݗF9"mrO%U$%df%H8'C9d~u07ѮQ|9rHw@ήǃjG""D2p4f9dujv-bXOP趘 wܟr~òfa@Oh? $`z* $?3+}]?:Ӈ~6s,@ ?r*~PGۜo|v7>z~ 5O<, 'MW*wx5?gek~ n_F }#QByG<2N2Z <r5An>F+ʒ@9dGn+ZGG:9wB|* wDxa ~: S5bw}f*lavGh jj#0+}7:؋ffay-T ۛ]C;Nk`dccB y&HR="L}@<_敐cuhۧG l;SZʀ1dlNXv}S1ۓKBS݂ PKվd˳?f͎?{p 5X1;{>wHvS<D˰#vk ;Dj`}Mt 58nx}O*=L*_:(?7wN^xmP4S/|&?qxOq,*H 7!lMQ&~gOp_]FcVdrƆٸ`B"OfXmp[m$O S`z]$yēpa^e晀y%XӆC$A!OS8Rwe@8ZuS3Þ&g\~V+i\@aPp֒qUB;RFNݴfk}jM[p_Gkٛo[݂XrǢwx=־p2VedFWMw7]ȂGfak4QX%d]J!_{&c_Dg%w5 H v$Gw[';bذyjvjxR"B1U ȑ3&dB*g >Io't*i4:_/ o^4Q \\7|{\Xws# mgS(y;ِE^|g}6%{t>V=_=<=Iwb\GT}w`_ 39?7LR/}uzI;[ȃ$797@?G+uM8tSؙ[cV .k;o(g4$`ޡ 9=՜ SELy=Lβets0QMNuC$>GY^q()(˭{9-JW(r'5S̛K{H0{Cv_$"=6nS:A@v Q6Nz{ D(Jl *Ev ?lZT%Ejv5QS $4pee8ٓ"YW8IeY6CS X*8Hv{IP3xPS܀o|5Vȶa?V [q玞'w`}cg>X}Hh|&?yۗ|;<O$ )sOw5e۔S 87YVJ/pMECn- ;].*-V8wrđSgXGi D+.ٽޠYȧϏ(_'݋s >!\xR34(#|I hVWLp%lcAW_S!<8lq5T&nj~3 H#9FFL\mo9Tםta'rº}iP9AN H1k<3 v]5Gtt%X6F=lY"G!K#Z~ͣMB E3v"Dr@3甾}R{ tr"LMz ME'?)fs#xI9}(<;M.?_D~χL>h܏jh~n:X?ĔSvo%7PCrCS'$r?]ŞJv6"4/s Ȏ{;:~^uZ[KMXӧ?v3, @/ L4(sp$ CAG2}`tS3zGN=w SxwxePZ&דG1y/wM O6՝MzӾ.[\F Ӑsr;9U |%i\XFuh0ryɸQ(e9o'X>]}s]Fj܀k9gsNFb8L~%XIuoBfEjNyN3]uPAm`fR,REȆ_ -aPjee)7OU\ϪLnӈ@B;z_SR:~3 L뼼ӻsO@VWM`,dr%q05k-e-I.aN@`4M|-윻ulW|pװ])}PID!x%#G飪g=(P Nxv{ٱ^jMEw7MTK1HM:I,5LvO%z`4˺|{>~}A$#ə+V|'Dc?'sK7~ysTd)gh F,۝eM͹ƛndǪS72 ^i5[-n% x%y m UI)}UgxZj*7%/A$-s.5;\ÜZ }BLK VVb4kyWS oºىRːɳ+q }А~%G \J2V=x=yBdae҇,`]y;2m;].er^K>f{DQ5 #K+9gߩ񲰎Mw0^!sItv3Av0N`&9ݳ1&!k;*aoYA a#Y8>ŎB@/uD.ط~~s{/s I"OB? |+ZwnQ@qͤ3~>(l"w=W|S#gh /&fw)V@>#"F[C$Auu];*tZgUԛD.程 VzU:I\&έ Mhu?szߵ"@W*RJ{\›͡{]W\̞ Z}SБ HH8:@-z3Dɿ5 oi>QcD22ۗwl̰;_ adq9}ί@uy)'w 3/?x5*ĉ@?=_Y|>^-o^8osyz|'F[HLcpB/x|]<-Ș܅Oעmwl!w{6TUCK̩F\EPzwAmذC[23]&wUS 0W5<9[((]Ҵv>TfyI70Iyˉ{gnr+4" `䨐qCah)H%x )xp^K-~[M7I`HAo&h1TD3 bͯچf ,a[#C}@"`Bp80}]ȚB1W$.l;K[R G;``(1nGRm>E2^퇚 yov|2,A3,#p2u Ɍ%2m={m.= ;Ir!d:8B@S忦kJZfy\7u=?>xO?t~1q

vP'^U‹O95o??n;!_ ='\]1 S%XgGxO:j'WSvh{ǙFD 9WöPqL;lܮ%IKadfo&sϻ=^9Vm/ ^u2TR!/Sr)d8D<+L}[vj] s-:1P1ӽl)ۡo>0=e~ozĹnxd {G~8dB<;}"_?z׎~3Ts9$4=;it/B(q]b?)䑇5 deo 3_SNsuaE:@~ նon;*pI[W7^)&%’$,+ŹvriXc7ODD豽'8≯~)7xUx{Hi̴W(07=-sXr8 K!JΨuLU-/'I_Ld/[:9,XN’'~DN-f5oث TXzAh۝W$˰;ǣhIrZda0kH^R%)<I%v]f2LDPخUèAB#Ĭx}Md~8. ɜ_M\ߓ'1?Ν]}q;_o]S9cdBzƣٓ' Я$iO=O5}w}/.rnsUP rS.bl)G$pKBSk բ oj^ g$䪋oEDOQEQvB!iw)ׁ O+ H̭{#!dK:S9<1ٗҹ3MH21e+6 an]YwYi{:[\ Ni(|T&B_ݤwmc_Gt-KLAԟoJ|eLP7'!?o* ˏ KvaCȞTlTٞ޺p)HEW:AfNgL;:ͯʣdXy\9t2X J#O!#DM;9÷B"*VpўHN-|^``+Ї7]?cmv;J&1rN(9L H$IǏtұ9:&Dgzs/܃4q쫅l4u#a|T:=?Ư"Y۾tޟi&W'&cݱ&gj 1Nq)Oclchz<|r`W<^NJW9*♃swQ^!@3HnAQҗR>]fu7r:?8䵃=a1VÉToI4K(Ujfйs8h e) b!΍N^Iiy, _ Ii zQ/Ȭ_y8y9u6Z_G#эX~2֫Z?xaY&s+tRجIRqH\z=͍u&f`219rǕ$!yL;}g'S;vFSTm__ek]vӣҌ4TǶHxO%Fs& V=W|64w8 dDy<҉3Гp1Y،EJOc5ؠZLpsN&DXO$W֔# Z?SSX8ڪy8#=9>3ʮڞyjd)A!w3%b[S}"ЈJXz|аrJ,[OL-Ξ"Wc/K~0Ր g'D^" "(ۭîPust"biӕ/!E(.Ox faƿ@s2U'xli[hq VhxFN/Qogt3lc:=yc9(]\RHdfn*ŻubY`Fޗ_>)K}@;Wj1:^8qɽyG-5| ط(LY6pwtl; H K~p_OVe?vH,f H>lH0t}wKؾ}# r%Hp#ژw|cƢç^d݈īC\d G-3/gv;GѺ$ 2z&%O+FJg_ Cܔĺ[(/|Ws^;V'R߈r&(^(Ǖ '{")w4J$&V N9M-_̪iڅǞጛS*qtZVeBHS$cMcN<@<`Usw}.323x4!YU*{+kܕ3a}9qy=_;sQjB8ddNMff2p pŁW+Q)ra\VL)huW }#^ZS_wq .C1m-zt<7CªVijF*5y=y$2ydo&,vJ? iUՐ}TJC ?TŌ2mŚf7*Ĭܱ{B<ͶSc%UUH,ٌe;ebDLIr(^mt2/W{kO]~% 7XF"Or5m p}uwoS9X;D+5wؘd_UglgyAljMո9rt aF$0tgO|_D;bKڮ73#m6"Hm H_s: )O`e85{hTeH'tS =Y./֎GwIS5S#+B6@0q[Z~^b?! w*Ȓ篿 rWc)*G"A%Yn惂&S(#K)`e+3W`ZwMpa.aђZ֗Ź -ÙP N.H>53yțUȩ a!LXG!9S>H>OϠlg%jwl[ƨyo]C`Y9hQ~I!b~#ѽ5jSbl:V:5>TnJJ>UXr K0G9}j75:#c`T6a;`3wcȲ`ՓlSY$Ͽ\dȯFv9>4ص~&JgU-]倾6TM?¼Y;̔<>*%3*ُ'L2 ڏ_ x^&~ժ\p.Lo ],K|X ͯqο>腴);*Wi*Nk!8mb%E$RrwvM3-C`=h"貮sg$f\Z0d˹wf ŹCPxa׺L'Q@HPLfp׃laqG̡|L~jIsK[թ/ M"jǚ͡L6ER\M%:potY~h΄%rW~[l :\wyZA+<-*N}vS,?n/:͆dm4F-C-5w )8ys㗞*)!D}hu;UCc^9C %s.dER%QGucn1m9WS(GKӕwɹAȘ^8D{Ws/ }8ǥ $?$E}q95=}wE}>.6 ӪdG֍ 4Y2M<$4G;&kU `-HhWI2%/ U3dg;U},F"ibw&_ (1v_΀R%:٩G  $ pa9/%=W LZY#%.\Nd~ ݺR[k F\etUMKhBw)<8ewt9lvj܁qITg,zSY Ur.Ys wz#9l;V,șw"wNF~TV7ڄKgGޜ$Q':H@y}x6[pQ9'4lԢVޠo`pp)k$d\nd75kLy??yI2@<<'eB` G4X~|?H8E}ōOH$D&v65wxly`rF'`y-Ѧ ;Qjwv{V;RC}Hek@-%$%}Mtvgd1 n rOO.LX:'_rJνɷv9U`54v XA#hK@d?]D*%Nb޼zvs>[: I[lREEXo ?%@>oa z йk''yfݦRmtZZ=* 4[/cVSλ`~PCzoףx~2,Ww*`N[8 ڲ_ӏ֥}A@^X+#溌  rGmN(FF$o>=PΙ2 _  `6E57,N/<3G~d"Hhn-Vpzo>P >s P$#!'0VkByX$49UdRq9PNn[$<]$s2/4~oH~+{7|r%BY0Z3(]O^5bۗ/y$B Z1'*BZw]ܱt,i>6VIV='893eo* P#%Q{23t2Xkjvhks섰>(wJR~wKu>ω23rsng̐yrlʑS¿?sgm{}*rvر])d) b_}NFC{|}AR[TwιrXo> {N9HݙY fS c>=޿βpB2!b3$rG+ :553bAnTKK;Dۙ%ך&mZ^$׷ (s:քHF'llzm@@r9Ulz\#ӓ7GԵV*ɺ2<"̢?NƗw{N Ev6RlL01<šISMMOFj]6N'\䳹NpdFN8cMu>'>/ُI厶]BfE:O`{ I|3+~|w;- K'>Ս*F`g=]%M1#/szJ=W\=J$szr7|3}r\{F"U fq ĻU-ǼM,b}Ig(YŒ9&ȜJӝsxs54RIoKguuTˀ}T|N H^O+y1fqyiY  |\IYkNh*gfڝ%V)yxjXnJe7bFhJaJh6='L<~@˲sj9@ o908Nb$SSiQ~ Y[hE.k;=Uv힠~rue$(CQ]|)v ["p7Aks嫢\cI6%b1ߋRZpzQW#s*ODeN-i|zBj|e,^͕. nAk5Tu;WH*-WG"*X,eڈ@>oZi+ .)o V/Ez` 8/ Lδ U˴= ȁzı3Y;O|Sĥ [{-63f!_>Xm@x&|h.I ]ʚPF9SLIdGh=uܠe\J3C+n?$qqސܕG w}L13퍟C.P w9+{YkމX 1'AEd3b&c|Y Y3TwMs| ^& Uv$.]X ,cȡ`܏34齡lǛ^HBCB8u`B%PmEj}ׅx= [m@]By#ϽKDQR0=pgE; d30N#9Y+nٙ/uݎu:F1{jF-w~Üo`DR.]=:HxF yS`/][ץ:d/<!L*٦d,|͓uH ķ$/zq2 S an75Q# '/EaGNBfN%Nlf(xw;D?Nf,7d?pM" tTi2؇PʝqK g9%Ifϲp.vʕmcz#SlcJR \IP.S-SX?-5܅kN>~L28935:#rK5ԝac$Oj+Q`{`AE!(k3{{y̅mM-bu^Q?ح$ x Gh PMU0sKfP,f^lwm?f *q8vt]%ޣ#\Jz=& u%rM.`€TnJGuxX &:RU!Hbs}$ܙLCu7;R ̠/d;v1s2 t~mRU Os_y*zB.颚ƹf 6=yX9SAx mc ,Ĩ!,ہr洭.g0s&h@8j]`:wai&E\ɔ@6ÎxPse8o6MgƐ1f^X;LZU"vg>!\ [rvd\j}Jdy:@Xuw ֡PyR7D+WQpAAˬ5Lr2fM`7 UK'S©j۽zBH,%slNf ϳmlߌjn^3@J{|oe&{ t@WG;e.! q2H!wkvʦNƢXHbNc ;XOZr~~N9w']у^qjVjB^=gokCӇ ՚=k_ǖ}9I_&eq3aw2Qs]ޖWeyTuBD%# qxWfFC QKa?(L8[(?>nʮ ԐTYXXff&YI{ MxKGR'y~+$;nPE B+{ WJU8hxb~n&j^dHl{`Op@r%<) w 93 Qi/LyDٓlsr&?p$$]EyrN󾤉 }knoQ4-r@]?cv _IͿH\{>ZF?wl;}6.&p~`qw*oΚ]KK5JGAeN0=AOuV_FSn,4Ӹ2>W@v cUᴡCL\ ],ؤxgZ{b05{Our)܋ʽt/̥K/qj8N`$  IwX8Qow W?CZOLˁ#i:[5F5;[ʎٚl!L9-Za3޷fo5iVfj"nw vjrur/"T JP0a+FN,o_CE>t_e]d5T&{13rω]Hb,0S\r{ 'W z5)?Hu.{`^wfUQ ˼HXW!^Ri2zNzr{ P=p߯1/57R/EmœJIF>}>*w9$ͅom!#Id'5{=a?ݘg^'%п/|`zҕ03ΠkͿ9SR5B=t/5{{>]Oq$cϼń*A7X@N;|bۭ^ ME,~MD=Iǐʹ‚c٭i]^-I 4?) D 6Tk IF6 .8- vԀIY8YAavSs*v*eN:b*6K!HqN0?'jVZ,Эex=8A*LNDHKxb* L [=爠|dF>NX/];2Nʶm&tUsqe T@9e.ùGI@:; 3q6ud*p} \ ffx˼w.K ZfOj֥F>zثG̰c$R1D'!RS}drڭaLp$2Ǎ82qX5G5e:ș#u~ >$@$B [7 E$ wa})ArQ ]ڲuu =l%TȻ'˶}N Ol_W7 ,uafޅ)>RH(z4}LZ_]rv7{1Ļ-/t9UPME3ҽBB|RDb>ƘsSOue$ܷ6ud4^p}̍#O⚎+nD:X S q3I^JK;%c_"Nxe\9;@oo8?##7⿒+9=H 8 R yJ Ite%|1H?SztoKſ?hϼql\ 9yrp2=Կvm;o\!3`/>E*(Tk 4aE9[UCB g'~q*j|@vI՝̩޿Q7;Y[M23$fgVjtG)V hkTlZ-})\iTb-AJ!6n2ߜI@sȩ/?^#|Ld| wYf,?W~kB5$3(5|9]i ɻ͞3o¶'HtHO#M!X1uZzwce}N\ }aۍy/|rdT"ބ8_??HTq= r&/v+˟5o%DryqF.@$=qI<3/OG^W&CqNZ'DpuHNT)T3/.)y˜T|n)ڛb-ۇEd2*{27oQ' V{kw Q/vS4s Gq h?@u$>.s_{w i\.'5ϘXuՐ}G68Qo$\P,hV `i{6g_*~Llq!{S ߱S<:5L[5B,77=wQ447{3C0A^*+edx`Sdp5⸎ N!K0#5! prM` 9pfDƪR7}ZBsgY"k`H5x)ykgw~#wi&Ʋ~q~}8~ H9N_=ۣ?sgMcIX{39~g;q`L՛5ª'i;gwt螡5ߜ~>?5<⍏RSw v}U)gqIB9S2o{e(wEّФYA73)pk 'L$aڃesĚ}ܵhc4S/Sk3ڤHY92Ed7ETSXsZCDKkNВ+~5*opU4nd4![eTcr圍<33~ ef`mϩnm@9\M@gim꘏oydc[}Sk:L0-/V]o@9>wqpL1eȔ,X&X 2exv3,Kj:2nh+q]B"@%洹B׽Q GhJd\3qp?X0I^&!*~z辟v8??tO'~GO;㧟9~߃I% I{MI܁{M;S0fG˶k9Je011W𨧨q2 Vc ܗ/{N昒f O!'CR! {M-sLb}g)}]%t2 ͵zOLb ~ZB #/玶y`ƹÌTrgqZ ԶoLeRtZ(qnvsֽZSA0jEkqD*Ú0D-@ē1)w;6y {: ̈́Qҹ'6յMNFM8t痬KDB= ,fz>zK&AHℋ&V79@9>3Ʀh/@ʎwG'+n*BIޡgd{ $/nTI%~?\{|'~x?>|Oc~H~zŶKHPW^S󌉰x90 OCtŦ-4& eq#͘dt kL ;ap>P1i"d܋dc)ǘZ /O:Bd ǁ@}PvIKw]Jv0t2,;,'@*mF:] ͖Nnr})z1r=ZVWjEwf6I~1v<9d&/}m!?[oŨ vE UT1troEj(jiH#s >A񞰃괪RΨbxno[?Xm*>ʎ)vTv75$Av[4z]kۧ=oFpxa&_ /]/Lm؟ɮ/xC_IB>"ɞۿ7A#<&|w$4:}sXl49A?=;ABX; L.PٓRc5}TP:.c/Q<B˰`>İ4fR4ݐpGG'P r L̈́ruSA"1'QC<,~֚}TxlOM=rlsCi2635mB+ S߮Vͯna:f/tVƢF':wa]7t%{׆pyfaAF}$k^ͦ2<z.@Trr'e cQp&ֶ'FK;T/u_;j`+%x}{3i@L7j:ы@b.ccȄQOm`ۇ_ċ Z=$؇{_nx7>8?9"WHnJȩDPayT9ݩLRn $ʎun,NreU`_4߭-WN uoP|AJz=]M%M{c@y` rImRύ́AHERaQ5ܧDB&':/l&eXfea2ON7*wEnޫ"/&CR+/R/\+@^7cI}-c$: UnФhCBdWNOrgn8T`We,JL>j A=OЁ$A3 { {"{b履ɗi6D@Ȏ=S ~O"yolC8sʝ; ۗL: 8#S1JehCNL|_{`<{6G'!e7l@r K/9p`1eXMR 0It=Sm܁.J]s_n% Iӹ^ jvr3 LC_-Qn$P^hRgx+5nJ?w՗V}ȳȮVoovM~0eOНs8!>RIPŗ}*d$g ;TDB)xwM[" եt@Q֭A`yJ] b*a7eWKZ%~ I̔S5Ǧl&b3>RZ?*#5 Sy\c|r))g~(N`OĹb.&/_K.G9?=02I[\m3Ɏ=@N vΒNXx #u ܵwS-\ѡa,mԏ2tVc7 NC#o \S&hb} Dv^5 WW!&'r`A vq0fv9Q23n-;m`FozE5>7sIBIWeMc+4?%Iu8ݐ36oe(ŀݸSvXw7񒄅kv67=c~cߊ>6;Z;V*]U;zj 0tapeyqjswhq3h2 ;8J.ʮllLƆ5{.* HMJy d &8~djpGI|ˆlOM{9w2vfhURܭ1tq5;G̔2V"#Ҙ=`sm&i:sLU2y-kt?_>~e8ٷ9U) lx: ;{/m\[;jTw;HFor &}&e Z/(jr-ٖ`U΢:}t86xlcwʺMzBZ3I%Mߣ,m䃠&_ ǠFUI(ULB$ ~#φsO=FBm OOd?3Ɣ ;{3s7"kUcT-s (JppEtPT pGҮP8 &wa8waJ+A{gS̔ expn5zX;$gE<Ր}Щd#m;G g'+4l70v[W"RKO^ٱ뺉;c/ ؔ- ͍N#xO! {eo]2 "w>T9 '\|JCU Zxc3}:%WSW26 sf`ỳu_ޢ8rms*oe;6&%3Z \OB|G@ Chnv_|grXD75>Ip!L9t`%'pa#EbC-=9&:*y#JTc]:wB(vw:$( LU꬞Ɔ&'$XgfxL"!ߡY:btD~YP&WIFHIC!MLWٻ(6ƚfY5$]J-ד{4Ts!^(֑<:\c5 {$1e%y|~m0Dh"yۿ!ZP>ZF7NvdM `u౬&&r"vw$rݥUF9)ԮVjNSw Ks<9G)r:-FYV/_{~Evt/(oWxd0p8+h7F[U;Wv$rpl^IԄ抁ȮgWGUʠyn%xA8rSN+wn`G]Gx˻j6ll_ Uv d|Q4f+m/pJ$병͌&ȊRq5N䓙j}2VE3C'<'t|UX̢/grflC3f[VLĜ5;'SN$TǁTfϕr?pϏG~$&Nj6 ~=?o|keyXzpJ <ƃ-^ 4;wZ:Fq^i `QR Z\ʠ<~QCQ/@笥$fdpi?aM֙$eA*X/̞>Ž݇|9Znܢ$qT $ 3ȕѮK@O5 w;')ˁ$Wm&7T+И<*n]uWmxx@%O:Ov}oD$a_`O)[-S2;֣V {+W}Uſӗw5N5kbiVA-C'K7$w]>! `"'tnO#Vđ RÛ>i!-@gUn3J4SJS'{mhz KY?Я?LOgk+Ȟ$*/Ӂ֮H?-Y+I+dk2lVOَ];7}>h9ֵiL#sJ9'B J}|wPI}ܙp05^7z Tw{ gYW-}>vB=G:T꣎Jn&ļSHݵ1"jc=P9es:O#[8l k6~Ѽ'z} jn.ONF!FV2K? zG&'ʫe{4@N3龟 `1DΨj=(SQw6!]>MG(xgvcq2~"s4gJ;-8|f>*w   Ù "S*" ߹.KSIE++K)s\_E}[*6xopckR*#>p3!# K>S)P1%*ff_#%[r K/Z~=7_|?5GP1l9&.Qc kNaFOr5xlT>gƙ#%ȕζ!Rp/@x6vL4TWNW)U!'Iթ2:s cuZգ \v9InVRLt^!sTb܉MnbRb *+5mvp'Tߥ5Z$5; :t`5hviDy]٫@y53 =;W{wGs&\ZOiu jb%ge\)ާw'9Y]3D Y]*Y$@7$eAs]6#wrFZx./' 䣋ʐ-V5`zb~|w(=sz1PR=җc:W95V)E7>=r׬{Ŕps$}o|2F`%l9hV)xGC` s-ζ)>$9 .pW TR1`JIR:$eNMd@N.T;}qrE$(K4v/6yI <3ڥM[0@/$JUtIϒܼ2!W"1Ljk_ԑlaLַ*!Z._"pvG'ʊ` ޺ޘ5oW7TD١>z803sW#ѻTKpOh}D5m:$Arp_{rG|}%yG?3o%3ĸ82ztg~!?XhWX.5/iSh#{#K4_=z!GO?ؿ/x8w'usVK7Z ~qr#tXsIܒLُ>yEHs9ӑu x8=68bQXK0ahf.ZK*Z/~a K)poKo4Qw,N&L)}T?8OT{@{r6&^| 0\1 R,rz n&V e d DED3U1jc-wKI(&"똌S ddf'虄p玽c#DNr\F +;żM! m5d/M$35;`GƆtY)\ VetPqzK}@DMlw M(H"!,U P.v8|MQ(Qz?{lGϾz_^Ϗ~]/MoL運lsX9Ux'[x7l j sd6r\qr83gx9)'h뀔;N  y3sHY,$NtGq'~pOK)؃Glqa?e͟ངo7ܸB3@*_ʃ?9ء׹U5ڻՌ;T)J6f4N&js{Z6;m/9[}+.k_Qi=ofwt$e;I_sw z:1%bktrAY]@lٟ 1p]ò}\guD 5n@-C mSDZ4;ރUnIbp7UZ/ncWsTXKV5W4|?OH“lEQ?x1>ˇ⽒A3%E -Wy5H?=]qxO;9z'\fR= 2ɑ PM$F٥Y&Rp I;Kی,>M&&kdcܲ݉ AJZF:z\d[7`r,4qd/l7(5r8ZnG?Q;r09b N^J<]"*;)bi!y7}>:=M!.Y3&ǣ SSȣslՁUW5Q #fwomՠ'/mZ(R>;4U\\}TсI=GW`֤I+ dA]I-\:,D)gc];Q,A<0qde// . iԸjv+,|Pl;5J--6M\% @U8n)d~ |S\#,V@Ɏ*^a{SkON$U ,o,(`LM܈eg]zFuϿD l2Ų]қvfW)橲S?F5߷`czN9{A%nw7&'_ʎy߾puK0zz3-3穢g&$=&Lmw&;=Q:\1sw }#N!?(#*aVs)hP#g@f% .BwJE{gyA| G"X z#'J><XyKROe!D<'g mi {hP.g_^/?=ٿtÓmAbgѯ8~X#K=~9A$zpc zLcvt,&Ydܢ~TfrRX/K2E~2{)MP $|6P!d@z"#Lsok.R:A {X`zP?xZJw.W?[x]oe +&؎fuz*S"bǕSL=p߼mX+rjLr/'es[;rđ*Ɖ_^Zd&}wN#|;~_;^ekUi£KsIrmǚc9Vj*(Pa4@'ċαUzj PN>cZ2kk4;640)֐]LWw{~}>&Ȏz0#n$DR 9qIv %z^/U`wY9|}m˶sߩ)y'?K}^\7'ZN0\FH;UNe.ڗsLe˽}\< 6Nn*:7꬞QU El ZUO=D>S<^o*֒*sUb3gǼ8̌w*5|ϙNR* 盜{Yet8\ (]$#ʃ3a_ XWw|K?mu9 .Ι9׫Mݳ &*98ـ*΍p";IClTa%.S_rC/vHz2co ;hr v=EO.aaw(LNN'霔z8~7FsL Jat1Bd㝲TBL\Kl |m+t|am^:w<5W=F4%>~ \T%/ۨ *#1rp_3ܮ zX)ؽw M`PO4x7OpD{N}`$\ϔD|~w.pWMM Q7`V\ \GfUFy"V73 >@fcHDMyI9+wj`!gê_f=zwO)!-I(UVᝆex\\?$e;d Jzȟ%y 8jCM}*^p27{q ُ@. T%Pd`#J3%TDB {\9D !&l_cGRB2Cu2yU= CH"9PMB X Uk%ɯqiIJn&|\?{sWu([>M;"r5{ğλT1Nɷ(Ց'@F@KAkΠO0j|`L{rI^Apg;*cLi$QK.hK]K[ 5;'CjN vT l/dzwݍ%m1as*/P'\o+ZYGMdeCm~-_LɃ|AyuXoPN^~NZ[!w''W7745wߦټ'vgbLCՓ❆ 7a V)Ĭ9}sO:rǚib>bϾ{*~h(tEi\A!AuvVg,S[3y:R(uHQ@E- ^>.4$UWf4s8+˝3_zwg |,]K\%v0zqVʊhn-% 1L5h؏վxR!C[&p]vack?4ttW&/lsU9#1I}6$~(zXgOr1KcAd̯PY=9KyA-k?$0Xߋ+8>JJ"z' dC`r_|/viպOD(mq;^nz\#!GlYVd'̌A-jvqʟ)& BP7Iќ"Dl@vegyB0M"Kh<A3`˜w6;;fog`iI/Ezk`ؘR8vܫX;j=/Ĕ>{poBhۑKІ/ ?,7ْ?8ʹGNVS8ʧ MT4f5g``q ߩz;%<`G#i!jʍŻ\|^HҌ`Ej HjoJ]wNu) ْO?~>9 a Ni^_Em;[ΰN0Qܲl!a5No{!yTec0'LO֧MJGe:}w$W/tܞq /xfrWi6[7R[zr'0.c÷u)ym 6r d{~Mxz\l4ȩ>e$L1wș}/Ρ'\t}UtaS<{n!^'hbjyzt gc]R7x6FQ/_ɲ:x@e/"(5)$3\j= CpW gYp[% d-+נ9e;v|-%wG yG2StpVhjw[&n糆/'˽FRãˮv ~yXG۞& dHh ˜K'#vWOiOr=Xު^:odq|Htq:a㥷 <Sxo-fL@^ eN %U%щ7oR) uaMR$Ş!2&M0aU2 1/ ˄@5)>AOl(O2rer|%xG(͹j'o<3ə@|3^-VV"ЗL 7^8wMyKN\2|3yv"q֡J>pҪ8AK.$] փx 곺gEO"]Yܟ9Y3Є |Ys,!>p8sW|.>rJ%>EX#ps"`}~ʦ:%IMt޹DZ>#䪓p'izoҧHSՈU #jvuѓ(J!cvm*xwRps[`/.yځ]df>I:՛=ˁg(d t3Lysz2d[6*nccQ"2hf{{YմqLRy}]XY~'Ll,M;wy{/0F&=r gg\ W׬8XEI|bK2_ؔ8|!߃iR5;3(\h_Iڻe= ^f6X>,׺\& >B 鳞WuQ9X/Z?z˜Aý8q2gWD(YC˪O/3^0xqFˆ/L{wN2WB#W>BL>7Kx}U3=շ ~=¯JC2F>֮RΪBuժ#٠mG-7 a)YˌMʇ!acRk>=5&_>Ռu?a:|=*H9|ͅ|E3/ݯst!Z  >33 {5_'3wW$LMFX{s0Hk@9w%ݲXx+ o8oA|| Ϣ Dx `}@$g9E/̌QμmS c?X'`Sn[I:6g֐f0}VAZ=㬉'0Wt &8]U`96yHԠy Qn[S~Xoa j^ %\Ng0} +E9>W|G\0iP4q&3q1`KYl$N.,1.1יpo?* _hi|ͺT*~R-o1u{u iIzZk>t|kA*fA!7u+E Kr&B9Q[j. b3+Wbs͆(Y<m+ _ 58>[oK[Xrl>$P}fח$Q+&=`hm_N5gH'sB=WW ~>> k(o,v0E17 Dx  Ϸl&|NIjzE.Ɖ*u{~iЈYoQ'_|)N;O r7loWѱr>S|G9S:3?{g&$t`sQ3{ O;hcf ˶ xC?sUHC%UN#waၝQe3( ' <=8Nf޲ПQͤUhv nZb.HGTNoC|/Q7^dUJXeԟ:gZ+eDóO $'s[Wcbl .< GC 5 ?l{|A٨vO?>N$y/A*7~A,#և@ݛX'Kljxt/{DS KuGgjIVMVΦ`f&!gVhgPE39¯TI#Q$~al/#98mO?7;ܿ_ *bY|hpY n黣)@~ ȲH'ϖp)鋺)͡v }4zz*ԍ>c>_EuK4߆qΎwl@7^bcnWէE}Yq,v% TnW#0B>0^7/)udAX͂JTٮ2;hwq]:>3+wO®|0S/.܎oдH:opOOX#3)ĢgHx^5S>uxfd6䶡v7I{)qS$u6FP|3%͋ܵXL{ղg umVM8MI+;3 U3`0W`ЃywϢ Udar΢`K$ua-ND h^wPb8?}v~[ӭ壐;7 W/1Wu iTlabZ蕺k+(piaL "- 03 dG@uW_gN%8p~iwJ|/R7BƔnzף>;̼ ]#-|#'R`&m~FgL{8l#i-|{gNTI1}7yMgTgIEr py/`ai3gq9SzE53|[o!/ $]~#MJmwQʦ?0'cXH2 x\ԋ?#6^ywK 3g{vkY? ؙ)M.$m%I33 奻'ά') N$?W;"#Lu[.PV? v1gޗAT1{gKE z(f|赔1}k& ,V\m;h3D2JRxp'rAJej4ğ-h.jnv#Dž3uf'2, D޾ mdמ`ֈn^c)m0Kvsʟr\@ yIvñdKgsJzuyw<>uGlhkrAʟKpYEÍ >ME΅kuD2FUfwsj(xYgԅwRv^-8z{F-03.3 ~ _&Pf<2 Ax33Ċ}T*۸򽹉\w٘뙓M2 ~FMMegdE VqIbk_J3? hR1sŨ(Y} P+2o0)/6?z ۙff gq펾c9CC5; 8a.sdRzhsQ e}u!u y)21޽w2p/?+FnN=Y(ik?HɇW&s'ȜĠU 3wigWU@"H'2$Yrivt"-{=Hh6Ev%d A8hv7Uya}BLx+f6E\J?MT2CYlb4xzbt $ nvT4f ?U}avA̯sKe8EYؘ@$jVb|Ϙ FɮgKSST Ǩ0~ʔ~L2-^u,ꔾ(Gʏ ^;3Y9G_CL>gvYzۅ#pz}'dcbOgKBdpT3ZXTbS(Mh``N1e^eA>B#$Av]29 {e_Sl7ŏ{|G6F=RiLN6NkW6,@j jAV5k]0D"wb>Y~LJIϬW3'G#%WwMϖoonW3q-Ry4"ǡx ZV~_ ւ "L. 7pÖ}f̉>@?gN3ux8OqF%EmAPtf^9-i lSdTw*}Ϳ;^=y8LNE G'w @5sv~۹$j:1މg\K` Qsl,ͨ &Oo`<}bXodf).B!+s P0~fnūԝ&005UD])u1{4w#6e) Km_YVcnC ݄pJfN&'WSLZ_̢vF+LnũSv\\r*쌒0vbwb&Y;7?_9IlJGz:(g_5w b#m1fq2[ c]V9;Btz|#dvHמTגTЎA~!S{8R 4O6Z -ZIȱ{ԗj_PR@lAn 37S;"RbWrwq] n\֛ {%y T8U9EYj=p5BMD76_.~(YZwA fQ՗uPLZɸBK3=TIW]=bg)E_j gYйpɝB,F9^'7yvl3 뾝YS˘{lZFHvfg sSTuH_VJ';D95/)aQ3i33o] 7SUəao~-LE4Xx5PK2:d^œ #ghy-7P/nE`z]RJn# ,U.McvϠ$^1%`3Z`PȰf#GߣȮbQy 5/:!t2#UDQIM35h:}-`m ? ~Na}m X߿F=>#%-JTtύ6nMYcfZu 9Cd ]7 :*<̔#G{w^M}І36?3j$)c⶙Dqz2skY-(54T c8PQ]~-,,JO_:tlvTT$cquA1;6ܵ 472g]Y=A9WrN}~+BkͿ; ͚u sHlEoZҭQ/Ce,e޳Zۗ*\2٥q8-#U6 p5̛thKV|;񻂈wiv:~Ͽvݢ&9Xr★7SWǟK-h.k=g‡䒳~]() ]<W3L봌Cjv1\՛=vf?eJ{to?]^y(_ *p!K!W>kSIİ 0b}In>36mB"ʍ/W^Ld)jBm !ڸ~/ň߱:QH/8w*xw3<@hsA;اbX?+_1gfF# |iG $WgпWg (Yty{Ҫ$~EZ|LHQMpx]|E(0 &[LMc/xFo/ۯ_̺5L5!BY Oۊ!=ssFRu.,J.3Zsz=$(Wuu"] w:*Zlهy/b+_#`+lU*4{[2Ux4"h<Hn.-:(8]FΧߋY.ƫ {s9螡7"/JKeRPCszz)s>Ht_R7Q&ޙ\sWVv^33[i\D"|M=wv9ͽv>9%t3 soNOl 9`|tqM,A%kޏ?3 qiA|nGlܵ 壶wBiYzoe_3kZES {1;/ gSnNh /B(237Eޱ0goHGuW͠^s'eC!?8w.$s ^~L}I?Ha5+7mCs!ҋ Wwg4t_][=y<ܽHCh߅+fc-yInմsҗ)~e-߅ٺ>0+yD~iU2hѨ "30v`$ﺇy?./wU(1~uT唧G]IHhh,p=w2xYZ@;.pϦ"tKf /F4lݠn*q)ڴ36"s r-('\3MWYje>|pξEa泐# /ޙuGy ` _Sb]T iѺ@AGq k"ֿTipY{ؘ}.jRKza5|Ϯ5iX?(-1?;mn= w*⌮4(*8BCq~U֬R~+%93G0--lO`lE/h{պ :9ltX5?b|?==fyffd⟰4Wqa7vCh%@G>h]9fU'lO.I!WCj(bx_;۳+lrf~Ya;@ؖ{Ϝ[UPwпdޙ+L*97vϚe슷ts*} G^v=K*H]WgơMe;9~{>i׾UGe;Z3S} ّu4uנ0]K2(dcq%_ :{H#zؘ n&y ֵЋQDP7TlwH=n:Y>aT|G&ZmYo@4,a{[N#q,ߎл+w6uWvee_߬wzqGHLmqbي _u} 7/_AS}xޙ`yv'Վ}]_מ“f1v.TU09fwĉA65g팟 (gZ;]uL~PLuSl cG 3M vm %w`bF?ix>_:Kщk2$%]_6g&+f?ҥ!%Р:T$D.C_^gzMnePE%6c~T$”xxT‡Oj kmh} Y2;IXţ -[I,}3= E[jpY⡕aTC:OڸTfw=Y\O_lc~׭ l>J,fVy3k4Qq.g:@<>kwnSu*IYQ.jV gQL:RgQ$[4L87g{g~msXsjūo ,X380d7ɼ#~!`*WE Zj z/T;}6n%ᣀxsG8sMB@9HE9;cʠ:L)a1;r,;)ddPIdݞ5掳oŋQ\ҙ@!Xb{C>tJ__[{dRPϢ A/gMl i_@47vߓܙ?@2*C+3gB-zoDp:~,*Ūr7~{*IHR͔d.~ \qfc>7Q47G _ݓ;5x8֠Cϰi-,A E_^XmObvx(^-@w+Ws!K_cM &mJ2%զGE)}.q ,nByi*9!#f2g1a_h@+S:R}J|23<{)6&XlDNnlBύS/M$Bh2;ܝEoH KG?h>R@7{Oa_6#Iuʼ|Wpy2 '!ݠcsqiD'|"ݦGL%Na*mv%lT| cfhKbRZufՐYt`^ lQ.x7A2?)2=[dbk-ٸ d$(LJlt-(`|KzIK$?i{ѺO7oOglKq=I+eOe 0OUP ^fG3>mm {DiR9x\socY; {NOMŌP['ZLoHjKLf\|[h#z`tMgݺ/]zXF{EU=KHS*u#33[8sHPhsG3xY *t@aa2Bۘ;/k"ј5oN[6'렭efOsk$Yÿag&S0>^_իn;T;뺈4>hj?Q T9.<$DʽN;M|t9 ҡn+YT=ZH4Qjs1 XHIgaO>9+MhFJ1xzjDRﳶ8Ƙb>vtܿ56%- IX6IRQ\yl6&x^Z 2=l_,MHݹvmly g>.zQ4}xNt,߀{bR/)g3 #eVߝggSA(c L~+gf!#5o*Zmv4z}ا'kpѽdWQ~3p(WoDRg{1,_ a^{]*U#v { ޙc(̀Kxz?u'p{%K4ʷe%'2 S_JspmIP=XfensU[N1hЀePo_C` J8g&|DE OJ .ZWk!Mzۢ.M.uj,-GB/wۅ[h |*$Nلs_clSn AdLHgIwG][~*>*d|3\Z/&Ny߳!'A뿠Q{=cbo{ @H$3M1'I98@!]DؙoTcUƀ;aǼd\M(7"Zxuhu=}0($?tb [fi ;9}}nglXߘ' l95N;c!`@UoJ+ޥ <5Q^U,&f Q܄EZv.,acLi:"ij_d!dF ^LWAxԌrA>%8ߌ/>C})"=ū. ;E  uNbۡlGsv7wO7.@>~]:1FMvϼzD* ~%gNSZ_|,(|7*x?Cif?C:d 9k~5vg]?#甆x8~c`> +wb8]sߑ$*L7 .w5 DuϻrkSJ(nc"~/2]4G07wyBg.Fxn~_2뎮2 0;ЙWلϦX N}++":?W5b B;bwnUg\sBZ݋wF4"t|^sf8  (лW DȰE!|\ſ QehYY [ڹr n;̜ZhՎ& [GN{澇V_zeU?3.ƄeKܬ'R_ {w< &J՗ikyc)5Td|Y; aPkjy8]v D~VWm@`mk`kžY\`Pݻ6%+O?QEE$-ʳّ|rO(FD֛2^m?s_Yr/C{z{"2Og3*$wqdESq]yfHE\ch>̌2jC\V5rXxL!b$4nuΜHp@(x7GIɣ&`wznhk1xώ<W6@/.= xm^$OL.v1W$ʭ!*K@yͣ2HNET6e|gNs7ĺ˯NWĐzݟMY077H"@cf^ Dž*瀪,<gKyGe]7V-n(Kg/Fes;I\?pvᲑEl-M2Z]gM~Ig/qZQhGdLI]l~/cmN!}Y-[?}Ώ&|w?u6Ow%ڸz [G3 ҅E(w\jNŇ} .urI@ HYYp̺  e5D5h6X}Mh8%X KgG_r,wa~vowvfڟ_56p/ԍ[DhХk}3L'9[yB#)pqd!|U$͹ j_z*uO|O*a Ib%U#8cS#~_pU]|ȫ=iyuF:זr$}TF9E#ZdBEU.ΟQWT6F RIj%SZedM&/o3Иj.+/~8\hg 8JF (c0@Aj2`T'ґPoϷ0jMlj;"~)[^/ݩ [oSwIoH~.67KۙJF= 3F,0@<: {^Z89*8.TF-ԖF^HTk~_(|ϴsW;bv׾,-; HӚKλE+|\y@xD nF _XSP\什E ]ع ܳ9+(sPlBDjjY;%Wa]rq= ZK,~!{Ւ |)Fs]dᄪְ% fmoQz\IQI7bUEz6(5 u7S:KgV-/ςE+|f≐~2k=~nء: ; t  /JizzCm}B $b4 ˶c!_P9Xn UJ%&lS,'=%dٽܗWcD6}RfDŽ o/[lƶoYvL7[Ƌ9L?'u^~<i# JrUZB@'z)#cu֌g<^HH9B@-ղ?#w1U `An !Sphؔk͌p-?ϧ,| RI j?coEqL;̝:U/Li.Áfqb57O纊<0w^^v5+ezv;m& N): Il3Q";MӸUL_^`0qf|h,QFR68n&9@'XBT3ݼ-oCү"R6w8ީ`t-'5-G*"пT޽k6A|[vv+ *sQ::n=7료BpiUsyj <¨oEW3oJH83{}hPifafp%.3{bY~uNb6ܩZ+ϐzܑlgpU,?#np:ܢ$z;<ߋb\v7}}FE92\NO3^Y\^K^ ڛ9}r:@?yBsƽ+IVxϚ'$Opa'}zh}>(ϠI#;g=%Eݵ񃞈|ك͓TbeR s:3@D\$wȻ#"/~8Uv2*F|rnRK;on-y5]|Ǘ{ڞ-N8;sF43Fw87 믍=RhG FN]GH.chj\u p(_ubE>iMxd?.1C:@\1~os@vKNz<{ ͛0>|"M~]IXE¬ƞO΀;g_"F'MUJ,/=}`]nJ[)lϟz3oAZ&]6'a瘥SϮ{7{' ôAeW-R/ wv!w~d[f6(W d8w(ߧlm^摛g>^/l9ɤ@_nOOJs¥ {r.z )t#QAZ}0j8GID@|V^g&<Ed]‹ [(24 /cUl=/ cі-z3!2rj: ͺu 3;(7tzf1`m1s|tKǛPX55{9?u[1ɺ GpUA<ў`YÇHT,(d;nFÓ|V@Dw_c9flH&ݻ՜ez{ƭPvP:ڳJt_Em65Xo?@0K[* %;7@O!Լ/B`tz1ׂ3>8͕P gΚC$~L֍Rm!X'pJ]sx arn~"J]{>~M=622VͯdlYقh(On:f(uGo_Eϖ4֟HPUkVxnA1D ( i.*_1;=o)|Lc0Ő'819>-ϻOLK΁ڜ6alA`sQv#w`УI51@NbJDs6&oks*3._=uKS/@|+5}6BD_X!{,d_Ms`7G&Zl˯ J;0>A\hA@ϑ 15G'l,t|^Ҧ֬։44xm,M7cs5/N}!wD>g@"W8.+7ַpW8of9e_&G]̰ƽTIkzuϸ=UJeCsk_ZI/D̴/ڝ۝\ΐA#uOTz~ɓܿqma7<ƞd+#m(z`}16aNH;( c&b_APDsl.ކJZt E!i'5Gl:>N*ʩseN' ;~)7(b|1oPڊݕkFx Hh~&0K->)bzk$nw,qK3:s SCH" Vbs2=$c1 .\μpVSo,O+Fͺ1w1z 'I^y9XQ N!ܵ-}`}F f;|oe2M15f$}aTJ\uy[W(uFzOjn^c>'qʎ{$2u4`&侜 ~<w'd)/^ñwXPH*vT\K4][|}vWVuR` & j}۟K.F9S ^ ?heMGMW,\^Yai*qE׭bq3:y3T;o'z ^QI`g/'J{[ouv(oxF纵]rd´4uX}LG/ դzW$W|IY*.޳8R(ji#2=\g'Aԗ+ŌGm y}woϞw4ó>/\vSI<$+W!``5zjʜP,MRE?n)]f8ao>QOga[vGU8Ii >6{$3ߞGcͨDTD([D-! g" {ێBd:U氥=unƛixR\ljrAmRlRb}JPt/}y{R}n U_G}*"Y$^hZ*tJI(< >GDMl&9.sˇBYuLө3N! . ᕳVJ33c?>_›XOP@)whXVYĦQ$.{EfϟK\f]pz~04:Mf3r.s(񗟼}=,tF6fqkH(9y]5o)yLHxWHp^ yC$ǰx@ouKpp(챽Fٮ,Uo|]xW͈YJz' AG# {E|i_}W BnצfvG93=&r\ ! sFB.ɯb2p_j&~}rT(:)ւyT<5l$n9}.F".λMَ3/;ZRe`}eMs=-0딴z-N{[x9N@O&J7c$̬J~!}?O̾kZSGiIRECw q3bg d$^&yap0z'o/HU*P6Z_R~s!NVzge@<ی~:q>Zo<-]#V}UQH1W+r?_fIkJXieX4q(Բ~5HYF~蚉vq/q|Tg`!>%}HMTr7$$:tW>k06?[7E>o^$^覞>ʷMw3})}.2WG\DgHhqN#6!@1)?P8zQ緬ɿ藔lkϐ؀:%@ۛfnٝ,.][J&cư<3Ѷt?@s,sʔ7ss{k2O'?,p8j0@Savʬ3JGn'UO%. ^~"Hۍ0?:[ %+ʴ Kz&ݷ5Lb_嫚vcmm̯bT'?C<ϾJ(yo댝174֝]LQeEϖܥ R% ixϜ ^*̌b!\GnmX6co&sAs33XHA 4k*e]`FlQfyK,/Fb}PwrNL4C*oi/ކSK겂!jS^kI[@p  u1 5ߔڷZWȅ?򻾲1[GMU98sG!?_H: .N3'{=Kr;zq9>f^L7Nuz{mF:7KxY4qM8۶,E T$dF)0`ΫM+Y&yUL?j.h*a}>BzrAܡ|Wd R =7f@ a32mfvp"Fs,ENE382Ϝ6.F UbRRBy_Vp7; L);\֥; Bs ^fA;$ ~ӈu}yӺL p;4gE9a_Ut& :[6NٵA<=qJBEtդDg 3Nb2 ;omE|>dFIhfⓂz(xy,EF(xXO?3[m{p92-^tuܻ;=sΐ&$yVUr/K]g ~W539 5 !雹#~HqyvrE]1<uI ưl1`gϝ >F_WGTw\[@,5(a"ٖh}/7G  ?E5EG is ?a\}&dfF`ϡQ:xkA-s+Bw~[0 z-\:&w;T_Q!Enj)V-e?>bQvִ:o%Rݟ0T)W!yF2WcTin{g{]wgۘ&rۣ=ϣю?wgp'\dOG|Iz  $UAvGfmZg@lXxc3?.(3CBBdby#yFl ,JÆb[P_ ّgvf=âf:gvo$K3zuy:KjlѹY=ιm Ǡ|fk1`/SOTX70 4hٳ>q[]R8^$4ftDKOC 8Uf:e/9(T~Y?2 hrj&_/Y!bC LwiۆlgTRա;4Cxs{v*5zXoqR P[ɣq6J۾ISl &VqGٖE%|+F 1,aaVRP $r}l@ES t}֠[54Y( I6n&ò?# Mo:qS5'enUn#LbKV³t64Sk'ubV 5Z{x̟8s\tW]~>kp^wV꙱3}/q?N{;؀LcY%^x= 36z@PנbJ#9t+ 53jնrIMNJO7ý(> 蕆 ܾ޵e}W!e-ɤ-˗lnڹ7OڋeH\ʠ}6v.EIʩ%l j2%;NBt*%l&}q10m^"V2'.7/Ze1UM_r#5F@8 =D,F8ub|y8ċ1ɖNTo ]?)ϸz{׻L;+X+}DS?)sHL{h(a+7E*ހ};;_u~Kֻq1 u=>˺-?BbV/7:>&=%T|aQ"֚UdR]p7RzBl̪9z gӘ߯16f{`/Km9_B+=ʛ/!Mv;Q/vp234.uTF\HBy(] 5pB͎' 5)7P Ћ: goN"*ܶNf~oFO%ȫZ0]S˪EmAyvۀgciH #%1p%E0:xo0ȝ*LuzzEm6 ){5~Im7u|&$\vʑ,qJwe[6Hw_Mhh>V\p/P5: Pl, G}ع!_:'_}΄l&k3j'^,.c7qm=vӟWae; p?o }Hh%g-)2 fX^%?=_o5+{Wa7Ⱥ}֘a/M|ܬfT{Rj2<\sn34"+b-/YS_N;E"c _d/M˘D74"WêX}Mqw/ȾB>.+\cÌt]>=mmoͭia_:-D 7QQ{Qsū5b zJ7egǡd)e\/I#TsoIu_t>vwO[%]_ўbju*̒ _R2(:GIk{٤s~$]i!]D#gnWbڨ5ĺVXvh 2[$Mk:?@T93ޚX7%:b ȓ!;!Z!pq^h=h#^~[Cf"ZLǧg铁Yͳhjɢ#r$E? )n].ge En7RjR0[ X\-/d/"v3 _tAXpwwZ&뭫~r>2VϿ>$іe~Um,y7f.5N|v/}v:},ƀ^.({^B_ӏڳ/}ؑB;G%EMIWC,?a,܉)MG\j+?r"3xr< "axaEN]郞'~cSsؒJ?Yx"\ۅó}nsb~ {o.u[^q{&}TF"=}G9,_WL~r;m_TU׾qgz9ɛ#MApW E,80W> ;x9mJ6u xR0 - I6ʽAsp3`}wxSc@_v5g{A 1o̝$:7TjVd mt?CҗW\zwK͛E6+~-\if9=3C?O#͔__Mk{_>+da䏛k@?;Td@a}\99&3_վgy%jx+þUsx{'|X9^(zK#V - sm~zL7nx.i{z~3e~V jX l~%_Wws~d@u^q=5l.쫴M6E}PkKS:س'*T%bpinϙs\M0Һ[P{Bl ,(#cwG6#KUezՍ\ygĝI4gJ$f` W]udce -xIY굥y/^YK;5Z-n21ck]ZC>n6doxc556rX6ʧWIENDB`sqlitebrowser-3.12.1/installer/macos/background@2x.png000066400000000000000000016014661374246124700230310ustar00rootroot00000000000000PNG  IHDRX%IDATxڔirl F{3qXY=f(Kz):>%u@Čw_糽?_[_V}˷k~Tcݗϯ{{;`<;{q[4hj=JS]/{`phn/qg; 87P`npUʽio 7x^+z;cwûC;~}=`Zwsi8}=_ס/ڽ}P\?΍|:qsYdͼig׌KK[g㬧&'gϵ#|;tq^o }t}|}#nVßrxށ[c(x1%[33~72of^shY;{%<يt3wfGp53 CYGݐ쵋&H |{ 0^gPFosnx|9(y.3P& (ioD `Qa>AwνS2稜 nSaEmJx2o)Hs}f٭_)}rF>7%pY/ѽ9)ޠmgB~FrW!<[2h ^I eEe:{V _83ALc$z|}6٠>Hx[wuUg|* % N6&Ҭ}3$EٸB8 :w 겈mx=?/z1:7޹h~I8*K/-,@2AE}tu25 67#; nwfe!FLgWb dj&/#XC 8W9XcfKnAFʝrxdHh2 ַ?QY]Q= + I F!SMx5O?h8c%,V+ZMc]LB,BdMA tq?f>(K .G g)1x\[|wݳ#Yu~} \dEbaLx(A}؛&x7)Kǎp}zcOcGʷrrGԵlX{x_Hy\_)-<,XY9)/3mlt衵Aʹ`Ac]#Svsx/:7k?htP>K, Yyy1x =MO׎7ӈMh{2p<1ٯ07g{ˆD)̢b!)-P|5P-p8.^+-!?!!P}4BЋ]^ ,6M,4pj-8NQmBDr_*cךzv> SFy<3e7,%&ZS;p{ ǒNnxxU!h`(7+H>xZ].v .b^cx \Lm+4O(vC0Q!Xw N=szz 9J;~ UIb%+.(b$Z ,s?Lr=aE F--EXY> Bk#0XdPbgp5q[VFw-lS\'0d3zy7W!cg)4NK;, (|DgpfOO.{Pwa2kbnН蹡k4x 2N02.wy os6A!R<~ě6`- x9oBLt:k!e ~.y)ҍЮ@hU7ݙ1ŹH(# wnf#6-J862GZ ~Gãw^ڣxYd~lq{i%O0ϣ2Qc1>nz!Zf>ƋWn"pٻ55hrHfXY#rKq-.<%*A`(9)o̥c s+n4+^W7:wsNYYt-)[?26%|ᲯR l=YWfͨC y_'w^XCշsy<] q#N t-+Yɕ]z6 rae~ Y7R(?[ SYAx S(.e1<;J8;n~׹+L+ ;+ty'%C3'E0w^uM!Hcg>; JJՔpyƟ|ǷF~fܓ»wF(n|{Xq Z셼q{gtpH$fYP#>g`:s`4DeX=y7 +fhp&N0! +`rH.JZ%>'R8J,S2\4~Ul}mUI\a̟Jk{R8(T qiTL+ !J׍CIJ|.e1l~yjAJ|RJ(m=A] hivF!)QySz! Z)O7:rr\b5Z-JJ£ٓ DK8q[ +)p=BL`adGIx+&@tbWXb墙] ;8 #n>,E#/븥\MJ%1>aFJ\ !0=$P* 0fiҔw>K ~x+,v-DkLJ46]r./Ӵ카e!^>28wqY+,RBCbєiu]U1k8S=aP^Z{5爽``Tb飲7oXHѹB&CEz=b 7x}JgrfvI;)YV6)uKZYa;5m:^Fs@]aHܒ?ʃb|92*ZA?^E9TN I!V=1/,4G(:,;} Yxx?<9|V)xx!0N;!.:[5~o6y>WLWGJ7BVnQU~M9Si>8 ӳS"5Bb:B扩Y la3\$t#mgBg K.d$JYp0sn#4;.'1vZ)<|gm|7oX9Km9kϭI{f&U 13:8 o}7ч Gmva0aR>)\8\ᓲRM9-1,^:M|AvS2%R{4 |ygfƬ94) |7)svZPDp8)8Ļg7{JI 6X9q ‡5%^HkОX1f ^{y$e=U9dA+Fzig\ODVBK[=Rk) U^b',e笰WCZd gk#@$ȳ}[EaQ5S&N뒨fgw+̰!%Lnw,FF86[9 z/5r"*Y(1x89<ù dm0WkzwoR 5~[r1#]0M!)^`t!86?ש㕡3$5pJ]b,'g1Fzhd|beS+bwa;0a `L4w>ee}"钢u9DK2hy3h4Rm26[pyy]K/?}ĺ=;ȹCc )dg!1AS0Pbv2 W:ҹ ski4+rLҕAa?<Ǽv{8%l%mԹM\rFG=D=wI<30ozP.;+B 6y,.9L#Xô30[]W\u~\_uQʕsIFq59KC ʟȚx^1q̸bu&bx0 G \B-8p#I rXg5l-/) ff?2}2s?J 8xB )3hHK ^WˉKX{.$'y:k+{77 J?iDL dWj9+'_N.ӳG/Y=MHr$K mi["Z!lB 'Aѱ]Н'ŋYv$/"fw~YsrL. kͺ++ppu%k:Y-YǶf{l)N];= EDM`GYyfZ'or4Jø-gܛJqsrŃ'+:g.yJ=1gVXFsi%ew +f'QfuCΤ(Q„Wf/ Cg_}DC2uqf%p?-n1TSAPj6M̕Q ,5G#ClA Sރ_Q5s/\~1^ 2Z:GGk^ 5UI۬tqd*p)DŽ B i( (\Oa^r.<+piQHRdz\-,Yـ5 |&YDU6ZkALIP}y. X*sii 2xL1#eAU fnqV@R$.f4rU !Z٫AjƲ`Nn" 4Cd1' [m(1ybk3sgBR2Ϝe8a?[#-E9ʝa?7|;9 X"c9.ŭ :|F3b{N<按K} kwPb8lmQ9T =/xOqF` `Q<̊r%aCKY4+q{y+Y'Ϫ+"r#8$CPj/w\}J){\{GB9_i2se܌,\u_ KZB2'ehM-| 1ImJ jk;{qxd4X$H&A >70cs-{dҚYǟ#Z+txmfS\@Hv1$A`wu]";`J"MT7,"=h5Fd-.v#<-dܲ|*|k1֡޺o@(qT-v)"SJt!|ˤ!c3gKP Is pK8:&2^Iqna8gWg?^Eh6†@HIw By3/X+];W%FC֍Ys\[k$^c''=gfL.02Cas9L?D1 g@(w;)$ ^{(xsfj+nMgPppM 1T&P@4"'jVp):|쭪d /ID#4x*ɖ  8W+xV.JXd9@ҙݭ ̏T)tMƫIejg ^e7Tu8ֽ.|C}|b;ѻSʫ 7 {HlsQhzKYq'9RuPNY~세]{%XXrt'V&L CVpGRؙ>{?‡5(2v[iK\? <"gzߥfuȘb~C h kd1oC/켧c_hW-$꺦Ö]yh" XĊhq~m%E0L㌓uF.ʉD=)Hg\Cw>k%'"(hP Ɔ`;exl2CKqs,!yWP.fʓ[΀s=,L|]9|v;vnc(TF2 %?k4&O7o g c<\oFX,`Qvw9vFFk.6ȌAOqpA|^ūL&3 &Sj6Hډ>L5@TWdi(L T}ox(6+!x>|ytQ*]"+px8*PQ=#bѨPҦ_laRkfC{>xae{qkRT7/d `[:F4R [C'i9T~i"oy'GDsG-p-'5F|ANK7>ֲg۔'S5n{١SHѻgldLc^ÖLHC`v^N; s~\\ ~2g<5K.m#J:IT6a CyHW=3K] ~d=\:Mtf8,.ݳs`fc F.u2YS:D8ʙwWv&.1ipCUs;^}:6{e ٱ_asT.E3~ @Tg˝C(Cq|hbq r=rH\0{hcBGSr,x:8T JKEr/'Fk 9TTjdXP$: Wԝ'RrWfV(IO\_oqdCƷ\޺"qhG*Zùٮ/s'<1 }yfGӃ!&Xo@'a 7yJ{˝-}Z%:ewO}?gu_m"@pp"LWcqFw]乂o(DbW =2:A/)=8`c,ZZQ: <2}s|"w?㫫9^?T㽖'#Lۢ & goӳSUV-,{|}=5RػnUdtsɤa g)E[&奍Ȏ znС;n])E)E_9TNX_Ñ6q&_,ĭtnS\-w-YZ-h NYWvHlym (C0JfX! 3[Q^{; Kfp},G; R-[y'ؚ(e9>A,wK} \D3 ѿz&I35 UzT"{mOR`kL=>5x G9Cd :"j-@z5f/q#nL/"ag)uq!k~@h{z {)M9^)PFdJL48zQB-'g^7QIE\g8F-4@墽wP7~CJcqRTMF |khRH4R^҂ǹmSs\"ǚHk]z=; 6!s-[#e*/u LJOz,E{;K "z x$Fђy~a+h}r( u $du]`sLiC6)(tp<&dɟivM|yaH4 cms/LtVC MnD׭_Pv^F5OPqv|x)(Pi37lRb'FΡ GFxphO:vAP<^M9Y:4FxCk-bȞͳ$ bO}gB<»pHE=tرL2/Hι&odeUtKݴrBGeӃl%t8JӤu|5w4DM8Ϝ(ﺯO˪+#ʌiO~hGD{"o-W}.b4ޏ8#1 wj`k~!(8$9.>7\`(dL8JhdSvc1u"f=ʪzU- ġ=g~ؿw'i(R*04Lr{zmj!nJa3*lu:mͼ4%QySq

t_mQ]F T.Yhx5uH`[+]kZsޣ4` :.a1 ?g%Gqzqdj>CnʦibL['٦u)e(\qyv6.Zgڭ[0ǎQ{hhl1EGD/ӑn k -^(˭DoH$:!7qp,!-Řy/#e׈-U'o:8TYCXo< SL4SwI&mQ~*s`h`EJvӔTȣmUx|IGZ[4Pg-ov^ͩ6}Dw8N)9wZ&k-VZV ﷴ̖ CmEpw?a,n:^HkZϸ[{~x/dt:u]z@ȁ7u)ثo#L^P'9kv<:3FW4q22_6J<% h {C(9Fp7-Ŭdx̴U"Ew.]9*RgШOGM8@Bav۟tFù3㖢b}kHFګ+T@;skJcVvىGttL1/oFSX_C<*ۣYPcrX0(#SqavHh=`bo;ząr2L@뤑:>;rmc+ivy=pe;Էby ZJz;w,#7z)!4hu@3.>IcџYϠv*8/i"+CadT.ڸEk'6Z7[dܠ& Ic|-jv1zj3rF ÉKg{@r!6coR9a,ѯ5nvkc#N}sKql жPa/ tJ |8wO2"HpTs7Y߼pIr5!_7Rg~ A<oO2i}#D)]5Sq>2uϏQ'Com-vEq(9&0=t̀ޗq#BZ^Ok:0MKΉxDվ"gČ/o_[4;.0 B~DmgOWI w?zf1IrF?y9K]#N: yJ&N늗{wNؤgS{4.Yv;\]] g~ޙ=K-uюQ#F:wBky'z Zޣn wBgd=R+r@T:XRhQd'of<ܶ(uTi@:vOxNANY(a o$Xd>I߲@֌9?dLϵȂzdpH]/e0x w\HC!§~sN r%;ps]vdt QiQ{7@b }d@ _r8Njg̠4+spsywg~G DO-pN)#3)z DR !w?~D .~^^>t@?:ИȉOTO>.#xph`޲;LW y=. uox| i춓̈{}q:xKl..줯67O7 _ȅ:hFɻǪޔ*`υ!i挭 =4/5Ӻ.*_|0RZ6E&!jp)0MEitm4 Ưވ92i#w~7Ia^ϕlhjksv9Q nچ^}r7м "2%5~06RU8FD$ja 95RI>)CHT:|BD _.l~ӎ&MP73**a3ޗtDbwYβ3,NZHSg[yPfNƧ%ukz97tYSz?sGقKf4>Z>k u2첌6+NaUzY8 i0'.~9I^K+9D+کiwwe5oӑk{y65KվuB[RǮL0XTG&|:]@49yFcFPq%7dcЎ%3q8X9t0f"B|sDAuIBXZn`]cGj=ws<ӵC-o^km3~G^L9χ.YFf$PHWrs ̮KGp'g9,oXϦMtw`x풳SaVGF%}oV#[nm&d(YW,0x}6d|;e08ԆIBiAITtS<+ y1͒hs{|$Vn~(wIg9FWF& Q Q3A@,3p91T4KcSAI [4Fr5*1A\17#GBDw Xu8a] eA6q8U^2;qQ"]PFS::䛞A, 0(cW=&ۅ2u{fv\NʴF ;u~w^imWOBg 14@Z/7hZsJZc:̕|~KꝔrs=GW>{U'ٵs'Kt;h.dE[+ԃL&uTd,F\/i4@ &0k<'m4xMd& <OʟM!̦h̫ J^ V˧:;I׎hk|mdࡵˆĦ5Aڬ]_k.S4X*N [/6HQȘ(G5=D|CșSJJqc= #<bryY;- 5y{J&@F=l )y!SrP;>"HksbO;r=)PhrgN"*⹢<Ճ/m,_SڣN򟵤 x3`g5~\dQߍb {C8^uS^3wo?UW&^jLicÅ c1S{c(4BFBk[k[R弑Cc_f&8٢콿}a1g<CZd`[ސrx4Vd<&!ldN&ʸbb M3 |,%qX uig1/N3.ٿ`k{_CG2W?;&o6[8T+[rM)OrI_\ ~ۙhSބ\@p=`s39cts! IL;"ys}M!0=ѪF}Je8EHim8Q 2T %< abdgGW }%膩8b>"OtР) "N|'K;XDŹl!^ٸ@pʦ+㬞׹upNC&?m q3}Jɸ2gUUP 5cɪdi L2&&n{f5Wh`֍d%z!>#aɮY3 FH*c2rýX]Bj?y\X;MF"i$&|̓x6̾"#O8$/ &o'Y$ x"ӉQ;'Mnqn]B5d|]*HfR 0@uDuTүc-ꪓ@ -Y Q{1EGҍ{_kSk緅L[{+XP7J*ee u` ŧ)y JFN6 M P9 HvaX@1A'ĩ12{~(T a}kxx}- VUY*F/I$ E6~ðѓ;o!@~ѭZ ,㐓zy5ǭLLcswKlm'+U~Bsz!Z>Co-U',.0=56  [?הHDg8~Ho%X5A,*c*U)#XZYCg0Pf'8 ~bma˜$W&)UI5KbQ03:?d,-)ϋozH0ޓ7}{Ą瀶[1te;1%U{-'.>H3XYP֞#2_JuΛDtwfܟ^>IԼ;^GN'=YH$p sD=S=.2e,J0ʢM"Bx Y.Jq\<֥!h@.v&0Qd;Es 8yTrr fyB!G'n u"@рOc}v7&n:z-@A.= &wD{=c-5L|"ZHO=I(qx|gUyP'JCAXM` y,!ԀWc2SF9dK i#ב+ H6ř$"*{ řƸai[foV6snҺmaї|֪Qw~LYSM(PîQasFƸ idxzt;SA^&kw}WTfdC`Kތ&0COW>YFpɁ${N4itTcjVuA5: g{CF;alx$QZ|{%`{YHS sN|~Tnl"]858U'*,D\Av6pܣ#5'N!e\$\IgL(#(z5$:ȸ{0dG Xg]iM$qj?w#~NksgjM|AZgz~' +]cLa7e™+2}Ӌ9V\Q^R* d}< 5 b9m[mG쬮^qy΂_C~\րб)0Fj)oсcFt7?Uϕd^Y;OC ZfH ⼅ r?lb:Gz])~kBGa6rRV.^ާ|ldaL{+q-R,X ێޛxT0OIugiRwG+{bϰU"iY1Iۉeϖp$R6JPK6RA,C0Ɓ:VΪcQzy4Oɐ!-ha :DFsh㔴αvgՌ|_1: [>Dl5f{?R@ՍK>f{dY@~~} a;GkHRߑN:s!rIfF;P ; Q97}#6:.\_Mhe)ipiDR~\58C%%k봶<[ٗ8tڊ| Od'±fJri}>O1گ Ѧdd$>`-cxXC:6BV)e}w[Ĉ>eς+iXe)\R;ODP*ӉM},aßҧ'DfAf{lu5b(š<4}#q>膨[z{iyi = :iJkd.r{ ZٷR}(fjC0`/ѨhǁDG3Ko,B23V~h\?nÿ~3 GmX߅ 27m$ks; V`m=yt:* Uan۠t_ӌ'e 1SY- ٺ]~ hFEkJkXth>k L @16D|nP#Y",S[ ~)bTm#gۋg#eHepOx2@M䴆¿ܣ&cA[zl>c6߳s(ہ6i;qj2 cf#pbRENQ_JaFH$T9b1ɄE &[%rF!P(O8 /pzqta":t-in~c܎gl|vg>ok~O~~o~lo:")Yc_ɝcS1X>W:~dj-ݸ}Xe9{#OL{nY/4tIlΪk! :FɻcXE q7L8NNza@XyOy :[CC3g'h%;wmv&_&H c E+|p $?3ϓYe)qg,ϻ~Bt5iL]qRX`Vxj'۟=-b2֝JźYX΀_;֊:͉ξݛ*ܾ~c&S"3}>uxXe2@a8s,m>'ZYh^Ĵ+#"g z"?|L(; >FlohZHDoe_)h7=\#wՁf6wpg\Cb(N PT3sBט?(0nY??XTs~;ptE'cy{m\{vWtwǟzn{5^xxfǶO|ݟo{G>glzʜLA(u< Y;ű|u+8A7'ǯ{|[$;V % '?YY50"HMs2ɮBzْ#ӬI84-5И 0dR ,@:9V"Gw>w7UA0%hc$!9}ǎ2fD(fcoε|zR6F"-cjor.'}fV8; u&"qC`)2&ά`f݂I I`k~BBZn/ @<襕~[."91DkSB6p?$Y:G 2JrF~︣,xcPy(DrpLO{ 4)%~M% N!v#@ *BohzLgSi3Αad'r m9D"X ْ;(ˤd.MBcqny/~S/ y̲q[b~89jCsCM3.5cEq#CG1#|.Aw8#\w] d8cᐠp ~FršqTѨGx̘A,A8Uy LVdcy&yi "G* Cc178}/ @n}OHw. \bz^>3DpFIk1'Kti=j$NE\Nl???ȓ V ")jf&"M `2`jv˱VQ@dDelDd݀a;K/(#y=ɎS|NEoF|jeos֒@$AÕ}aYyі6|Sb) J0o+{ zƑs$%q\+{x$,'m81^D1"h)0*́cIB*lX8% b|9WݹݹeEQ?-_~kWݵn~a>@/w߶Kv_{{o?m 60J"EMC*^{. Z ET~_+p,*Csĉ\],FeS(,X^٘]91`ȧTU?\fG()} eS 3 gmNH@9!*b:49dIy:ŁuDm+X9L&x$Ӿ`~u/}֬$uL$`YS@GIfgPxr ;:J9G}  $)iË|- =KI:뺎gȍ D%N;k>?=CLo4']$VA΍J>K㙲辔B`Aƒ׆S`+ wP[oH%\yg| 'D0#/ e;Q=E :I<4߅$CVe۵ '0DMzu2scE|} n9]xөw<=ij:zgxpCk15 m/Zyl^s )33cB#3@C'|av-ki9th2賖헜z&.מlΑSpV J~د*"Yya"7VƆɻÙzf}o }+*YuJ`ҝ*HS5S4Uo`Vx"Kڣ8핑en*u*BEYRX|BO>WADKEkChpdI9A3M*"ouG[NaftCLf7Y xτX-:ߓND> 6qlX}]d8!fHT>F54<$4#RɮQ>z_DLt*\ 0Am8+$QqLp1!kb A6^"P_mcNbYv, IN+81 LY{ [ ?@_;|>qN^qae}N{g{T>| vBǁ<?}@{p?=]n_Gޞ~Wh ȁz s'S6=? ޘ7Gg)o:o!;X]|Os@[qq!{}ǷKfrHB% 33%4*=mAƄ!EL`(9g siGdex5{\f %O e}=d>6vh>yb?tqLq@J=qCFIO֖ Q XTܼG=NኈLy+c>x;zR%# JEҞStSH0Ef`"H^pƩ*5di5jj*8$YVYgF^gd֟7 \;u_`on"Y`\[$P]EѠcnG[A'dLyfnũ4 3ibsGB'BİϬG y8pM1jF+^ Q͡b?D8\ k|vg~"0c(k9\fG6̒:⛷_|x㡧glw\ >."h<0" f9:m6߹y{߹]}ɷOgSUW,w"y1ܫpZ;;^ИQ0$ Z*vz.]*f!hl ,Ή MU-6Q@윽S.PkBB͞5\~ք;V&W=J&K;|V"t R4PiCQ5s9e#[LG ꔓj{Zr;>4Gf0ogv Gtvv| yu*xIP&8mb)28Jd-f}̕`2Suvdsg9$.|# cIG.T!ħR=47@ߑ*f%Ʊ2BY2kICߴ݉ϧWUc\bbQD4BQѸ`TԸa0 ҟ֖b"ЂP٬`a:v:]{Ѝ&?o/}/y2g9Ϲ{+~ʹ*.=(l}}+j{{9r8]#ï16EG4N3fa"ߞqAKR/ 9Ncnh 8}fC\ߝ 7)dK\ IU`pseV!If|gr;Bu9^+Gඨ&"Sɀ H̼&9Z$ƞ3n~`2C d+mH$Է2S}`ď(kRA,lmAk򌮋`/|ӪwrT r1\n=vExX#1kSϛ¦6C^m]j%>a' /[g_u /v&]˪or}$kdvUr &M&i ֲ/$pi2s9 ذ{<*aл=ٌYlYUGl$+72;&RxMr2hWQGߞ@!\O݅?=q!kԧ.=ǿ39ro<o~En?}/.򧝺ѳ~p^ a=fQ9 WV9r!{dʧqUN6CY@B5#40b"ť|וG3VɷC~Ñn!lJy3ip2/z;2,`Ef7@YC = $+` dÎ6"& ca/smp&θ^w`M$IAbQ̱"F a2/RutjAE`nf}NT'z q]q0T!i]̂j,R=n+䱉Q#lAρ).{6J<.!tn &i} Jnx8-$ %Yd+@;fka=6;^  CzWHz&)Mr?qn¢51J{~..].dj[ꅲC+EyC>8$Gm^0la+&+5\'|OQ;`:<q U#I\v7 |u?獜50?w+o!:}C-Ϲ8 FC/ E H ~G[žd!+պ2Bq=nj*@g2,f#{I+ c/a%!q4[tumg#wTP0oiG&adbGUڔO'=s'a`cFF 0$BSF{@ Uٶ 3'C;$vIfi$Js0Ř[M+ 'c1c< $'q6*\%:I/~E+]'eRg}*>;@U}OB"\9 ڌ.Sx . X&'%cY"tMl&,>Ii3ӞI=w\&qj10 Zdc~~A~O~wKt,H2~T Cj齨د쉠qR /@JA(6wIb0q˞Q r_0kGΪkhzι9 ut|O5Քg{7w+ypMM<}*@ ]}~WծZ9jjss {9o{ &DtEgvc_E_pe#A&{ $!2`+j2N\?㏆1'㢼_]\5Ioe=Twj5z'#i`TK$rAEi?vYkYݪ+h'S{KyUy%dהK@?Q;u5al&|3m)ښqt?sy!"2Ui"3h'Q(Y7&A Vzf%T҄v>LMR#$xzLa~Ff6 _DJvrF0G>I@GH`D웰Zqi{\9g~w$M,XL멃Eީk"a\;lqe 5CkG#Z5҆=cJLJ˞9E+(3oT߻W_|Ƕ< 1-3nM0 N´RBN ztQ3JhCfj< V\Fþ!3X98j^%,#ȡ'>`d$OٴUfg &D<}鸥 lb@Va~V7F8/x}muKz=0K8Q&Qy'<5/zN5d h:`}H𜹷;ǵ'U 8*n!=V$s1e=3e#G8U@-$hNn3 9I #aP'i(ifBenh!B f c>h aQ)Z5fnL lpԀȠүfIsT!tFlDeaxL}pW`,t$߈=C"]#I59taS9d37*Md*ptj !P4`s>/N>#"l5&7͓Nt{Zs.9\? ׋.%0CN~s?{5Be&BoZ#ϥ|;82olfT︆ˢ' V  R2I(LjdL~y:TػNR`>mpA,n~bGwyr=^{9NIeDӆ\rD^~y {mA]5J\&5,X">J2Acy8)!h&Tqk"̹=T!/P5jobEH1Sa_B#v]k~b-?sX'(Xf#h}Y4Gv&Xm0)D;G$e bW;ȾNg:P[y&$u}eD+) OQtdϒjcNW<'_ 4TH]oz0z&gોtD7Ȭq(QK(R)vCJZÉb{뾈 6< xyǞˉR[T\Bχ${ Leݟ$ Go HN>ij~Cۼ^o"Q_TN U#G}=5S$9? NQN]!@q #:rっcoW}->wJ>6o} )']ڳ(=}~-ٸxo.7mo&;xa78 !Gf{J`3Zu4B5p 6//I p.eD߳Ϻ@6.pwn.H?u/ ɐcSFSmyi)\ 6=`7ڱ8ov|+wmzca®S =\p>#@*b K4vXojfW/C py68n{V{ {r:`!o)  Ӗ_cG?s\qM|_|)$sP W2}>;k=<Տ_կI |xY};k!j2}BHINUMއ$Y#Ł kH"BE5&±uMS̐QFr'䠥#&yn͋<qoiEN^T qmXUOd뭶ڂ$>D:`* ~3R^e|WۦfӮz'ep,uDoi;Lp$~- jeZ:%S4@Ä2̳A" 'ȅB AT1nxQH/,ooqZ˓s+_:qjx`Ti۷w.`ijomf:eZf$&M(Wk7d!g ^k2 vWMGDN#p>8߫o(O /|C~<$#O*ڐP%l_.ѻm8>_a7gtJulXmGn_k`&vK8|Qz"_^a%`UD{xtgm<|GW/?_W.gIR}"{q{:\wytFr85iGWUxO׶'VedEzm T #@) Ĝv`r9 z0*#N:[;~ :!EB39=$vk/Q 쑓~l80AubhaXm|m80i)b/Ǫi{qTzclLݳvCX$OׯPm8J39oϼAEeрژ$b'D{Ģr?N,{ɞ!&aZ]3L L%=EߪL(nfE1UПvʐ݃u*'~OWgb Cp}݌g-UW/ @O<'Jg/8j6^BXmws<B|aN\{.{79܄h̆M v-ӝ1mx2/e3X?/맆jAp|_*|5_|vM'Y.F (@ش?T'm?T/_?yIȵ{hiO5A1eEۿ!kA^ގy{|_^Tm)5\]ٿi9fƒD8oijb@<Zg9z29?qk: o@Tsuq0rI%G fTN5$DߝPKvKpBL>! APJbr~V[dnTr[p=+mPSԖY‰rC!U,§n[I+'n9@M)!ңM:v}W`&$<6;kI␠H~ܜ{XIÛ" x|T1h d7||=h]|LJ=a$}%Ȍ(;?32 `_*dPq4<9w凼_ ,I`DV_Nrpz¡9cozxl7~kB/JS#\"3E;aNm'dSK5Ak;o&%w^fVK?T$>_psQq9X`-z?aʓdc-Aߗn?7i#իy*/[4#*9"$jFw]đzpdM.7m|rFwg&!m]pZOcUmDtYZ}n ɎI+FV~qy"BY⼚4pl:5B{zwAwËQky'+s+ߵ=UdmQjlS:ڸ.^71 !P? 6 2 YBPrJdWR:gtsb稨:{bcPK_bȇW1#s>9J,@6I}PcL`l Fwy]CS93|\_C`!ehI 0yq6/Nޜ$.s*@UnL':7>uzfxW_m %.{ᛓHzvnx,w4pduNFGu F`= ?2'$@womcpqgeD!}ߗX/o\{IB97GVGܿq\\C -SxQ :nU ܭeߓ)XzVbKp`IM^w{o^@O{{{esm\ְzZp>pO[-Im蘡j7VZ-+;kZ}g?G]z)W@rMT1Q5,rK Ƚ=zz<w7(F:-rJm{lYn}KݱiDN0w,,Z{ C?V"|̪5O`{5XV%q_>b/<ڢ1DteVȷL0:a;=2[N'ɽ$ٽ^7:IWdwtQO>ΫQVM&!?S$od| HvV.kDVb #2');Y~7 HQunM 74foPx3A_Z Fvw\%/~{AZ`yON4\ B*~ lZ= w힆?تeeBEjTw,2 z`$>s[tg6lM.LwgUcCMV֊ [-PQSh@h%"R l1 "&vc6 !y%i;^>kC{vpsTC`Bфj.hO3I_IwH`my1-';|O 覢#0~%ErU+YW4{BۡĉǑNr]OtHokbNcB2hLIF&=@5r>1Qe乀PYv=+Ćmt]A'{Dk@`n0晣8!a9{>ՃWӏm#CSX!7 Qis莀'_Io9%ߏ~ǒo"5hQ @O~Z"2l>qԫbY{"9C{[W5I7s>_Ȼ(j؆m[:=G=ڻ(u2+K@cP5 n߱1o$M=> |KeNc8PvDCAȬO9:Ukkԉu8d[3s=ɀpZi|qt5jH0̨=Ʃ+fL=ialUpU wB $rL)H 螷';G$@U>zny>F.YgS}>@_(yIFD7YcWG`Oea2FI@TwkSo7$vC1xW;>`UњG϶IwYUOUykNqן-6gL {~ ˹<~yb~)|0.:hr)0L-J0=l`o߅z鳵=T\[m 1#~W- ?G*;WdF~ޛwuU:ǭjUt˵ZDϺ~nǑ0BP:n;DJOuܫHbs_rl ƿ7::(=0J#/AXq Flچ'Ib/#>HYÉY,da2ORm\w$qIhPlĒk,fOϘ }eɒ_ΝO_קfBW5ݴ1tc.??|ABDo;L&uZ+45uߑ&@ |$ӛ||eȷߒ|_p]y>3$*]c]g0Z3kn3P$'MPv֠ 6޽ 0TǙyoc52db9\;o{"#ZAΧ&TNs٫L{cS4ek.?;_-F}Az֍0B9aZ{/jQ+:Opct6SBCPִʡ3-4EudW]M%'98+TH(+Vn] %o٨8"#s{KUWu#;+u3ac|[i[@\Z"=&3V=/:@;,e[D䚠L@ѐb/Z]Mh6>\'HΤmaGȮF }iF.>gޗ] 6Mx2(0! 1q .aQ`q5 ,ZBIa,=|lW >U+py\ͳ.BDV~}|~>`U+/9S xJvXr-8fҲ}$[wɷ҆|;V|z0*@O&ߍUUQWWFmЯQAl?ȍj~NQaͧV]T܇1l`2f,,`se9УT@H$fffb\Nz㎌[yjA'z d~0Jk)ܿe?KyBrύ!bDO?Fm#{ȗQxRBMBq4W ?1 Yhdc]:(4pBhWJt<" k \_|JTUv>㵓8P㭞ԀDf]¬/d O_En|乱7=jS0}k;&y-Dqҥ^EWU_#WbWDϟڠYeZ"?Enù : ZTĘ#cf#Iir [2ȍM؋n5Q=|Nh TjDT$H=rùmedыJ0~bp^~%"DuCZN6ϕj A$-J߃q,ZI$2mkzn܁Z7|_<;#VD;8ʚDH,x ~(~otG% $fNs{GZ-agbGzR -ex;ie[`6`56uyb;{/PEUCSEqV5 sBe\AGV ,\3F K8eݝ\M@D7Mߠ7ad3]NV{2oi #p~@zsf>qm:St40TN  ts}kCuHD 30`|>p[Nor/R«6v0WFSX".l {«=@p KH>L" x̫r˨I-Ns6b;x_ْq>|k,;uCa=,r7IL$6y@jC-YxODG  l">*"Z$& yeƱIhn!Vczns딁 J$h2TZ03bv|+i~T'w}eTȮęb&(te1K9,9TXO zoՆ:[E&Xߛ0p+6ΧE67" >o)Bio_ %%}_VR}ŷw_w2 ]'#WEŕ@%UgUS҄OyIaU{߰; -${;}Bx\Y:qFw ?}F~@)ȬƍqL|}8IrMBEyX > s=} Kl~ |Ð)Om ZE2\7ĶS,s ؑƄIg`3%22nQ$.14Z?/P 7Da7s3 yb s~ < }~]ü'u,9&xEřXQbu^wubuA7%_Ա F#jz#m)6a4E8RẈYcG!`lmNq]sfO^Gw<&|qWqo# 6u#uoܐihxѩ&۟sn\߿Q~!p佄§BzUA7X}-~ņ2lEhX--zox4V>Ɍ@:q|5~gIr߸$Έ)sQ YU2/*NkF=ۏ>5^W : I83jvf-HQvLtagmf׫ "$ ~}y˔)|5۞ ħ#ϗ'$U;P9>g?_6m 1g"gk~ !3=}oы}\-l qk5[*I4"L>][.I>$ z :h"&3왉O8@!BD~`@ $kA^gag%K*AߚOΩl;*f8 D@`3AS $bulAXQ47-"Xj>E44vWxI|7 ^?zi7!n: ׾f)zϾ5"[FXc`V9OFVHfp}G~ñ3';Gdۂ$;M^h\Шޗ."G$Gn-8>Iܖ{V_64¿|EvDx_qV_@;dLy<ٍyoDn}U'[5n6/0 nm\Ͽ-ml]4̶Z|3*LNO6&-=>Y_D% R0/YW]6Nm@`Һ={GMhSѓM!s/~OtUTW63۽ POzJUwSOۄ6DTEεפI_}w,L,+: (x[X>peg}fV6UkuBPehHr0O3|f}5MYSzg5U =(GƠDJ&0wOzn<0Xg f;8vjc|n9X'd%[Îw{h2p m(΁r⚰5FA lk ÿNq\)otlݶTw8d 1(Of 9\3b3G izfh q,P7AT dBQ/m1|ΪTwD,5wb\TVt7,ԂPCЅeuEzn򽯕o6vN٬ Ig {,,5G@K $ªZ~Lo8d]UAͳ;?x&b^}1fGhNMmobwo.ށ_<3Mt#{*?7^aK(֨z[TڮÔwm=nNJ5k5FtН籧5zF1z8S jC ϩ1 ;V~ڧA`[ {J6oX`8HnmpA:wyԌ"2H+\tLG3zWlML}6\;A` Cw;|zk׍ yჳgIulˬ[LE=)TtTeS;u!zA[|eP:]oҶ ś\ۗTeJO ~sVE07NȲE&3e69nfپWdQA}j%V ZP2W KWxqVS<6A@n}gY .U StȞ^{yd B3Lry^nE@`JV$ }SKOIU2ٱ;48`={7߼f?HlPؐ/o-h=ϷY~p?_ gp' c6cj^p1%ߛG'xo^͟{>u_̽ef򜼐~K\g>/3gw!ks/%S/K簂gq{nz nЁ@3-ndZ o/G GuBp'aeox$4XL#pa1{InqIOژ~K\|'ָr$Af9;Y`9 8qBLvs"0/ =@l%sD,*NXq2m,d. ^>&)D_ٍ^dItgEpdؔ]ygQܐK(+p% SnkY_JRlX{1NTe&y_~_jUd+ِ.Ɏ>/Qu`3s V[p^]@ePglbF~=}Zԁ{+\k)7$ {A̝65R aeL g9MEbd$ {ae~O[t`g9p0*W@P1`D/N8x)1+i9ٹ΅a1lVpަ Gnzwsz;'ҍt3k/-|MRWQ '|'kKǬUYnގL; bƏ}qnr8ÁTR1ϱOR#Z-}z:Tٯd;w8׶>?b6^ϙV~~\g69uuY}?n"6yl 6N賾ʚ">U~%1/p+Ir߉e$H}?MAk EhZѫdNj8P,ɉkuь ;b/I7',:NҘ p5+.k/ъٴ, t̜rSb f]A/uwqgWY1 v-Z6A2jR ∢_BYXвYARl̯Ϲg9 ❹&su †WZu(~PYb%1O^ Q̨[ދ_ ;\e}i }D&xm*E?O?W]#Øhx k&9og<1RΚ$ bo0du5J먎B 7F`Z*#D89E 7<.Ą^t5y]?t W=N~5 eU@'I62[i. Ö6%DnHqks,Q:wާDM/u6;`! (Z&Qp]1"b~-Z-0ZӺЀ 7ߏe_AV6߲ű愉l%_ v0uzEAl>.煙!BeIX^4Dq>M;}Y3X!Ng7OƤcg?wa\kH߳t@ȄHc*:VkV΀';e?PL6 Ό.'d@3@9hjM N%F; V<`K%jz2; L^2AީGwE_z.ߙK/cȼB%gܛ.ɛY*E|d \ǵ-j-_q)VBBuH=/0W7LFgqEg]4g{ @ ‘#z(dA5{vwE*jQ'ٳ A=ZZq7d{֞id~cLG^SpvԨ#^}t#Mo-8PsX+dc-IdH L|&{sҋ`qkܘޭ($RcDlI(sHkvMCD'x1vے9ʍcC2'ɴn讴` "%G;Z;y{dqn2O'yHuO RZ=a5Jݶ(Hcl̢αEkA(0AR:_>RbvfYbܲ c/tu6  [Gaɑd(ȫq y%!Yoi_MQ2@jYfaL=gX"ңp-s}k=)"Y_3.Dz`di4kQ'*Hv? xK';IZsBe&[U=,tFMbt Y͵fp\= XƎ @ Rwǝwd5gG2Ț@[%P[{B%HHIR+\0T rN2(<s@vY=I}}y/'SWc&p Q#Cn. h[$AM' ltp˒`S̰ 1I\ѡB*1ia)˟>rpZz]9XczzL4"A4Q7w`αԆ6 %:Q4/_}GQfQc1G#]C;K&e3Wz@k|7n/?!_7Q=@GM#Yכ3uFρNz9h}3FQ0QmfgS!49BldX32\t@jgDi"`3D?pI["Tg3 I큦G>a 2G3Q3X_-~-щcl|i Dt-dtt3X[z5< rBEiWIl9 JI aאEڷ_E{Fj;9A8.¼!DB]gC(=`0bd;̮dЭ1Uk$sD۫Os}FlP 5k{NOqq7`AFF'Y˻ +-Cy}I Q;BS""!,#SLG]D2zL7:oz~o7J )FY^ݕoe%ȕ"%396~Qvx6Eb0cS 3ػ1 PIJ,!tdI~-{ۢ轎iBwE3@7uH TFWW̱9N8cmV~Knq[jcxFMVc(2֟PO[mzz#:73vvZL؏xR-sZ۲0C^ϠZWIZ#3NnjYK2Ȥ'8ךdf ȳ8Qk*:^w)eWyvO:BVɕ]ˆ?F:es!w8`%ơ^DyK;tT@I =v/ПȸRN?m@C.ճb]5@`RGNE~%$]D">Dq)Ve{qo~>H`jXllxpAssӉIJuܧf cG+FٞĶ7X H>4;uͤQ&8 pNiՎ!N^i}fI@!)s6_X]y \^Ag[eһov`6מZ<f0h;;(>.`o JP 0ce>Ynpu]Ç'u[ȶUu gۦ?:z;/ؓYkFh:_۩dOȠ+#Aᨎ . K[{)…"XK ,xXP#ZO}ׁC/ ])!{nej=]93߃JA 8)7&GtD2@f}]kJ$b_pw/ a[PHO>:yV4L!ڃ1!pdصkN!ȭÏ@01Ψw9Y5Y-(%92"/{~$ğWwh=8!rYa1(ANym#ejTYl@8>-qtp >+IՕm/IV%owmڡf o|O-HG¦so"ȭU4s+eJ˺򍵵O#qs|[_6A_|lȷFFJHRQ;A9G`UI%Lb;h|}硗⻏f:xnEMoog5|q{@3'%W\ ut2CʠC 8 GEMo0xzmf;i<g8H7g@"/kӶfm,g'ϧn KgNV {3AR_?`e#0)Gfd/0d:B6UvN! Вͧ#Rw %{W\8pP=cus_V)Z-Cc`\N .:4iT>8Lje>Dn$nؼ(ykO0Sݭ{5gYo5Ѳ@SrݬlfU?n׋9t[L~EH`dI ϓbv##m`|4}g8٨dre !G.^:74GQ7Xep\h"BQvZ SHn$er@O^IIh[2xFi!geafѳ /ke7"smo_ô1ɖg࠯AƠ(&&̂#G83c]k <ݐRsƴ0qSPTx<9zZc."2鎖vV  ^1'6Hᄗ3pߡSg1~jV׾Y=lg>ǁ@K\S \rfMF{NӑR6ep\3#;Ehr` LcIo( `0ͧeū5),hccΡ~lf}"0 sB] ߟ =rȜ` u42ʝ߽|2rD_)Ѱt\:Ov Vm+ 2twP;ޤ r6]hJ Nhrq? OeiLl*[~~H>NVwku%p..-T0εo"B {!L[3GR r@ ADEce.4 v.'|MvƣPgnϸਇn{4t8rsIto 9}T5ػB8I놤sF8Xn0Q{!3=D2!TvbɥdY;Yrٹ.Cr 5+9bOΡK6:(3TC@Zk JP?Ga;xcș5pNJoാ@ps_C,dp{FeWZɺow^AA.$[dTǏH la/H}|KE|4Z7Bۇ_9~YQme]L!dM+[6@Dutu3|yk#Q7|VsZ[8' L0}O?LD79X&c~^>7"=kFz߹ȱAu}Tu0 +!&Mfq|zVSc]֟iaF v c-[ mTr.7*a Zhu]Qp_>4j xImJd6C΍; ں3Gl5>2>9@pP  ~$mtcr3Dm3/K: ƙN`B‡fQgVrE'/=`X'tҕxt̯U~[Qy>甉sC.s+C>O[| vwoPacwU~u{ţM)]td^=<]8|ޔ##8ݠL\k[l Zo;0m!} ȏ @q|rs΍>ARZv&\?@7ǙSj#ȶмʗy#yNRt@wAT;4IKp k !L X-H֢ha1&k~۾sF| Y^`)3WNh :9} Mf& Fߍ=ttLOp8}_/Mhm^}75-p-[Ztg A罘êgѵ`$=NawNd0228 <=s=߹%X֘ X^ЊMɲVgko ۗZ"qȧ{{7KM(I;po|QB=thii>iS(6sǔpAP>D F ɄLuV &0GZG6I'gF1P#e0A=#E@a⹱(Ȫ ؇q!df[f,߸ŷ<30hfZr-"L9Y 3h\J8 $\D2wqr+ԁg7m ϷZ,L|| 1 [ ]A[ ռ=2܂A<[VVDbG rka[T$މs >C}JK26%s;&dFڃO-axeY'rSN rG5/zƜ"MPt'YM=D0O͂u}-igCANEDPN)aDn 'S#:rlpw\ @RHSAd'X6Y+(mlԜvrs=j DkGW ȩ#;HL7N}2)3LPT@)ۚv~E|%|KRWcZ/e̢0a27D@ \ĨY#R S%=,\PTS/YeOP՘^k&2 Bز:?$(j;0ɨ3{rEkd;eq9 A({ {^s̠:+Y#kPF8ehY(g0[$}c+Ӝ@ >J h@?3T33 +39չp-Y;,_> ws]g=:^$l;u~u.~g8xRڃ#>׍dz3yg8s9q}{aܫ\KS|vZu@r) mI:2`FWw1jCCl?ǖU ulP9Me(>o0{ke3q[, b 3OlfWiuo<卬8kƩˌ^ E[= JOR﹒md f=|U -Q @:&!wA;kD(cA)I6'.Α@}ڙL"n5|#7u҇ԑi;ÞG8tlE$pęq(eL%7wdD.*'/R5Q>K_͠ϬcUH<2 =-aؾ~%rP&(ұwdoV'Խ{cl'ܡC HZݩc㯉NZB-='>m !QI0'}RAJeNxn$0DZzc!6/]>'L9` LzO9ru7tݮ#qxeisg}#0ŽF"H>tǘ(lvWUWWwWdFF#i*п]ߏ9`s=xK1xz' bKԭ6ߜp &pS 12|f_xy@x3Bμ#KcUwq;Y*,*Ö/OaIWH%-;v"sOMVAV@A[^<% 61&^ם!KgضVHuX?IEu6s`q36+z ({+޷ M~Y,A6@ib7-9I Ҕ(Sɩ\-pH<:g)|@oݷ!{{/a@ h1&'BaźT2GQ至 N{e!6hlit7*QQ|S)7nJ]SUk鋀QX-g];Nxg\?~3=5waEcl ` [1e;\i3{ ߀ >?`݀t<q}'i#۶.~|~?^nDyţ~דՆT//7ŹY<<˼1Xt_Fu9@ҳxȋg%~XT?ZD;'vLQ@~-J0d:p5;SCgڴF풊M1XĶxyԝI "Kry\B!Rw@ߧ|`+|B>+_fsSK Ӣ߹qf3 Ɲs}駳5 Kbrg¯{Zghq;Q BnG-ЩQ} ؞`8Vpp OF<5ؘu>c)t+:6m;1]) nr0<KĩQF}PVVbx\_+n꡸^d11Z/2V=jCir!G 1i_:C}\nU3՘@6.j{͉mq3kVNo@;XB)ĀwAoت]Y}mO[SbX(=sqډ Vʾ63>ky329;Z39a,{PouuDؽ;>zitmd4K'+%ں2Ii*WĻ[TB pMMڱz]iRV bd~Z"֢fxECagvjxlU] RW?1t-LͲxCOIt~fu~8K-^ j%ܻ= /hRYl/4hQ;eAJ; \6lq^:(6S|\$D],u3/w&\ϡV:R:/r 䔖1܎+0d!.0PQ8KRPK"4O[o~ 'cŝ(nK5bNϻh#}ԕ>{zv 4Q59,n Uoi0 :6q%N;xmK%}{Sm G)<+#}l3chikDžmSg' ڀ*?J/1RsWA.k[.:^TdO= <S9u]Bec)`(>?bv6;~wۗSgd}=yw(Hs0ӡzVrlLM˶ aA(ꐔq;'&H+DF(Kf`u'{Wk~vǍXU@r]k] B!Ge oQyX$Rjh :w^Rq,[mذhp&y gAFGD( Rc mdak5RWDX> avk>>~-@|xr6oOg32R 2xmxz2>P1PX ӗ5^ nz]6ɫ?Y ܧThkT#}Ci\;dly(N1mр=~n L=γ~>Vhxĕ@K%9kRײ__kZ|P3{UuEZXĵ;4kb^ UlZB`{B(h [e npP[#O.e$:y*֓ :W"ܰĶ LaUy:(N3ؤF2bXPQQ\} |Л ܼp[?E z;X($8Fc9i"i\qTX9&}C '~iύ{'S`c+1=s{9X ^(t!3RʹWs!g##L@K@T"lSfcCǔ-@Nj6]wD˴B YZp ʶP V'3*9`ٗG)lj3d~;eO[?cO]cm3sNS#0e1}=ԳOhb1i3,cIgN4n_qhzv+u'{RO7u`d*kD^_,{eNwc'೜iC2#:zcٶPR6p3A,A(@~jŒ5w^֍€ʠʋ~N݁6>L(hR>'5])TŁ/4CĞOQό t)Yg{[ꨦ9wy#&!Zp5[PcD pvj:y^LamY 8=\{o\ |\%ngIt);ΑHz*B)VhO<3 .Tbz CKIvDg.}0O'jSuྤ ?&Sv3h:΀&>SYVϕa ]u$(O2zWOS#RqTzp^<*k[e q|td\Uv,&J-hiW>h5{yI%eڦN+z3>{(ot^wo3{Wz]Jd x?8 _xu{ӗPicm YˀM{OFik l]Ν< C<PX7nqHzXxCGd?RMK,,Gg-|sVnEy:נּ1>m  c86> ce%[BK鳼ߩocOia=.9F@W7f>uY#>8y  \u W_ua3mt %ڧh YKk|~bІa-R:|.Vǚ8u^?yMf?A\T.-)9UROE b|Gp(J69HO|SrU\97nO;k)[sO|_XsMh>[Nn+(;^4r_r2Eԝ=3vw@H|oʘ]ލyö Wם !-}C_Ԣ{ +"_d|S"UV^v$iP\DK,0 %/uz1ea%ڊ괯B>'ҭuN>UPL^~:goR$!uN 2PsP߹yJ8I|[aSmR|ym"hIśzd{옛9q6Eu{=|>M}_izS9}b_?k x^8] -bd¨g"H1#:7Ku~>羉ISW죰OP2Eiz>r,ZXx_9#S%y1Kk*WvhxЕᷪ^[,bq)aUǁmd9(TNF "ϕ{jv=!?ĕwq,6E'/n p3XK <7(`R_F-HG=rl"1Cjy13Ƹ>%\vŷG6Zla Sn,Ra<;:+B} SlRvccCn0s٧ak;ؔ-@.{;79R\zӘxkJ(ę*Śr>]AQ `P$qtf‡0@q(r RʟWixxgl:,Y]O.ot9i24GkW:EC}>K%Q~wꃯ7VA|9Ns}-ҝS:7;y_SJQB$"X9Goԟ>\Mݥ 8X;76}Ѝk1(Џv){3yM<ڊJuenf1 y~+Qߢ"~x;s>g(,v[ =V^fX ]YCWO|"Ϙ{ѱP۝q:=7d1Zfaēb u.(٦Y ̧pwekA-&c:C3h-x1&o4 0"K7; K;Q~/>bd g__ \13 Oߦ\R1>Rw~|^!47%jlu~ [a'$=;»2ޗPگO=L ŀGmG[엘o/8Ƹ|RLZ_Xo1`(-ޕ [*[1y lF`:5g{1󖁇ca[`8 ò#TII+ k iΖpd8[عPC!ĭǁC⭥%b"&}DdT0X&Ce@>tг MPzʩOMi0o@ZNV9NV4ռlՍ6N-a zV9s@'@2^-Fhe;@Ɲ)Biw[M XpY^oSr/^N$%t3 ݞ,p5B 2r0gE^o o ;׸ xە7n|8z V-g7x{yۇ>?ۦW g[>ir9ݯc:4 sSƑ0B0QvR1|liݪx*/ VK|7o:<(ҎR<ۦmy|!8 W}(W[2&mci0W(ږh4yWeem媮^{R,7< _-Wq=CӢ1UCgL/ӞD %1<}72yaFr0kcGձBk6I=_|H|.Gl"dEfd?GmiI>~MV㹻؎1f<w]xI|Дa*nX^]_%p} _Xc:&}V%{X\9〈-Qܓl{yXoN{QJF.P,!˚(jP1/oa]Ǝj%53m,c *Xn;~xs[E/xWs-@<Ǥ?fl`HׁAggm]yp]c0ocTXr  /Ġ+e븞s&d~cyC@@^qD'ެep$ f@^Wb@7,bsW-a5*vn7gb:DjۆEw[F<%#ӎ)|%&W.I8 pCLjB{-%#2㢅J[a\bmS`@JPՂ4qoC\_=-n53jjQ&Z:yQnA,[e.jsc-<zRۓB3e/wQY :PalPYw+)S kZy9^Dʍa6(*zSh[SXSWN J Tg1`N}C2oyIۭ$&b ic>-m8۴颤J=tx}ԝģN'NXi.s|˻H}R]4`xyWS Ӗ=Ҿ?r0Qb4l42˲l0mu\,0bTεk<88=caN%G2LOi=FgS`¼-yҸ){(zR/(OL4+1>brP20te㒥<g eqM)OBzV"Cu6:&΅3R<@sŚmG}u #Xƍl/#abJk~pzg-,X!-kf:.h:KyjH&2qϗidcasZ.s%!;)ͺ4`rksNj@ P '%$P_nRF(fJA^p@14(7mݰ(Z盗cvEq^꜏ccxY|`PToE(n;}ړNJ Q}}DTέn_bыNx J>p%'L%=K7:s7\MȠ`NL,v'l;xnE8_ 5&(s6 c!>zEqqnrA9q|0 `u~I=}Ptx~ 3FdI{#g?E^ri*T>Y=wJ[ݴy3:) "u14{ m:S ["Zco GǸQrb9JX!)/6Zb0xEi"lX{)a P{<UuOɳXL -vLy_?P?bxqq42V]yNҙ5=ael• ٙsDŽ?+@{CErhsq=^ l>b!{yG1D9K);ֽ X:=̀u'kt:[? ԵJek㣁Z}rb/V`ί1]{={疂,!{TQKL'BoCi&ğ"uo#|&Ģc^z~Z@)ҌxY Ȉ5]4-VU,KxP "eIٖ؏g6}]?zǸLc0z4lȉ9'YN1pr UNMƼ V1xg[<8I,ot QUfqY1Yn8N)G t[(b>g#V~w4uI ,G!SR:Be(]<^aijHgƳɼYwb~PP_cBQ G~NLs2q%Z϶;`{Ӹ,R緖hp`:/#cQ^83KSldbFhL>>:b{IB9R%fmU FlXs|[>V|M]Pc^̳Mv{-tu `5O p |N';1S5{7j~9Ky B}:J|/Y`M_=gs7W]@rvS H{b3SczCY?*l\ ȷVNOg=jS^ p/Fʤ3u_W[pSggW}?7cX!cqv/z*',=vȁvA 'zė>񵎟_wFV(jd 0Y)mTnq؎%R5Fɬ ;p:8tF5 [~Y,qyl2KH&`@s 8-5؝v= `9 xX$iS CBx/WuyιY@Tҟ/UllZ==,ОДP&X'^w<z0. aZcyWn?N5% ̾#@b X72whmu,dP0Rk}Mk=$2kjXo ƺWȳT1Ş%iݏ3:`/&W[Aޏs*XW[-TCSؖˢ}2h'S&/o`<SiWMG4^-9t=/ulO,7yg}h8Yk}_}(x=8_~ h˶YXǓ}|vտ;08/ 1s9>e Q=h͢%`X Cc> ^[^'GNt[Y܂po;t1hfcK[.O}\wߛv4|A=U4A7eڂv"G/đZ!+=^CܰbxnIh(8}AFs%h3C&[ {! K\5)Q89@6Obh9go KG!)`=;quǽ3[~o~ !z֒C&]4mp1`Ǐ X)nj9 #L;ƥ f0cem@[~; _Y-\SrcNcfDOV[rW(ZeDę?xɡjT\ h1x@ KM +/Xm-tF1xC5Ebgx h70>LYxrL~ɹsLsZϬ83Vј;MЗʡ/j$]) Am|T1yE53(E*,CMġS<𬬩{/F[?`sF/cE38RvtuEIR |3g{HkH z;v?N*9?UɳPQKLN~u|k]BG홲+ N>=*OyQsN&'9E)(UK%[ Pp`lH`+(l`;mn#:@cw?d}z'mm,C^m5& {}ԗ߬>)\u UڸB~*u<nC :sߣy 5@Iİ*TNg}:S[f}\Lx5g `_1܃02rzW,-\[ARVk+`fǸ3~V`V6q]W' =y3>Xş8A)\& 5Qw51p?PWvVfջQ^sbQRljūA@U~d@Ւbi|tA05 QDmSܾ<,2IPr% GLtk@W)w06_ ?rl>6'9ƂR$ngܞ+ez}Ŝlb+?,Ң+ygAOQI񏔻m&L s-+`~nފgӋɻ %>翄.u/ :Ya .4cf_PDMjީ:/EbT!n?MS(CE/p xgsyJ<96Rce9%,dH}"+B5϶ZoQ9_@ښ:m@;>ȴ'**ㄺ>ֳ&<V)4dEv;%ICXXu֧\4zXapw>SsgIM]ѩПyocNGTKV\ڦB.@pɛ(ܪ9cgcNbtUs;V!a?I/MڱUzQYX/ZukS+Fiډ8JHp,=4-&s`a2F!Z `fu,zKNŬa搇:7!noEM %C xwӎMױ%c }Sb[pdpPc*^q@=OEjDWktEb{/ls|Ni||b:yӶcrSѓE&qZj2[WɃ}-=3Gfd"vy{)i㯀c IU {(Ox 4%E,N|ul?}lC-zNKΊBzJ[y?YW"Hu!N #$𤯸G"^~{;G!GZo3=O`M}bCxnǺhJ˹x_ڎȴ3y AXTpj1Oм?9W9> /"f4LCI \: {u<ʧPX2 ;ɽb{:4C;1E9QPq(Y~/ SL7<@U1?/S-j>XXzR:?9!;ZH-4)α`;ti =0"$S"~@ 7P;`Nq(Me|G9g&C55zLES4{H)1x*6@nrqtp;[Is- X 8\@YiS% Xp+=:u˴r]szٿ!u>E>_t~ &.}nq:!Ƅ^uYĎ1@]*039a i?F1[&Eٯ<1MiS@>qA˷g=˄ %~W'|cv4}>uk\q![,j$g_6džp_"ZrգV+W_Q)˜y)q뜢짔<):͓ڦa%Ve='lnju4'8B@eTΙѠ3kzL {ཇŘOs=uJso_ݝ5&bdTCv eeI3'VBVObu)'߭*С?l{`'3?`Sg.mj*uZ?bu-nrS cmӗ6,1Q(cđ?w,!F2)(FqJ_&wqoG퍉LVۢ6п%dܪрq&)|ףTSl2e{ sd>]/42Ut ̂gp@vzum ;S7`yun6|,]>}:ϔi;m5_0qV~맭Oc8ס>q^= PgO%F 3uxNF(<0G6u8>Ʒc?ˏKq RqNɈj|9wӕ΋?zO 2WPrm+Ti꒮m zYhlϳ|1 6{MݾԨ}|MbkR?v>,ҙzr.K-?7=1"{#6 Msnd# m6n\qVSטm2{XI?r/МtfRLJv% KhQ3g2G!}'`GZn{࡜"5vKm{.zbÉ ,cxkmfOYr}= 5񵌲QSg Ƌ=Khp+pQ4@i-b0#Siaesz|FG׭^)Jg@C,(@)g:PLM>xU@*`Qk@O?38"I :g0FR u! 9޴M^v`=SNg@B9xZ %/zwoh[lpzS÷L ݙIqg_&LXs>S*te])>wrKx ,m= ӢJLʳP (;9gthxsg S R'q_CA[πtSwԟ)~s- r]s,x˹xrn /6<^8,y>|ZMчQ1mg} ,Cy9?gcS8dZB{:- bգ[lEIЬx/Mt=y u:U–wr} N8Έ_N8cW# 7j D4\4@ucI( :Zn, rzP2Os#c6xdN N,滜ϙ;*Gj#6X _@}e0Ӝg'E:Q_c݄ 7 gC0tòq\YD!<2Q7T.^Ti9Na!^щd9Sm2RS TezFK/鞖 ?iY1DK @0H mRVY')FC:c>S޶X%PCOΤ aMWnC7'] ؞z~s|*؞xԭg/Z# HVA@OmDŶwE~ޠy߀V󠝬{1=Z6O8KnU$RT4u-Eu ;Nҵa˞ Fadžhϖ(񜪓] *Dl ɳ&w]1c)Ⱥ+R~ik8lmDvٶ@zQh6l޿3C) 'msc/-||t8N:Q?Dç i;=ݏ{ u‍`\'@Jer ] +\q1cj2VV )d=ǮǬt._PuzVoURVbW@:O4jQTmCվH;M;G:KznbWJ ;u1N?tYv=QH~.oDicoQaE1%/~h:ʧU9T^i1{8]cw`\p^Sy:j#OYs H&!t;v5^+F kHi5 ӇOߔsb0q¼czbktDf@rYߨ^׭b瑐;謨'ͫk*HyƔtjQDK("-OxFLѯÚH_Fݜڴw?k1vJʹgC ׻״\{NY 1͢ؾrГ_>F> fnFDGzG`_Twoiz&ٙ;EŜ K{,ˏYfpAԓ"^;Tb E&P<>eDފ:3#9@L?0,5qq,Yyw Giޱ=84/g ΋1 9@`|/Nc~ UyGh|-G+E$%JeS~+=7|{`D$us^u֗G:g vQӱ,5oF?e}۲ &l &%WkcƄ 냏)j p=c1 &g§98 [߱1;Ĥ6=S)Y%;u @82LJ[f{h 2(iܨ[o&&M).6^2I>]x.[7W]\8퇼%r5c)6wqhy{^N?W (w;m`Rhxc}=xy LG=!цTŲk6„)!GxCu^8"nID3()5_oV4pIhl(s]`(6[ѴP\1 -M\`~].dݝ(E|̟QqTә76=|i@qDTev]Čjs^ke˳>:0W?l>cm9}Iyb$?.@yO =_q6q 1ȻQrV/VK.^S-p|,Nև/eK+>&=Ln3PmG~yU]P-z|BrRq\ɥc]l2v%zR{J ?yԗU%[4}`t2n$um[/]Ɩ! 剬+S|̓;f)^Vgq.9TyսcOeL6g=׿;5Ss>ٮܧsN{1# >QsS) nϻE=Qvl/~C8`b~_ w@sT߇Pcddia(w 68k[6i@zBUi_WNʱ @O ~A,}Yr/h-#ږ(ud2fh`^QfE2y8QF e=3"qt,2L7-`{ t)e6ǑtxV i˹7=E]݁.S 坙0T3!UޟەδkEtgH ƒ|峺P:>O\뇽d`N|eR8:XU0j^?#+"+uY߃[PEf<֩[t`#;ku#V ^ZRT+5UiH|;rclt.! ށ)ky9J=d<%R<~|1oD~bu/XL`IҴn8?f(ݢmId8[-ߴ‰\ &BA`߹>(3d Wmj+c Mhw O 9fWCTr P#s}%*O;z߬!b>vڤkrlWD`@?`~ϬOt$wy9(XecT^rg2! s@GQ n[{=JnlA{E;ܓxk&[ -箾0K^鱼cٶ17"^^8AEKĺ $(>mpD37-9/>D(zJnycBk^P3xgRm:",8%$2rc*,ׯJܻ1~ØR tђvb6)SUqo7,6虨J>3TE[$*.e Nj+o<i2[T'Y[ *`WmuG1jwI³y=K}Y\-wDKPpm WqvZ0k@$\l·D71}NzܪÄ說#1 f|(qVkkz;92eԫ_?PչEY9:@Yw\Kv|<]N۩ R销1Fzi[EFdOrUZ$O, \e@'lO9BX WMܴHT&"o3Y >D%y7P-=r)$'D8㦚.0}3f;tLnEi(-1"n7`H( t%WL=3Xsd;6YW@s `>A`9luL.62_I۹<տY<0Ba }HS/@*a7!E2} ё}6\'^)`;lw%@2=vdf|2o̟r(2xTGFcu8^aJTu՟M(vU x:D*4@ jn37@eKftiȺ:՜gqοX1z)g;' a]ZYUa~7Bゝ,#r>='` NZ1X_Ds=[ˌn(ÿ/Ԛj~ih!\8k=_Sb$3S*{7Ey|7@r)W+9]`ݹ:(!O+ DY(&o_+3U4.U@Wx+xx}=>w-xպܯ}r=?Qq fy{^JB4/Z9Q"?ZFmKhuXr#4mLAw Ge]Dg9m\એTOCK5@2@Z+ Iޏ)VhܴSmX/[`m@3-8fqO[pξl9p|7O_|$Ngg'ޙ/ "y $wZy\\JF<̚_ ~4]R  ;)eMTrJY`X7\?Ct9왞ڴ\5<_Lmk/κ:_J"F  ʹɌo2/Xgy2ӿ *ٶ0'0W JXJ)6H[S!qmx8>]tg1DeMo0tK .Fh%JQ~MB9!Mղ*x*bڕW~G?z?zGRvt}d`R]ޭ+rqNRb9}tt\R"a)z6=_Bxr*5dzYQOiԾfeƿ~\}q~A /i"Ԁ) 5.R^,GCY)7Cny>wV TuZɉeVBd_󒺤e ]`~_E[LT.BLl yCM?|Ҏm,!~/"h'f@,=$b#qD[v r"=YFmڭ~C>8 ȣ>Sud޺'.V,^Q_l%RhV%O;~D1w[@|FE}Y];7'6Uo8;s˾.Εs}` 9ϻAY? R )e\``b#VchPzȬ[;`ӠOA;j O}i X);+r>e۞RXeE_8kY5KIUϜy\>++ۑu]QhZB :ˬ<\jכn D?wuXlm01KhG9"jW-`;RK[92Ыxi/U)&à+8,`5UfN CYy&SUai='9^F\* ݤx Ku^K3lu |K/?>~3Գso1&vc?c}0͆*S^HO5EM M9Whι轓v8فZ\7!2ݑw>n|t\؊[(|vyώzP-X e1JL;GW{(xPֻ gbZT'9+`4 l08o{|αDbGDٲA5?@ SCM Z[ ܪM[?WVB~c^3\QI{'`ۜcl??{(~ G@KݎK\y_s}m=,n~N *8Nb7p:Jt"1א1n,zNuRuvLl5?6-*G> *嬟),}cvZO^Ȼ =7;$E_wUw qnZlN)66v`=Cu]IΕ0ٯ  di?Ʒߖ/Rr7wd9ƞ,. ogƮ$v"ZrzikW$v?h"h]A6K 6]cSί~3X}h4]/s F3˾:F &VH%f@mڨ(ylxt\s~7kw ;:E[qʢGO@zM;@")A&هXD+&Ud @h֊~~KW>z"|Dswx:G!?(ޥ^ǟlW}pnf3ڡ<r>}u|<Ƭ l{2w~]~d_鴁0>'[a˳ t@\Sw:?N"PAȖIbwlpbx(;\Kq};A[?sߩ*+e.<>2} ?}e:VbRZ,lOXq>4ElÚR5~7VyF.'Z{kVٯ6ߟ~o|ZM\UTQq_t`¸=JԯRz`̴ۋ`gݴZ@ Q~Oi ymw9F,Aaߴ!bo&.Y]Ywq,9o5EMݦ)T[ 5lwGZQ`S`YV1S͉ 8߅-N|OSf5\a xv05 Y9}<ۧ'l?M?Y?O8=xE1 P/Δ߬#8saw܂C%Ҝl+d"۞cyHX/YmH jIɷxh3ŴO1 a[;b[%}\O.2ʶ|V!x('rHۉuX^A:fّHR qJ(]`kSyGV33Fӊ@c^jWyzNkNc/-Cd/qh@v19ELXT3x2(JTC1DqĈ s (@Ԡ'p Eio/}R,X;`[J))ǽOV>gq蛬黿{<>k=Y_ *OpEYLf̠A/;? r d.Zj-uxn-rͪ!ne‘!ypC_AnyxomW]O?8s}?Lx10~RTqU<ʜcb.ml9h(Aq<wgP>E 1?/X= %t˫ko <(Cg&eo)Ce uG mkm9Rb/Ic(hl4ZhR 95`]m 9@(}U:/`SYF,ۦ!؀/]@Dk Ҧӎ}wӮ~b~um9V-sM'Qmsڷ eE "W҆m-U9nOy@`qjN%AAP-;(?iӾG+7CL1rpGgr:aT_7u{-yul^H>XһLLF_6 !<0}Pu ߴFS!70?eq1?a0Uf`ޕuhަJ`@o(D0 rꔷy2 W$ ,Ǻث,VRHˀmDT'pk@sױD7P{NJN_[=zqN mο Яc{{:} 1O~@m(R  .LA->9k}Zu{eE%rֻ@eS|jViǴ[}3QTGg$m,/Ņ Um*jn^m6G+/ Eff%ˬ2?IfQۮ-iEIU} b:yGߒH:t9y@ PKPc[58D5UՠmnPH֑z!I-W]ו;0g'%Ԫ9<|:WK ha>Na BoB@duv|khs$]`18NN;c,8Yŀ|a%sЇ$?ZE5# 3em#H&Çc0 /~)?I:Z_?O=z+Omw·A;Z줦i0$D٠AYCg%٨K[ai˵﹎l^e)/+ܓ ڜƎ QMزekjڠ7)tQpTEi?i4GObC  gݠ~hٖ5U7_}UWz>άeuPpGeZN(mZ X"(۔ )fMgDQ  HvPM؜S_S\mzҫ_QtkKDƉW;W;QHO<#8 DO{ot}o\;iaX}#U\yC6=qdt<"a 1y+8~XX=Ōm.1)Yn..h_0]X;n }frxRN#8߽`SU:\]CiYbj(\(`Ŏ= S˚#xm\%rw%o9~+uҋ&l(qd뇴}Mۏ!Aю*}(\{PMs:&t~C=r~6_˴ z#o;=󺷀d;9o˵QuC.4w`e}6m샑fBo~/m' %[,.`J-*˸:K6x| ˶r7apO{jwX@98w~naoy/P>^)#܁Jy EayQ}%(`hb"-PKMoVάmVδ0a&M%(,|f)k89u 3s j[: \3;˅q8'+L XJG,L=2!,}IZ/?\н^<T?E1mPQ8 HY1MDcX1_>?(6!dV}4џ [ETZ M'2hK 'pM3eA|-=ySٱoW^8FkuX~<MLɊ*`R76Ϯ/[:X(|b-P؟mu?oq_(?._d'8f]?b;c8KENuX]`wjȲ9R6>sLi[߀x]{[A}t Llu*݉[F.Z]?% _Z( ʩu?a:=euN'k}XPz &o8 ,efocQUzb @7ƒ(Rf xǕ'pq6)鳽="9}w -|4Ԏ Q\c墲"t+&A b><8oT#%α"uԓyzPf}plԳ x?FLٵ ?JLۭݩE0Dzxֈ(r%T4^(_"!:)-?|{vZY !bgMqͩg 'M}-mS5g'QX=n '"A`dʺz{PꙓYX`s^v>Y_9ŜUo?s_;qݏԣ?}P9'FAJYAH"BZWip]:4g"]x=^bit44N rDo*PO/3m4Qs@(w͋i:fu0.'A?o纮my^igpZfٌA-)F"ZRjƐTЀ䛳~Eb!2:ӕj,TxO_P'eSrv7`PD]rCOXf=cm@79)@m\HT}׋ prݜS|KD)7G; ıx>QU 9䴯]&c/ NIu|ozD,m5}%IW}tʼрySuL<R՝J"ݝ~e𡞺T3: XUf lzHN,xJɼ1 30u#}klF032 vρ@raf;`Ә?sS)8"Αoqsf"B8`$xy.t=/*1mh1)TGЩ>r[̓U1S]:yHNJ -`\,]/p C>/^>lk|4`E=z=H@>|PY`Ǐ?xgQ:Z}XklVw`?)ZL^< GL =x(ek0E" N4`Ygu䔯zJ}ĜP2uׯ$SPF"umzGTDem}%7\i@Q@BU`v U֣ݮA5[w[uY9Ϛ(z_@xY-{<;`= 0nUՖ}9us,79[{;mq4<{-\-bs8 F9TVsVOd}.S&UDs }"mgr-nΑy(q5ͼrճef tSYJI36\la=;WN\ v4KVJ"$G5WbDIk;5_5]?u^`<3ȭiXnpMJhD"'~ 8yl9 ֘Qa<9xYOQWFހ7٧ӏ>`ec:gk?b6u<;}y_")aG^D0k܏WDQYQE/Ss-]Llmsk*CṶq`F5+@T%'/=]_8$F1Q클c$mwQBAR`R 9H6#xeBi srq`T=gZNI:_KX׀gƫ}/VmTuɡN%h%apFDѢo{ň4HZ1<"n5QIZ&/(Dͫ2 Ыml,ѝnCH2mȷ)YC ؋uTl: GLgMmtkW_Njԉ*~H\u]ؔ]H+k>NzeIca>E7#5-1}|XMHqۚ{켈{ffOmuokN@]gYjLME+P>.vHlHT^w0c0JŠ`RƺbIPp(0汃9hf=="+2%M^!Xm%v}a'/^#(iK)~ QI5?d&s=+lb|,xV>P!1}|lm'5# /f@b3 3A^5'6TsQ^ L:Ntt?OD9GaP@ h|mUO;>|wKcbCd>$}vS.\W;{rNզ\SWx}ѶRurQj]m[ru~ l{: `*@bAy`z>Mu_`ܤ؉c[[ >sYnTR#1YRni P'Ixn]q}R>Q"8\Ö !3%)΁&.pLjUNE||û;e\1s=72GLCBeS4`;,+OcLZpfڻic}OJvDfmZS_Ղҡwm[kM)Q׻|29A,$=ba>' E(IHw'H\r?{h|sv}3oeGB ^<ݫ|?8t#e|ouۓ~.Ne8b=i&'Lv\}Ro`6:^k@9Q3c(3E&BpxWO~W>* v%/LTmP+`y{/z_\Gr[@x pCݨ%l k9LqŇ"Tboy^ƞiݠj?j}M.@ML M?>"F_x^).",WZ#>LĬ{@mL=H8V 3Pc>FSFc;n-jo{?#}YA+xCc.6|K*o;eY7D+j@ QmH!ϼ9/}uDClr]d;kގYR#"/pv^rҧRmkiT) 1宩%h*AٛXc`u΁7cKc1GRwkZLMWIw+Č=`:?>+Eu;w.7{lG7  ?ˁS; > ԃΤQ'm4QKFa,;I!vݒYX_E@}L~yfmr圓<+2ۿ7^pw2q ã/̦TEgG|BAhK Tт|$BGcVa^J.l88Ԝ+ZKۀ0Rj?[^?kGև~K'O>W{oAP djyd$R:`5TZQ [#wD?pOGTNy+Ms*㡿!N^+@:䴞X-Lmu~}T-`?5#ʞ>6 a%ݧ"o n;騻 ;7duFz(Y~aG u8d\[>@cQ8)kp Ӑ}m u톈/'<2ӎs]J [Zp0Ij6$~g<(v*n5F2u^-BھDph?ꝃIGn2:T1S=W 1^f+<F]6{X?G_;H+4_& T[E6`@"ه7.8=zzc8x=kb7=ȏtRhU%TcR{v\zh`v2ʡAWF:_ƋW/`|ƥ ؗxpK;7zrCiZXJuo>HQh^Tw t?D_,6:DD.$ W _?dY~`Wcm@/&֦ n7BlDXͺ NK}}k对q<y{fi P#Nci}g }vِ_S5ez@Dn q@i6cWgU'NtC8-C-:#yU۵_S%/|9gw8=Dʭz,gǵlm[ި5@Nó,6|KM)WHw8ǖ-JB0M՘ < u_ȅXjg~(Pc3K` *ˊ{ PwUtȮ1L&!cژTS<:y GT8׵iW7]ߺ ^Ow-[E (]Ynevʥ_ajQ?EkkWl|ç/W%J [(&J͇?Xkl9VǂEi#Wȓ#,UjD+GWB.겄"^4^s 0 $}T2`Wr̚}w+: }i1[d1ܢ5/\{ ׼QÌ[.i#$]ށ9)?gCL.@XJg{ږ2;إr;_*@yg*;)c;bq'M˱ xg;s6 Ncl-`P :y).`GꎧKoL3 bR[m *Rou`Ri ӯ8q:8m ld\F,(ʶtik,lgY*E-SK 99ݼ)V' $7==(AiA0ʚ?L:2-%VʸښJl@zgM4< >8">_TIaf> 5l1.1D|, ejP^ SJ-uXAo \w;)*1Hb'-RNikkh$' P.D"H1H99''~!#qw>OɘYo~~Z]x<3(/ܘD$0[sKYC}b_8ICM.Q=E?rfgo|f8&n>?zFM TڡnAg`M) <+> ?*뢯O틐VNuY^ARr~1Mٟ^O&0X6Ts@&զ=0F,'=sZ8.ev+ `մz0/gDaʈU@%7>k:="t膈&@h*\T[ϋwB/%i{m;87۶D%J'>K5T"s5Xek{Mȧ63=~v3ncp[e!Tr.>K6x;}Dcq4iae* `$MᐿksmSvzzdatd󹗁.Q~CsndVQI31$́<@z|ss79Є~LJ{܉g_ 6i☩*-}'r@ %$]t|p?\q4518X rZఘNۘmbϞ^kPLQG,s3X{ZՕ7m'7[T& !KD%(o^6{;뫝ۨCSNٕE%m)DTS+jKNd;Uu xp \b]FLhBq/~^_I:n 7@P+?zJ'=>WV}0)c۰ꫦY{I6_Yr_8]cYI4e"?vvbyٞswSS7g֓i+skqtR!!&$FSAB>)9vJHRY~Gݛߨ:ޗ%6׬CJwƉ<>Bi0P'OʩX^ml8]0KZ c $BJc'"gWZ6p0 3dyBZ\4x92[Ip:^NvU3A%M7Ohk5g֯Vi 6;S?&^|.:M[O@eYx0O(.džz/Ӿ׾f]xӃ ڪg5C[%%TG6y69~3 OD\m9r$6oIyC]c}7MCeT{6=/*(g;}wm~Ei'Em[O?S"_9]>Ew?~{2>1SC_oىqΗ~J&_'N$߻=5ӗ=iDBiFY:ԩOp 7g$r19JWzE<"S_2g~PǸ1·>Oyt3^?Y#c]cuݤo~˽ ]tbc @v槵ݏ U8pD^;vY"j۪tv N`,lwj 9DS,@we8m%=Z)/eBCOɪ^֪UWyP/@-Z{V}OsMս=nmΩݝhs ;ƚߘAm%*LMpO8w֙6]n1jgky^W{cJϔ^O{ղs[vt8P ȹK9e\U,0"J·@,pm}"8~~1F Ċ"Ugngm_i2V| Mh@ Rt: )*S{JTUM-u;ϣ{ƵK7$t ʹRKW^9qyΉaTe:~ٿUdǞ|'66g^x}+ϼzUb߇2 g: Ͱ U24:;`pnͲēe>g (t^zɱ߻=?=9DBKϺZ(ղۉ %7G#Sz %8T|wi,L,M,Ju'?'J;XLZ-(g w)g۰>NEE ר;ܥ(~V rN=qFo/#rU1RBs)? 8me=^@=A'-vE]/Y͂0 MY% J55SY*GMxCAùd;up-e:p[01,6Uuc+Nt%+cSb;tt%K =< mcGq)Tuh7~&ʄNqe2Mᢡ{ЮƧm.^y9n"9C qUmNBS *ʽDĢp=SG=b M0Rޛ/q<؝cA|SgK 8t"kOJu\捖)ox.\gu]>h!<"ϻ?[^KuC2Xq7TF"'7m=Yw|%ySi.Q[bd{ ]t-fu%D?yc2Hv}em^SgP[( k NpAHTis]V^5+i/zOM}jh.#̴QԺ{e_c@i]7UT^@uq k$sM"9D_}M XLk[|@=w-Br(`H< :hR_w6%R;,︎ZB{o^Tx*\$*hhbFմڱbO2D^r{Y/Z4b~ҩgm]Ro/,دue:"R}oh̢~: 1온 8 EZ\ @9:KS<7ӹKJ)'9r}w3XNwe-0˃郎ӷjݪ=~LD.Bb?Lq0^\|QVB.Pquz: dˣ^[>*'ώj0SՅ8yԓmy9ʰN^N 47 %J֡} ZP窩 Z\c}䏛󓫺ѥ4ڮO0/UO_[7?5PXtɨkNP]DI 峿xӮj 5O9#ZWc õm,Q9,toxu-tJlO+Ի3o>@;Y@|;T"kFDm[mG-iǬ~5 ff-@ DTgs?4޳ PeLe'R܁y 5Nu_ρ6/׀}3m'OeP9Vs$m|eMȟ| f>`|񼖅A*r1SK4/z.Ԉ)žv>љ "Oq"WjmPl[C{v~FLyg3uR憎״<'ocEӝ=aKbq{cۡp/G<2HSz +XP0N){V> 5QGTq0hOJʹ]8hW8)] 'Hu:A%As (\ov>A P6WUjcTޚ0M(]R ""`1}98 |D;L[s.1<7X5 %p7\4^:Jd~JA hI0(rm\ o$rhTZ }=lxس?:J=~٠WN;@sNf;4eSUmb<5lWABb?t>߿6&R^V`o=ږn(#?HЫqXQ?\+X86L-T'3GFs ')3wA(^KPM8X悔|W.5q8\ ިbЮ)]%~} %rH a"avYu!x:^K|sݡDDnWVD|qIO\ QPhz[qc=2WdZŚf38ˁa;>5E+˪([Yv땁?_K=@>M~Ws< gs*Z!T썣 \F-ݛC{ux9Kx\AΡy1VרiE:jؙ@AxLIiԩɾ(#Of@{0Ѽr'}'%S=Ly"0 :o~lceYQk tN++1۽H_h4x/Fwݱ}.~ׅ^k&`ǥhD-|+hb>X1I/qlP'TIA8viǻ+7j'@FBg'?ء}8)b{r^Vӈ/ײW`^rc_>XW> 6[lo]t@\[}tydp#}ʳoڼ{ŸwX3?Ty󪳎X.p^Գ\f]k>:] |_>VrU4^9e08v9W@,T/u8RYEŖC*])aHai.Lb{?1}A}'j梫[\ {v铚ݡ'j^´:wLċzBTCe P,"5}67u5]TMO:۾VC}ءu?掵{ij:WnW,Qh Apw' Jσ68fQ~뀘c-#h>MCd+wImdlE9 ^VNӇTZfmQx楗[l1Tcr"xDOﹲ\@ZR&Tbtjq.RGEw8Ipںַ+}vWϣ_͛_;`Ϲnl;L=F[>73qcK2LJXHMu?ztr,ǟ<@9)劜Ϯ;i3ܻa5eO%i9>~!VW"]s%Io#r5ج:0~ RR 4y56LSc\Y]SUL.PVxM9$zԈPT=u˦9^`G=ej)9+4n_ЧX;߹9ᔫ(fqy~.9}ʼi_N{m?6_ݰl}=RXc:I ?)#2oZ}r4rQxPXOԽߣ _XkXوTUAR8h6c:NkSN1ʵM:84c)b[mzsݔol=)´SBR|n5kvFLsu&H0' /*yI!ޞ˂ItB sӹf}8#w9O>~|w䍸.ʎ΍֏Qx)WͧP]'ڟIpU`X96vg-O eh%=kҕjM'ҾcV@Rl0Xa>m5I/W$݊=2tx G<69Ua[_eIljڎjo XL9tzEy+bƱVW') < r:ώpCIKxYTFXšW 6 sQpƙx[?0B7Ό(f1g;ty7y:[}X̂d단c^J=%bqwPfyYj7󺥔8{]QNKo_.zN59\|xܸ• b|lŞf͟!I2Bo/:G[?5"oնRl5xXrޔV娳B=cUQyu=DZauڗˤų4*(2`~;st˷䆷i@RD*.ZC|>nJ)[gJM#W! bUGaJm??_gPmD9?m ˑ{<ܶOMG{x=k{WBt5~8seƙz4>C{?.%vgFFgB%Nu>N[y#:y;8$\;2U9Ȉ`31J޽7RÐZVkj+ž*c2忧V:0 6CW%?:>5KDɘXu^q$XzL1.u~W#g1rsJ,{>P l5Vj@3En Ufp:P̽ݍU-'F[ߴZQfg?v X>;EWm^ӹ$eʗBY Ow/0zKl1ۣ\j У]wS7Q7tyrYvb::e߿z>= p%v؛W5}bNGu\XKYy[NP)7hfmdZ3<ߩj25_Hn*@9e^4PH\Rs֩ˠp(^w'QP[;ɗc>)dh|Hj׌:SV裍z@pDUY6"q3/#7.U^֩Xr~Ї/T.Uj̴H׎>5 }`s`u?#{hq -~r=3=XI?k9g̠ۀ[z'\y|95PϧoEUNHm鉭yE0 |9SC݆{6]zڪ4!;lHLMhU/=#S~!ʿv BQ?kDXhkzEدOW^UEׯ6۟6}fy dJɾ)ڶCQK\y1:xH4J%'"k h[SUm40%2i<;>%ײE"E,>SZ.{Wo3Pfw  3-h_JԤ)!m)n|P -?45o=~vquLnW7Fx=e0#/f \wSkxo24*EXP;.v7}eg_SBxu_C'I^s;K~VzVzfnXs Qu3~Wd]{QmqU$-^r䫇tQLM䝒G5m= SG*z" sD㲝:,״)v+/R7e p$nd#Mp0Eͬ] MYZN``'"}vlYrspN RW /}d;6/)MU*_G=(oZyQ(?g8 n}i} _+Ẋ8 ]=^2CO?j?ˈhz֕Jꪖ`߮O>s׽=d1J$ jZ5_:6z޺4' 66LenU0QթUҮt6PEG_@nQ3NTx YJH}wZ?wE9JInb씸cG0~l҅làUord~7G0f ?9@'m*H޷NO=Ju?\@_7 K 6#0m{G:,/pT-%N4}bqYg̫q0+vfu*Qܪz ; ge9ܜliKՁtms-UT\SrV kP2l6BtWf\m,kzH1sz^ ̂D׶<& 0 nA5I4T mdO>7T?8}L(#gSDӅ,6Id蝿ћžUԁ zΓ؍o3} V?m^νji{ͦ#J"8rU/bV_T۽kTj2|) y覹ipkB>C7ϿmvYQU:MQ(!G]u@}%7W`@x9O4}U8'3 m1Tǧ>y"QKU?5~#>]p"`,Z1!hC{Eg#rIwv6_1t>*:_}rmggy>0^VS9cܷױC?3N5]u9rއyٞH~ Uz*Tmꀚ;(R=2[CM3E@.՞eiGbg0 # ܭOzC}'XM?Dʒ_;yf[%= "}+Vیy +`\u(58@ބF^z_c~^cN*^l"pq CLDݞ-&75if]Ʊˑ콖{$6Um$5a7)S!X 0*` ejtd?Ks1ljضӕ67tKԉlF)_ˉI@r [ށ8*[tAV:f凖!DgnDţ"RAiЯ=ȶˬkn_N8@ր̋TT&R kVz9嬦>; W6xUbۧ(zP 89 g?Y0V@cQ!mlǟt%X[.'9'E-V@u OSb{}V]i Q#s;'|#w,J͆tA%?uT~4';?!O,|PeGUnl[x'FL>ŏ<՚38'/ bjrw/)Yy_v`-P8PheݩwӸdDVi /Q ]}v Yڲěʻ9|wzmκ8٠T5Os7+"_m"gjixsN e3;XW(7F;>MNJ -Y"[mOs[._qWd!ո#6 +OtaskS<7VoviPga" }",37mCl.T8Qn-rv^ˆr2vqC@s?Ku|Q~Fh+Cx99Sse2<M~l r}Aq p`k,$hxUQ_ \=> cCΥhlrh|NSCgn[)=t"g<#JGvdQ a\"@@IױQ 6r*HX[3oS9ޕi~Jүp&s."䨴G-yh:t75WbG8ys:Mm/vuhislkYnpW~TC WpN'Հ 2:2M##7yێNxv\' ^ԙ&Qs@ @vXQUS}<ˎA%LX]ַw%dǶ'ږ~RSZi|?; `>ozq a>nǁ83i,'s ~_:L'7HBC`v2;uHh}Px`c䞗=q KQp y>[TyUO @`Ʊ]O}VL3@zCtm`'"=s)J{1p`Z= :8gHzk{T}oYSac}&ɻ""9 Tj[Wn{@[g_מ㴮q-LDcGmkcml}{H <eô3C,Mi _j-GFٶZ--)ۋ|7tIN:q;D 7֕FJm2-,\mּy7;wdd{7tm4HRԮo&Ƞi9fUiϹM:7>"`}(@m 㵉 ŲtBqbNE,JM#y9p _eaGT: !q0&x"eRgy6.j8/ o m!I<~5{͠T0g£}Dn\< Iy\Q-©z㟻>UޭY ;HY_h*3Ϟ,U|rKLN7XX*r7>{\l/4צ/ދFE,Éy1SlnIQA!?<^_uf,=j5g8vx8H"USay<罗n|g|ysAHJP\1UEя3,KrgE'>Q2|ćQcCv{#䎒rQlVydwBs.[(b\E7/ޏ7ƆK4ՅW(Ň'+Bң>N|gc0EiX=xo,MM)fHRᮀ7WIKn5ihUtۢ£ᜏlrH"_AGOa5+5fll6(;Wd}G-^Sah:^bG =hü3n)s9#Ǿ|nSymp|֨x5'+ @+XW)G\1H 6 1 mKѶY']7(45qD7 `=qLĶxjMJT(Acq8ѥ5Xv+~:\{t#J8| $P<A|)|ťGZ/(.DY#Ju& 6#xZk+EtAunN$d5~Vy?Ats&cv4QsN:FB2W2O''L@,qiorA#Cw^ڋlly=X`|91$yAe~ NJc=[.9h7/הNj_NfM8Z{lG_ ~^hyg^R'6ʅuPHt]ܯGBpiV@>3gCFVf5`"&;c׺3w ǙqUscP^G7펈][|1[RYJ"uvt*M]砦4K[^'9K\Y-gYVX ƵҦo;oN@ tXɛeW^r?ů"RJ~5 rh;y(?\M%jebq66`e❛=9q|A8[06L!x^oH]ۦSR+??`mC1kj;?~ns7}.Uൟ"dw)^N3 K, Pٗ}V'^ Njwwhߨ]osrԡˠ.KQ"{ 5g``Ⱥ)\~>w呷8 vmJVlpr΅mgQJAג\.ȹodM1S[F|_8p@;׬:(:vit<[^j"b V[쟊m84[T:x*'ݢ8wsOķHBо!E1v(F-"ZE1onU>'JFϐmje1}yKqF4򬴌Z,eG*@?ջ=͏fSNĪuʙNO98m4  .[&jPZ}3{ܖ{+uK2x9HHt\6+uv{ گ{EXyuITn* ##W#H>AL :;گС}`рut=><1`J5kD zvq{]?$|}-}1L%"kߓi2rc}O vnվZnpJs8 E|>:`[m9/;<A:e_3(>ok*:c-zB; u;'cc=TZzu8Fm޻;@j<}!G}vM޽P'Ⱥvo] ٱ-Tx ңi'4Z;7: ^}O{,ӧ"nNW5%h,Ӽ;}}o5)<}Դ{E$9I7ďUvn?DCk@[g,h iǺ湱_bsQ2epsJsp.s&s[2cz ] !#:*̓go*3za\S*(;,JCh9i^@{zZFuz{e?Ň3c5"=,3%[#%d9QNePRl970 3PO׃yKfEOhsq-P6*鯽򪌔oa:_ވЌmO5/Tj)%#Li9{ .sh7N&X7^vEȦtD3_uBd Y$;7W O{u!t*bN6K_tsv!'oնEy[!Z6 MGO h 궴X iT+m0g 1(U򬵝4M,Noom*Oyi#a'M=icI*g9s-w6֦OݲxQ[m @}ާ {Wi2-=; pj==eq{Ay=µ]oZcx?S:׮68"=֨ L<(p[ ZiQGCH CƢl馼S˾n{e =cDȉGlԜn8^<,*wh:r ػ DF-> j6ƕƹmmGitw{#l'jw)}ϒlj9 UVjt%w}wsxK?<4t֯ 2q,PDZ~Y̍XXTiʑzJ:c|&u,x@t\_Qϴ|6hx{?q/VSdFA"ž <=3ռ5,Y3xq̒\"f*\n?3Dx?9⠎=OM}?L9rt2m?{W~ԋ_[QA Q2/xF 1"g] 2:W'/I":V<ƺ;gʘMsYq(mՓ.x{3*wΝ : s\iKs9ŝ"G34IoL-.w"'|EZo`{neG.V7CaN[l<ǚj1}nA5cdPTQ6G :~GQ舺%b4U] 3o]=Gcj՘2c2n_p ߇~NN3'p/jj9ކy:jGC?sBϼve2zD'jAڻJ%06=z"|ĵ"qD۵~&*M]P56jK>zF3I9m~#']^<Ӳ|k;V=Η9@uga>rܷA/R8H+O]@椓g``}5 cȥՙLTg^(/6W)`eZ!.Vv nŁ@ 9rݕvӼ ز,#y0KK8ЛŞ8ce9e6w/Mm\~l"%+ 6nBIu{ >X߲ շb'oYc`ԩqx4S|.E1Q/Oww^vWևk}sh۫[}~3:džyE$Y<3%WMmuWY_HS e[ꚳl) 7ZC #"76/v PN`˲g4MG-O7;&K4IitI.RkЄv]ڜW = 6#";j qd o~szyEi[S=f"k%.B]>İ" cX[fyĦ:ڱ +Q.?WiA^"Z7V|Y_hS8TxNwl5?rU/rޡBEA%9|h>?o΄ë8<;K)kܻaf~r`\S(S3ڙwp`1䔅2gk5?I׺Txp:PֱP#9V-z/MTI۶w+&(JRe6k::c3_{v/os(t(䀪ח+<(D'JO+P!P6 bm8 16x~_Dq4O8(Ҽ@H9\05 ٠Ԡ3 Z- jD`p?1Q2=>||/1 V]P9Jst{3FdUxLX8mgP; ] Ze̾p$'h %ŎڗHҫXr@E\Dmi@8o;Qjom1f1N 7ۭē +@ޚ%J4q @^8/~\Nr(wt;M^"LyD]S4Ϥq 4;ԇ:>b"l]7ݛ_سO:ms~R+ǽ<[3y;eI:tJӡNX]樸RXvu?3Cu|o7 cb8i{wlcx:I|0P<)`%&jZu=bg:(QƕFURw\ur;QMA:9F_pv5TO&"G8˲N-԰׽ .D!Wkuպ#n7ЯS$" 0}9̾9 xf~XAmg^іpq֡:z(<|idz-KGw*sYQ;Rh{4@z${mA]Αw"Bhjucz(-&>`.+6֌I݅ޤ1tʴip-t%%ݠWR:m9~ wvZv w,|+M>2(Hǹ>T<]s$ |t悔zܓũӕb{/?~GnɏEU:v?{ k@6̝GbP4mW\S\Vکs?|%r(fB[״.љ %.4v 4q:)m _&RԞ JYP)u-VD~} snRw؊ ڤN`3k="+n#T(7;Ļ.eN^Mam5ī.s*_C5ZɒҾ^20UA/oWs.QDD.%qP R sY.y޷AY%(R< 3yqzOU#eaZ`0P7xY 71j8st]" |ڻkZ Yg@o`Nu3X7]눞[SNm(."Vn@o x)YPW1vfE{/q#M\iuj Q!">Z}҇y䫯}iON0}?dK{ey4{FWm TQ7];z,c=%{6 ]g* ۦhusN$kkE9;i m6\)cF(`Z6D "[7&MA3qK)?\cI9ڇc%Y~xfɎxtPU"88G7nz6xTv}4znQI7H(k/s6z> gs^^5Su=0eh3;hN 6T|Z=L.v,!#{f`E-llGMxh7̀Ґ%Xz|cs:ȗ1T ny#x|( [4n,,ԝUuglc qmĨXd0BQqTbUX nu(aFEE65ͷ^|r7ornW]ܦnި'|ԷUHAWM ȓ^ZO}<+aCV omi{m+v4_״}eo}Se7"МG$z#~5GhZ1:?mj} ?\ccH[ 5ݣ H׸̚6 "OYx56_:)6jv/6l B׾՟$;#Ǒf" 5nA^w >iXtrm[9( :S1+u9'p>5#`z%Vuڟ80)ə|u˂,cF}\|xV{2918PdXYס{X %]% `پ/A]MZw\295A2}syzGڀ i΄cC^_^x| 6`=x$8ˉWvxD҉s@|M%=U} rvqm碡˼׽_F_rub)Q ggɔ֡۽}RGvn(z)DU6@.Ӵ(J'RNm{sS`g(tf"i}x 6O:/k()i(c|涛 <,6Z=kk8⻇epGx[*wǠNjǰNj ݋l{%<<dr㨕,0q|r@8.au@<,Jwt T(rN2|±m~Vݎ~ɲf:)yzүIV!9jiSwJ/'Z~=-.G<ˢ?h{&0tt*!5}ndŲ JV1q$K:e?Vg>?Uߌ~'=xY5]|MF?q/ףץR"EgSy-Pn$8LɃ sW$VGxW+FC|YWrͭtvu4 S^tse)kѸDԱ2iJ֙y}3{-eKqptSx$uJ^y;l(v,` \gwΪ==٘cPgeNzʗJ #smh=:>ūoq5Ȣ:.:f:?hTЉq(v涡}7 YOiž\~gm>6D;x^ `wT[޻F6Oa pܯN / 8 ^q @1ُ\zzk~1#U`K~aIhZ@ϺƝ.v,VDQ{׺"6 !F/j5,Êx$s}s6toR~0q @'^+*x ݁.m9SK6:BɶY쳭)ZzyO7ަqݑtҕ)=L˶[ P9ݦib؈+Z?CBqL3+ini%y4x+x 9&M-,oRu2}ǧxu NrMiǹ3ugܰ%?/ɬSH(BEj`y:Fh=da:s~&^&,QzK3C * ҌfFប5ˇRS^Pi;I1(kߺ}FkRLЇ}+2Xi쐿},c{|s 0Iw"Z({yfoϸvԅֵy)n/Ce7'_rO6z Hp2w4w=dNe:ꐡL(+ v2ϼ:jZ?DudBw7˜9{oY =jx[s)J{D`5lio%7wПGKPhAXwШdInë3*m)@l(Tyn+SOqAY3PW{T_vo@g<lf<<{(FWmqT_kQܬ[Kcw@ʉF U78qyy(Zc1zz\gN^ޱz}w<Ƌ{9g|nz|Y'MI|/+UKeLo`%تSn7a`EtrHɵ hLu[dE]GzO#GDS̑ڐryT16 fZFFOvbI{OU2M,8/vdvqs Mz@5lbwO޾ۗطhNx߷/ye97)SzzkS#ZnPdEwXa.gѰAy;>RgֱuP sv2iғu^e'9ٖ+&Oɭ`IE9y1RsQ:-ԁ,W^8=*ðY;}\V߯q4DL 䛊^/JR^ӓ8#~ zGR+jtO ,3UFEj݋!Lo/<XyMS[]z2Of}6|P5v"s0B!Gc*rF^q<Aǫ N90J%(71oYOc3c%4vUbLJwcBXQ_ B(2d>ҨQiʥu5[ \ހꬿ9NnBkۼCQ`ޠVY?է~xek-rq~Ѷ3n =)[4æ`ܒ%̈́^iiqhw9pL7O3~qާ_q[c;ȑq?vh!H$v$?Q췴g K զZAbӧxr50~`m=+rc=ޟ@mL,JwTzCzFOgk8WwGQ&2m 6NC[O1bM-*}~JZYD8@XFnzgىv4[eIu19K<>m;b`3֡o܇h)=[%m۬vz3 ݖxl)m(5o4 Dҵ-$fsy0@S;j%[*ZvZ݁7bD h ]OJ04T3J1 msmv\pUyLM3Oqmi0\#kQ-6< GHe ;)xD3'?֓{޴Q"n܆q>~f> DԋW-_̧jZYtr8Z$ro+jhO}MqxuP^Ot|{MW`@UH״-%HkP}I=R]11ȐSIu/2TtH%zi/Y*}ITM9vS. [>żQ[M+_gvP=&h'ǠYV@ wY-9~n6q[_>gzc^އa=PP;s5+|R/ȏ? F;{L8w:z9fu;G`ހ:t`h=_a3fTGdT'.(ڢ^րFw@}gXC{LҥztGշgMu仡wNiBoۣk8dt Yn4MV6Yq] 5Y@AxhYv h*xā/-mf}UL9]0gٱi\ H`iP7^\Οy'P9,%5XCV5(M<4N oqsSٮ8 BQayV],+/"8;re3Muþ}vdf>56ظĚK"V[Ai};@|+|CG>V꾋:z$}-R8ר6bfDzgi;%gxFDxC~-+pJgJj,Z>ƌD'Pe]7 F\b^98of<@]L]pA:/νȼfNςڮ^eS(*2Җ9@m3x^p(ʁq" ӣpLr%;nH,4 +&r}}K*@pD뼬uJq~vzgrmF 3b eD4c|};1JmΏmQqe\ǧP;~rmşnPPm0H7=Jnswr|(ThR%)F-;QԼB<=E̷\uxwCN#2GG/]uڼCc%R Qe-h? ]y :|n ^Ak7 o_;=/O@WN s6U/m,積ʼ_;.XmMQ#9$>QŬ ZkcZaSRKceYBQz'_aO{+;)Æ{Σ覿br˲m,_[}wF{Mvà9mwIP}dly_V.֣Xo;j񦶎 N9ñTwwpXGdc!9x".i}\_Ɉk@ Xk`1#!<_#AEWtǶfl f|fyOdJmԴؔfbr[ c-:llp̡XBO<3"R |n0G L'*9(zhFi1)IeX',G/O"j5kM}"K+ᒖ|~-:ɧtC"C䕫c0r@{Q75{P/m^|h"nI@~{])gqeӊJ$~f罭}ϵ-hiՖS9r|1xUD`Q"s7狃v_.u^rr7 RjPu5uV&6@}~;nZ" pm'Tc)m)KI[I#|qG=O֧dʡiW~ 0m'@yZnKOmKvSۃne<@_61m m|wG+G@N(9ˢz+ݵe::6u0ϴ@ޙǽa0ZZ97oֶ܊~m~d:VEp 5O`tf21սvR^#z+j; 8㛿uig*QoBѽo_;>bMt5~:y=g]Cz l# )3^ui~PGn`08(c!U9[cOp>t.z|\Gj윛l5uU6 Lǹ2Tr0qa JJ]ŝlX70Q fV~rF{.3^ - jNv-MKA^}T3o}wS{VL]EhqN0M9|/j٧`{ic@ş9N c"~g=xwpHmT*UTdLJtG({mwY-Qu}5i:/9펴Վξ*/^?3Dw)$`ءg擋>1?U:5ԗ :(c, ^#RG=]R;w)SERO2Z{/pN}"DPSlM7RlmK^Y6Ga-@awu3_}Sw?r༲vO_gc%y9pkw4tsIG W}(ݡMtY eoBQv4 _Xr)m'! #y>Y)XՇvq=埳<5sog. >~`>'5铦jPE4\7E v(@MS4#X  2|_~G#i륔ZZ9cqgsDӇ]N? =/S}>FTqQVfa4Mdcs{~!/ egNZGϿ8oʙI}:FWI[uR) m:]18ԐՎ:WPFrY2(7`V[p*4;}EY)54oוr@H{UҖ%6H2mߠC/+sZ4@Mf Sg4aDv9T㴏j5oY<'e4$ ,GKM {iO԰ P8XlF~<__{ӣn G Ǵ u7O)5GԝnYӞxNd]0_귳>>cQ!Se=7/ƻuϏU BJG'gnhmx/w@5 ^PϞU#蜖һ4Vas`SR`@6젝7 QvzڧՆ>|hM{Jf-NkM8..=J`q@ *Jz,SV৷(\>|<9 + ^i@>T=W} 3'Xxv'gq["hhNFr T7?n#ZGCŴ]fO 8+ilKm7myf{vq,gqhZ)+Ly/qoHmHayv#MbN0oA^ϟ)^(8_^՜5#IȠGz.)#zx;EQH>~O`UX d7{ǺϹ^'f*BP;ptJqљãt@'vxg`}=d e uD5S6IixHBL n3y̟g\-q/m_#3ɬEZÊc5YtEѲ*q\nӭ_.zEXWI>? .6xǼAG_|Leo=;E ~[ePֵ^$`*n0h!g#Bp־8FuL>; 8< olos9Ix!91Tq4\cl֌Ẋ(}aАR)}Bm%ۼnŷqGw"Eb:-( p^K(ět,8x{r}S h<T,0rrWP:|7P/FZbDqtۣe]Cr`D-?4DUW&-NoVkTNoU*)Il+m9ߘ m)% ~99{H E(ۆ:+_ezzmɨ\ Tt yP BbR'J<beq){i-^RjaH(e_ܛ`>g@< sz1ʪAeW9Z>XH|@6uOpPDȣtڣ~\˂:֣‘kǛڧ:ˡiVoEˡaW 磈:y9@:5G0MuYehg)y%j* dl^=(9e~&y>A])97cQ9|ƙƴ E$yq 8h6h ˡ WG (g6"he#jMD;>O[ym>ø%|t5m˺)R4Ŝ?rX?uh:YÝ,={fDx,c:l74w8+̇-őDImkݻ6c28_i,ho1aoAh0m m z#',9n08r,5ƱҭYZ<#Nq+O`uXS 1痳aJi3r^BX~xJ}AـT=v 0.0o?&<4\_#jm u6F4 hhqaLQ"\mx:| M2]/-giӆݦz),sYV|3[>?6˘1QO,nzؤ|'p;Δqw*|u7Zk n*7ԡΠ{ynSŢF]h)Ot+P} O"*)zOP (S;`H=l{ֵg,85qBtU_Sؠܳ?X6?e^׏&3bc}&qϙ&we ץ.Z}EkT{ ޴lhՓ^S X'χWVF@CW|E {hd]VG q~ӱXP@褬]p+B cS70!;UvL, 5VoFU$c1fVekud̮T{Q\f OZ?+c:.\i_"~1y]';{|sR!]3U웛a]qӲӎ]phcU 1)#3q!Is}UmT ݽ/v^i+m=Q>OB {rY %Pe/+篏1@[Riflh/A:c Ow mV@`3r+S)/0r{ ]U;sLwpOn^kmy=r:'T`tLmM p m>ɛy(к ~}Mròw@_[ve,^[ڎɁ ʼK{m8˳30EQCi"mP_>PaLJƯjrL=ɛwb֏ 7s2+9Y, SGQA;OVmfQ߈ȑ>} #TL⪄zhχ'}xљ_)GX}2ukEG4.^c !9Dqw#k΄J?l] $.ek[Sժ>=)!!ӳf9~hddO~bBN@fֲ}=ɛx,֥R`;+T&BKe/Rr)C9^+,08/x^q9\Tw@=3毫^`ޙUXnŢ5OpX>fJ8{wEj{m{AK)iM{޺ƜQ&)v.̀ ;`znK;rpr|<A<HcYTtǎ;0?-0,ƳOI|}G@n\@+uxop71 V'\o)g}˝twN<(C)d^tbԳB1[dƠ?{M)Z2rb.kV5ޠUʻNiuwv& P.v34w6/DgwxKy}8?){a+LyO=h"/ jd\観"OcO .SmR\0~淛W s(}j?J,1ԮA~/zdJ7_Ƽ|gv(/AdF8)j5?^3?LS^.}+- Cqt`B3#R?1ҭHzS: }]IQq7YÀ%,7=:Ns=+/yhZpzu=euQzxn<YJ+Xs<韲9SO~l"o;Ao1gYe=]e<O)>ztٴ[?SwyEoP^;Byb2(t P 3>yꕓnRcw Z'F,iX~[R -%Ä4~h#c}wŖRXNSlKMa ˊƨ#jb=xۘ9<ڐ1ЇJ6bOn8Q)Ӓ)&: بC=F6֭>=J] KR 'N@pR g ڎ{1탪dX^1mO4Ai7,ko~êU;g٘:{\i<xΕ|4u|S.v XgOhh]&\84@w<&&*-e@v;_yAs!F^MˋtO_7rhW/ϔ{Arx ̳C':۟}21ϵu~=&۫m|ثϺN_^M.zG_u,Tj2t >u[~mbd]m= ~fxKZ@Z<w;.{|[xکO9z W#eL.#s~}vj€]w)ѹ|ܩ ǩҰx:w5r ~3VӥvRzyRkIOXw[@^n{ӯzM\pD67h \0`MXɯPw(sܻMxH{X0ucVp7Fr@5紧o1*W}>w\RcAA&^۸?L9ڹN 8ٿgP~߅2`6Ypo! Ql1obO7h]үJJ 83xS6mW%kiP %-/P r\g [+y e o9^֍JI} xk `zc;t:3hCJ̅[H7=mP2<n/*i+e꠱Hʶ[zu҇z@>DᤎrOg+v}Lʓ NvN2 *n;WY`  5tcc?L_er v‚{_yPyN7؃} \y IGn|w< ة\X%d\'Y#D-ex;63m[qÞ,Xτ(wxPQGTl)LǘPƻެ" b":̱.C' pΤ2[L{PtLWcӥc+aC5tkSP.=Lʯ(Q Sm6”57Fz?ۼ^xFäv30Vp[̇v.L?o:<|C(9Ӡb'!\a> \g*kŰ,9>,,l_ qr)ڐe2Dzc qP< ƞ˺oazϱGÃp^OӴfM#~k@zҡײ1_.pLUU6~{s8uy2> PpǓ!Km;hxQn_V,g kن6<(88ƻnF.O@Jӓ-&ۧ/ó>S緭7(ū7EݶγԱ9|3w]T9*]rS̀ɯ~lv8xYz=?_Mݵ͵η9W8[fb6⡮"wШPFXM}wU2뼻A{7ASvTx{K}Wg;iw)uS7u8}=WGJtօX _Sxq20}bGq$£6мq)Lʋ.g_|?@8d=PYߨ{6d' c$[!1yu$=#T "9:Yv(Ct~%v(xɗ>ICC4ӷʞ0{="@vq7Ɯ guR i`tcbiˀVyGsz)1GEzOU(]xgb㥌]bfkz u}bsgt\)KqQ.VM2 DueQ-Hk\Rvs 7dmm=g>s_ڸ漢c4pEפ&ҷep}֑. uSjT{wxd{`Nu&mSu ށtT{D$n9! WLyAy>#]& >Y-k+2.L^R.jwAW7^pہ< `xfnoOFpN1£_'#NalkLke72`&1X:+ |phxQg'?_ts=O X'0:pɒ]H6,+?hcM&+ V,NEw̓bN,6~̇)Go/9^6Vvz ^q7-uz_M;@^ou'ȉO_& +`⇰;Q<zJ'|yhO+k?ʷ~=|?{ \aAҷa99y:Y/&POsH>YNABH^PoC= \ |NoX؛,`ozGt]}yɓ>D.˲e{Eu1@RRNjtck .-dn'yYb z{l xdq 7|{^+m\2缿;JYrsNBLOby>54ӻ!^èN@ O' M'ҐyCz =Do_gYl}vuSy6呺jTHR}ߏeG=b݇#gxҟBElT[2XahVo,nS_\hd4 Ӝdu{^ `{{|~`qvl y.,,L޾Pq'vpnfFPs'NyXfLf0ӵޖRp|{i7;{]M2!>-1C}qj,/u du| V@N>@ؠr,̒|r߼v<+|9RYcyʇޏ~bXfz=kTi {FU$}cCp(Cn?tL{xVzBi5@xSg^>Fi[{ <>gڠt11'y^) v5}Oo3iJHyU])@@^.zs?!YzPyi+"q}w3w}LEAs_i:B5C$uY[*N=mDd;JU]ْ}Α &ump ̇bczՓRm0z-k˿S0X2$&g}lf 9f(BMחEXc2 4CˎN;|t0AL{r":Pv6ws96Vzn2d>YޕS7,>zЙ1;)ٺjG7u;g(!RLo' B >!^_r룦/SdZ!%21CWJVE/h@x[6ZJfqs_ȡW=v~ q_/P=Ml|Fu ę,0x0 !2L;r{SZelxGy)[( ?Whyw^$wk" :i;#egQxcu] MUuiNӀ }:v0> '&Zzcݾ9w[ǽb\pv\bw38oGMT{RgZ^ݜB4G'ˠ5a^~rRۙ˻e27 &NF,]&}}@7}ך]u4E}xU5 Ct-\on,JrfK=VkҾqթɸ%KL+zs0+&WڎEbͺ8P1-KwY6gOl808fwy.5zS')⨝ۣ-geLbl{)P8Y )Sv9OmƬ˛xX@7@O4x5V'wp#C{y(cx;!ɓۥt<3{ `r B$.,ۆOmT_YW%@^tV^e +;q,?E,.Jh\)탙Cd.:&6e˼,xqaB(:kVR)^g84ì>ڎN4g䜔)s* t.ROgg2Ź:]i5P!z |16\<$-YXR<Mg1E']3.~BDy 4~ /#\4i&9-l~971.hG /zm̖"nz7/[:R AgƗ~HG=q_,vssn)@A]&sb,HȎU%]}֣=-+yKi;Zee Ė~}v ȧ+Pġ+< 49x/ 7.OS_o`" XrJusޤlt\{~|q9*mc M׫hꧮ a\zs8!]tj{bcwRa$dU%_BJm|ԡ}ƹ)*{>^^d 悕`m \me=as b ][P:(Ѿ5BX1^U )ĞnoyfD3ݱ80ư!Zl سCJrzzH>tשkG 2[*OƉ{lZ N3wz͝6mQI(1y+VyޖGA`?Đfc2mKg߸^6q{K%r% (8+uZ= O[cĝlcgъ_U]^ޣzr>`hpc=S_oy-}-swBe<9oΗa1ԓ9wlհODbCE=~]hĥ#&wL>fOgI."&}Ot29a;fՖ1x޺ .uՕTM!vZ㛷&WT8m*[|eݟWHa-آNybԛ;LRQxSPc)W,gdYqJ {۳ć'W:cOƸL k;b؍o[7_>Q]$lr)O93ˣ.c͏XėaU>;Z";Tv*|rH1[eִ+=(F}h򑌀 Q~}lwx+ π$[iL_ ?{ sIr(5;H7k^AsR~y1Q`G}S#eƣ2:rPS_*m_Bp8/ٳ`lm m:[exSrݚob-gߔ]+@ikY@n6e'kbȱώ@!Qe}\c7@\I7{UT d5wҧ\L{ o:N]m%wJ{,+3Z9b҇wvl:jL:%.|r+00;N=m|6xFMxܘ?zbKv:xʻ~_wTg?a=Yqߋd1@_!u Yx̯2XZM`A(Q5/Ps|xar*ŵ~tۃѹ9A8籵+: 5dhɌ~@o`?v?8~^t RYeTċFn;?}6<%؈|7@KJ1c2l/EGPSx,hH668VyoX:}yn ;?<ӯtĔ&GO›c5ۡПi )ui=:}M2}R.@;uh3P"`;M UZEc%8r#84xSnʵ(`ܲ!`OzOrYcs\9A,kGuRt^`к@?}2`?YsyA_-lb7dk=jz9'g2C-dzrN\_~xUG0.^\*Sw"sځ?C_2]H<N{ 7㓯MkX['1R(n8sXi+Wҙ'=c[3̻{3\Jtq U=f ^1¬Sr8*c^cxm(ۦSWv$uP6Q=Yg@K.7{9> <7/Mxa390n# y-d}-3 lhC􅁙Ď@Lpqlxh!΍8Ǹ;V*eyjKm{]?0m[pOvX=<9j2$mAaDmO|f5;\(_ZO[wV% 惠8tRT9=SΌ}{8wVk== >@}>Ul`K߬= C8\ c9^<SygJy):y̭ "|[̓EseMģmISg۶aE;61xﴥm/x{/m\\ k+u%ULڜ/sLۖ<Ȯ?exU4(>yh c._#~m')|ep=k-xM渤;J0sRMIR/[`uR@Vq3mM4]GBms7y7}$cݝƈ?$x/07 8lGۖ {Q~/{- r|,1x/g{]TxkY(wv@ 'PڱgI+Gܸ@f볐cw:c^JԟХku`)%tLa s:giӲέV߶ms=8fYi8(;7 9Iව\{H-+ =}ؤt?rzG/G>^ v>-v'},feE4V7/ۈ418}fm/QO|yh\Ydzcb ik\ҧ񞶥Kl=3},Uoh3XA(剨37?ڀmYo{qC\I>J4*Nc\Wmys0f `@^r{hS-^oypR{Vt V9)mpۍ[ڶsnzN[l}kmzߗ ~S~9>V2Lu h?o߸6qgxSu甉(Dy~ >v{γd/&VMy,<Ef1瞨WY̤ WNS~tm;~;ءcįGwO 6%i TJѲQ%%锨CiwYE\c.#w7+50P!KϦcz̭3|$[0 =vgsoO:s|]u 䗷ܬY'%;(w+\T&,!Gx}Ln (wov3us~H_̔|u9/X ÖScxgyY`4(u?qyx :طi ZW%eLNbss!|}A{$K~ڋ~p[4PGZɶ˱> T:xQ`4uGJGڰz|c+lG=BoZ.x7sk@,i> SS' :z=~ZP^FE0Dك= Du6vKD} &*!sQ-@t)zEBaP],|DugsykzWrgB$nR$NRS5q|Uƛº^^m_~ql:tle,#O`8) s~P>`EF hJw;Z@+Vuhۓ`4^ϖJS8e; mNv[zuN50rg90Ҧ#vnoۣN̻ l789Jy)\hyt6on|q{iA$tmw~Eŷ`)Yj:;Υ.=@p <ҿ3H!<)yAʇ:(^Ó4(IYbۮ;} PG .Ȟ 39wB˪ǣP7JwS B;or }{ȝJ?+2x43Ǯ/a'MA;_*vo[6vy zM_'_vMS/ nPi6poZxnp߹]-߲@=#ߺ0 j1:/_<ע~nGpr'i=ba8s´#2^a0rq$2 08ݶ=RzTΖ;x@6bxsܡR04^Kgr5Uv'}h#&7mhvV9o:颽w_Bq18 R>9neܒ>Yb"Kz>V֏n{)- g,r企Nc: 0٪Hf6u_;ee +׸1f9%4fsMG9mwJx9v_bAj]_J?h0E\)W!BX}jIY$D\|>?Gq t4GzKor+f8uĝTjCb&7,7vBeŠG}f_`Ĥ֪zՉ9=[ʱ9-ʞ=項,˫DbG/0:P3 ޞnاdg{i (^OR*Ǽt ~ܺT/F9VSbO5-h2; RIaN}wv_A4\}gh* 1x:,A}h?oSԳndɍ,/jX7~<=-"_'w{J|0uQyױ.﹀{s׳K_Էz6^XHמR? o9{MO6{<)]X^)@P{CegI 3Wfܨ/Zg9k+ڮF:y0^^X0}Ʊr/5v.[ k,8ŖEwti!~kH5y4ΙN 0Zmj@r=M|1ݚU7Wa;v2}̪}5TO2H!hy= BF ZJ|`ڲE ΫY?p([k.g]'(⟮mrۿi7(cHyvT(85e]({nCmxϭJӆ 0ߞ;}2)[xw۾؀xQn Hkb]>l]W\cSm(Ȳ-v6`ݪӟkn7&Ϲ7'{#\7E&-AvC<L砽u.|Mȳm+V]1{!52٘㌇O<=>ugږ&)_ȥnҳ䳜ySeyy˷ckM9!Y l3 S1&WMy>q gD,0("q)m+Vyo&8e} 2Vi7;)>Q:mL c=眩3 }B 5o7ܞYfLfzY?x4ڎNH5XJyGp{Ʌ+z; `Pd?Kyc ~3[A|FJaԮjCX'>#XpVEӧ:tNJjL/(RU?)R;+O~R ]SjX4s0n]u"#1?nR8.tX8ܥ6fзAy6V@_cPt xrV`c}7nŭkC{Ÿ nqCR}l I\DTeh~HRAMޙ5sԒh }1;\yI?o'=bfAЇ?~g_Xg-mV\OtA;"G2u7iUJb{&V+DU^}{қEڴ|XmriBJZ 2 "t!iAJ61RS,Y0^2a73R>}7}Bx\bzzJ6+g>.Z{꬇m %rpw >NB(-Ry|ƙp/g:ҵw-:l0 ʓIgN1㥎Ū(lyA׾=ƸAT`p~0?Ջz;L짰^N:8DԦ2XZSV?5 f+t ^ `1p3b+[ /窴۾W/|Hq1yr7,?Ҟm1yS)\7"j'9%M0 1Q@Я=xs{:ߘ7-CK֎ﶷ'4B1>!g}ęęcYVs>& -3JIrţsd s/yl+C'=5GI^u*+Wl) _"jT*O .9($zhYz) zM#OĢ 68M98*\JlomxC N0S_=hLMxܶzkl 9g}/x|9;uـqe{{PwQn,su? o`_!xAOyHmhK&둟w|6r,)TOA{2eE`1>y/gs&a-gQ @Pt[n ab1gQ@a[=m?{*{hL;12 Ai_LFR0q=r)6eSUi>ΊbQ P/|(M_F-6k ؖ9-r0dFD 8;#ctby49w&+3fM$ȫ`sg2"'OL`]3.gھ8(Ec#0wW%85 B! .aC ; #`e{ m4cC s//)bd+yAJ^+Z `UzDSRBC!sQWuv#-p<xޖ(g2-LeSMЗjGޗRzg5yIWi/A-N̹Ҧ-( Nھpx#xQ ;H2YYV+^ D$n(Z+OS_qj9hxC6MXK1?ŌTg0 N˻\3u֡|d&ݶ:kl}|uMߞU7P'J#YJoį0d[ꥴRG<Sma8dޥ)Ew f^A'eꙸ=Aئm7(4m{b{?v%oڴ~bx1ҧL R^N۴Vcx<8lc PNRwY^zjƍ7c|KҴjO3Xzoc KЊ\bp^H2@{ X'^-0O^q fp/eֱ~M7Nj mzc7|{#dz~É ϲEͰxt$zo-?bbp.8/w[r Z[}z[9n='K@9FMVǨCxvżg$VLtRJ'v1Q^C;i7X~cڮ֩/mN$VҞՋ~`bb,]<,rFS@Nl!6VʂX=aڕf361:i{@.^F?|PJ=6/murxIHfϸ&#L]ׄ蚨By!~8+#)ޑ^m)`',AW='| /1ً^֨^*Jq,qG,s/p.Z;4CeÔ9InRkm r]1CJߘ֔37uxa2nJi(O9T/@Wc:z&75[:jjB?0O8>Q9f{<%4ﴵ㘛M%q0RXi$@Aemli2LPJL;R>{یoU]U۷NɓIljvu;V*}=A;ǖ=! /bçc-Aʴ瑱Ĵ 7{>9Tv9~4XWfhu浩ޚӃp&jmi@1N*>cpYԛcP'=鶡w78DοE̽yJk,e/98*fLo3zAo%Vj}f 3ë*׀9P !D?A\m~s *H#U2COx(Axtg+?ec̉%FVDJqh,K K);_p_poXo;Y-'JioSV}NH^\PKkxR ط+)E+V,_Bm嵭I *{΃o˔6τPɫΤz1'M+qxcvŦw@ОT%"'Y'ԇ٘Z,Ɇ1"p4W[ڍJHq<вHknMӏ{t^U\A cux;ed;Yb}7Dbk;TE]q#}P_z^yĠ`%?>^y^R -*}юuig5ûIg/6e/ciG /j2Y.o(mmc8 ƭI큑j{&XW;} B TC| }Ih -_$f0j P}ȉN \ ݠ8zۮx`66Hgڎ1.@ b//cqƯcc9w[s.F@J)k}UpĥS0u_ڦ=_tJЂCFǿܛ!JD&Y<$nϺicK0n }YObar}씓e^`˫N8f;c@S$Wη\ /0[|mTkcG;9^o2XkS0 :XK翋T>>nؔyp޳#6ys_cq ;Oi[G 9)ga] >JcM5!0g]R88ņcXLjo x߬ oۋ/H@fx( zSSEVuM[VXWW]/WjoYr)@׊t瘧xzKa*R!hٮNO˦M=%3qlyb2ӤnӼfڴ6%s ߥf;%&׻uR5J)7X0frҧ=M'M:4F(cC 4 EH|\סg1K5`Y&Gcsrm-݀ᘭ-k8^vh ]q1b:8s"n\+IUH7,VQqOyfO;M^@,`jĤSF2<O;x9Aݷ/KdEe}PY^MΔ 3 H}tD]ehrNh7@+>Mz9Aq:x GZF;KN5䨴Gܘ A9Z?Wu.(~!S#M6g_J@ojJ -s}1 ͓vgA<{AX9Ѓ3qOT#vqC7s);N`޾X-u Qmm'};HbDr&Vʍ>A-Zz ];&j ng/JlU%=ƟwA G|c_̩3JLp1΍  &5? ۏ?> Z6~!Pᮜ3 Xς rϊ_Xيf"7nSRFV%6j17'9FH=mu5T!Dz ]~=P!NTC}gQlw<`U}Y}xm+#7DDwɖʾ:'Sf<ߔT/N0l#<<˓&x3.+`e|渙OWa1^mpuƀ?tj7Z1e-H6kXf 8o`pmr‚!Nc}\xρ59)(-5 3\51/C,j/9^mNOzl+٣`>N_1XQ;?\,Q`ELiԎ}xY18oԄlb> HIئW#K++W\9e U47z1Ex_@#|xyWQ6L&XܯOC:apO>c,SzF }}ZƔ|Z'>$N}+ǤtC)1= 2 LĤ^ƉO=ǝ~Uņ* Ɣ>qJԈn^0VJ윛9cSVAác7G>]y@}os^@? =,cޗq=*`6mXKy,;9lyxNNr|щABLwmeJ:{'']1ŘRWgbƏ?/Ԣ˯צD+yǛDWp.Ulǔ|#js4ڤ:N)0ب]ܸlsҘ@6-96ʷ!yŔw޺&=ഒwU']i \ V7a8u9vn^ŀ\O f/s][FUV6㚏3@?R U.cԘu:>O2zI`?M,Egvjl7'.8 n n{ʼiϖ-txW*tp|?o8o:o#fʕHCz8Rb_Xk}}t ]pNLz5oۈVo]K]tV3f2O'9uDyn`]U˫teܢLd_xK[v(&oTDzpOgʈOҊPԨ[:_SKX +_^C@7yklcem< XV*cޘc`}Lxpy ^i H޺@ O_ O~σcG>xY( N^q67tþ5 ]WNv2b<^{82ZxINmLˀCJ.XEjF_Tc^4x?=^e xy,8Qdӱoo*rc8JP#gl ýc <ؾGW[z]7DK(Q#>KdlJB(n1sWŗrcP п}'ކY9&uV[ƾxcp >HjTi-mӧ}|y28m*OݴLvP0;›zg{n=yctHSw.dOL%07'ZAnKJB" a/P񠫿@)}?@S[IQ]qᲧs1@00|MGc:zJ p~}3׀?皺  >}7E]o$8]by ~>Xv9t9@ŬÞ ]X:Qjʰ֏ P&]79Og @>z{g]mMVtbj/Wɑn;RS`~++^[ݘh\m ՓI)1h"8,2ix+ˆ^q^gJlړgzKxpy(*xX|B5S2mڵ<8c0j+u'1i͸qZg0ؼ97r|U`,j:Nc;"PעJm{$'/9xSDp7OTq :@xx%ɗ =RJGl xe%EYO]9 %Ǐ!Y~=xEJ7۴f7`Zڮς>p#0\xb}fwz0B)e?p-PoaSGԴv :荿ReF,.^uվc;i~^/tMkڴ_`V:B#7P#S$7_mJꏠ| ChL#ev u5Y$]}& OUmwyy0{̱Ʃ.gLy[{`jҧM}ﷀl@Y+)c̞SN/` U¥ w?%y/ (^uݶcx汵o]8`_\\?T;?eTc7Vq: /dm;ѡfiݚ;={r*`qacx˻&Y;<)cf >Jn3&, +S+ZqFze}־CFq0E R6_:h !sTx{-;Tf ܀u`~ 8'{wL9z纰D#Qȭ3g3,ik G&{[>B0pc4cuJ6byX1 _1|me~yA1ca9;=΃NZQ;F+ <$<9~/Lu̶WC|`)AN1 ')NuQW+zՠ,Qoy{byxBwr*_6&1_t*ydz6R/+ H\EG=/nI>RVԛ|šI+.:*)Ki'9N`8 @w)YmǨWPzӷҦ KH.xC)mx2͹SVJL袻+Lim:JT*-1g a`8DFeW];iO P1RZ_^`Lqݦ(zz-Z( ?Θ\kb[ۏmۧNۼ??eispE}r3龖:JWzv@)<@o̗oԊ gKvLW#O:.a:X /$ri>UO_CvJNm}$g6/0X+}Ҫ+\hyTEx#s+E{f؆x12T;Ć -Zyc8kf`\Y8 TvʼvlZPQj? {r<ӵ 瘢4>Z\dαX)~ A%/ +Z@ )nrǺs[<ōj؎gqL:O{weߞ}׍4ν:HUG} HjV:ӆ(\ӗ+@%c}WjsB'YE%Pm9T0Y㥈ꦷgE|hhsnGd%wb܈icx 3ڞh lg"~ٟFtjv9tο:(F_>J~\ocPboEc 8axSJa)/%UӮ{'ĐO9FZw}o7 ⍱Αm30w mbߊf [}|R3ܺ1`/u>wr /M)+ٷ@:G`{_=oSl]/{U觟s$@lBӶ 4 h(nx2%lKbUxd+={vMxS޶i )̎)c /]@uJbyyH4[,,(hl<,0X/78Pw0ߚ5B} Ϝp~ҭ `-4u4t<v2֜윩BTkӺMf ^r89dݿ|yWHn9XBqGKhniⅦ0 Dl/gi;? ڎS`94e}}ធ|OCŝnl]N7^w-$Oz^a<@ WMF:p^/̶~/,t*0SmI/px\ >L'?8QoRvc懗'=X'.=JXj|6(d㴎.y3vM(3w+ǴIr)9ϡ#vĮ+}V>tyM5uB3 '={ {I `/@ FL7:&Zx{G(# v@5N#3{<JXn?UBFC+PY\pQa0`uV\m;u(YPbAa% o\樫6- @ڏs>ʮRb7 Wy6)>5MҨ̄%QΕ63b"Uv[hPěk3;@:Fa{Mg.;+(̱Ui cR_A+<+O;iz : ?(%RHG)T˻XqS.J9GiW@tmϸP 8MÏxZIЍA@*L@2z-<p jkX9YP=X H¤CǪ ﹩8_*^*6b{^ P#B_+ͥO4Qmŗ۬ĺ۠1gX&iC.L: ە2&KYZ{RMyϡ|OOʏ/ekQ\ye@G!"csg{ZO_m_2p5;AۏTMŝ3R?~@;`RU/Oy՞x=`i/vAAy(brMu\{.@b|쬼~c @a67NxmqF<&n| D}#oK>xO߼/8|3 WR |wu-x|wohU?i;T7$mo?RBx 3.e Z$.EBdu$DvbgG3󱡡l-o;"yghvzʛ.x\7,HcĪpgNWjdNL:`Xtʂp q ffY=ĩ7yPڳNy+8H`N9a i̼bUFL.3چA޻_i[ \q=?  F!VcËk|dTڻpM/J}nXTL^,^Pz:o-E4GU+Rh*$4fz Hs4+%(R_N715CRJq!MΤ >"kFݡ I)j|[Dr]gꥴoZu RT5L^؏/WJ/twşCmmci[HU;!&~GI Կ>'͢6Bp٢@xc^gś}=٦Oe%W/ӣ 흸lgL꓇ީV' 69 q\s/4i?sq,v;`p?YJ@7w͍~ߎqF[&TtyT5{њ?ǺMV$ਊ@m-^wcFڵ8`X ڽl >~Ekv;eN`GqG=? 9w^հxor13~y•tdžyQcNg8;#+^&^rsD H#E3Ϲ쇀X<̝$m=}G|CՕ`yBRV@9@XbxԳ;/Sb+<(BgϸM[>MūG%@q皼l@N98ڤ)P_^rčE6e=9CdͳjLNS#d:c3 "LlJ3pWc(W;^6 Pʾ<Iw]o$I,䖱)qbv0HM>L ,N} 1߀ʎ5Q+#A7,H6N 03\Nnsc4-"jCgE tz O" =؏1q'`g>iZ{'0\W.c7C}<ЏFP$ (h~G[^0^ëR)<ji+5/J@eUK=:/y9t&ٱؠOI@\ȡMoX1d&]l<xRK8O8CH>;foԙߤgwN>eԦzTaapXڛ> (YЦtQ:AOKZZ!JPE/4xjcl56v|ƹFրզE &Y`r6zlG3G6sWa][sySr/E>!Gu*(މ=[5/ces<t(1fu,;S^P^EK*P,0j},UL[Lj¡^)Y}";H)B^xbY PkcO]^rr6y=o&a{ӟ4 F\:JĝC^SO*QֱĚ k;q45Q`~>穏2;ƤU`3@xbtSKzߺSpt#q=޼y_;-ϔs㍗Yx@]gPfmA)cbPw v^{]dC+?%^ ^ `QdLƹ(P2 ē^_^͐Hz_O݀ C,$q͞wr|^rW1?~R2M_lĔ ?qYUݳg1sQ0+Gb1xat+}K4c.[t#[ZkM6,S_sYghf9)bS~eƢ6H y{\b'X(Hږk9H%&90ek>yv#g|08N:9:V9cSʹ)%StΝ7^2sYy3CO|xu~~ETF= FqXT w[@WGǾSهͼWj[8O[f߂>^,&Dz>"4.0oȧ#NJaCBuV'`ñ 첌QZ_As }G/?~g\⺲:-}/QYu^ގUgNΙTk\i#=P/p[':M(bZ@r?\ѻ];XӳAwG=sa;({g>k(f=<@9stOEU,#ԡK^my'ȗ`;1C$tCmj ,al/'?7ϖgy0CB;5@xS׀s f.X٘Ӆ-qpKy|(Uo xn۔t=>%Nε糦}y/xA]^ Kn?@: EJ{?[Mvyx\E0{S/%baҌ||Jfדg})1bק1< ݍ+$)~Mo=qٮ噏 Ki'v]LazTK-5w9R~" Kot;_ K[`Ơ[@.c@7=nj"e)wsbE:bڙ{p@qW=!3\9NE6tcN 3Uq O>9X;}?W~HM*V;fKǔPیQ NXbo3Y6 `ۘ E3`pw8 Ʊ+|+:68sX=4D "ϩ?ٿi7# is(\U/Qn'ŚEvZlYk,?J9xS yyqd\_.FANy ȡ5g:Ov8%u^ya׶\۔\8 lOsLsE]}N C\véw;;) a8q} e7cG~reِP[ MmWMA/pP\x$~@#eIǻZi;!̍e{8)f.<֦وGǸgOwhqVN?q~\a=)8a:}~@ incнQ|8MZ?w5ű H?F?bﳐ1ū@Y)Y*< &>F"p9mx0H_K}h7J;ѵ1އ%ywyR/zTAgUw^&щNRk @Np3hwoW:ư>Km_+(>j N=: /ux}c{QٷoK%o}y;T enS$7uR mui% q#umP/x+ :۟םg  ?g<5#~85[ O;Tt6^pnNc>cԿJliΗ֣>9^= r; cc^ۂonn ~/@S>qDlV4n{=bZH]OiBږ|X@^ gcmsWxaEl3-4GIbq%N="0= B8*#W v%iDs/(K6^v>lp<4cu!3u5ħþrǦw>iR<i:'P>F$G#dSO{1楷؉KU ]$M&iI#pR2evש3}Ǐ`w\;ڗŽ}ԥ؊辀X3&/:9zщwPbXAгJ,}:~.zbx ޻ 78ƾ`qY kccǦ?`[Bs]Dh<9^u1@7;}{co!91E^ʑ?Z#6% \g\fۦ8˔r#80sV|2LrD7Mso=,҆\ دo]!R"1bd YU] ҧ/mrgɴ|VDZүQ9E @^߲mӮuӹQ_ח:GqNU*71Ұei<3Mq(2Xd*x[ٔrob3Tk}{!yzK0q٬[ax9el;ּ e{<ĭ7 }KE*~:̗ OڶuJ?YX떽@v viq_-{e8W]Rw.̏2ͼbgN9wߥkܻ`ǩEЌ]u&l;đ Lg ma ڲJhZXɡz^Oy}x1_^~Z.h5'fNkx9qě:y<\_87 6kd,] DsZ=&BW~ۀx  ?exݷ'} !4I;:yU "q /zΏeJibf!FSSpC&+:ܾ7vc}wũkPܳ=u_~?`D$ K#Xuis3%snR:FۢvƯg;S荳wj9xL1C|> cn=A>%t>%{yŕ+81q H2o@Cb~'}75Pkσ Tw`%@S͘E!1z% .RIR5|y)9E0%6/)s{ʋ a*ݗI vCcC[RL uO[,@@݊@{'Y5|2 -@Ϡk?&0}N3Y5‹wBZlPǻn{z)OA׋izEbSУz+ x`CbOLe\:%?UYXaۇg ڻXekakY]yԒulg|A՝l+̊?f#ps;__W e9sz /L[z ) ܛ>(T穨GOqZQo(g8 sxKF$䘿#&gvƻTbWxY6DӶ5vsՌ.Òa? o.-4q;ҩ:E țpjzqů [oLzV9)DTt,\Q-8G|տ{:Qk'zJ0tRy3>@/yҧQ[i(EG=m  לIB~P^-RM$yXL=/㔍5O6KU[!&w<`nq8KODc1Ǡ2#P 9^^Qʞ|)5% 7@x68tWNûԣdwC y% }88o7z*+|7V.<㨶 M̵6+S"FlyJ=Gqot@;טg{Ʃ6X˹Sf|E^s?w,YŽ3% > <:V=@yơ9@U}Nu/4ҰBqKa{W*Xob wL@4ni1JNRrXuEyNz!Tl&Joy/q)W'{Qi%䡗Aqܳe׺>!i86K5H>:sGtyNK]zlRp2 g.60 \,0A>9Nc$7$v i1g1 Y`期̗Jk qqII;l8"饭vMQzZ}ߪuNh5q ~,ؘdUREK럤0[Ⱦ|g۠y`Hʌ!H_onw>5:X?,Ɨ`΄}[]ݷA6Ǵ?@9i|tVӺ2PIԑLdύ*}ulmIr{87HnM[e9,9L&7S8Xr̗aG䚏NKikw%iӃ|y4ge wubÔY 2ÜoIabaU6'QL!.=0F#W'`[뼓Ub(Ra\R Ge@̻f"ny;hǵM nK gv_v̰080,kN8&a>S6H->>[񳶒w08f 8y< Ð5VP^pM,:0r\^;q,j2o#ߗߑ}3^ N8ݎk{~iGBjzbJ? Ĭ$^)&8«zߗ@)G,XxS.2ПJaչsoc5cNd8s%3FIZ?ӨL2 8j wNl{|DRMNzE(8@#!wyEAՇv$-ky2c~ ק@20/^酖X[CHjXmS>Oc.ˣkU,)cM `ZWg1n^ơL .N5]L ~H=JߵJdXs[M?a7,\!y=.7a`B=nBsNu&u自csy.* ??7BriUnTÜ7$wL]#Y%E.l'XYF윧qߡ?-6 %GlS^~u!`؟$)CN@9 2jN}b0aQ=/H^p h2²疵c 8柈Ø`H2ulw?sʘ7_ig61s͆!o}d5䞾\ه=[%r7Y-q@$ @P`Jˉ7]hL'cc=/"7c/yb-.l,~b zqDu 0ս?m;,Pw~&- $O? ~ZD)6Ͼ*lpv=bSB:`6 ]4S;@QiJQ9|(0SGa^T3G[pNieOoZr ԓ>rd[Qva a3/ps<9wԁ0]l!AT`iۇU|wT& G4 +6CTriTCREoW$1F͉3M)/b!'+gќC}XlpZ1c|'96NT rˋo28'3t --w\ghy]R.prqKpĬ#K9s9v^IJ2{7 ː=g;%X30|%'Z7޸=3:mjȘʞs^F"G^7ьwNyocWyWh遗}c5SY+V=e-ڮlEh GmU |&Yu]A>\^`\n?DqeҪqv8?3 \a`,9ǀ32 ]_s'y=}`+^t?=kÚ/^< zێZWT) ȳ!s:gk#o/sة#;v{wL٥ؼ(1BF].m'2sI P(w9?E{vBmzvܽV:1cόY5VSp˰>t/9^߭TiOdfnX%BQA/L8bw]Ü`LGOحc/.83.g"E[87bLg`%iL~=!H7HԵ??c7.)Q(?V@? jZXU^mjv"eo\K4*m&󔕷uNA:p_5d.L Gaqew`@sns85{D:h# qgQϧn3-܉N)\2(ǒ;jy/2Es&3]iS/d럔xsLd;47/FrK5Oaɕ8oʟx+=@ͦo}Ä\ZtO=f@DM̎h__˯V@_[r̷cmo>^p\o hTi ac9ޑ\~WTl} 1@d`H[$ʔ eal[=-RwT2;7\965}+7tlBTIgGR3gICRlܩNٵ>G61JQEVq%]^=>5[fJ8'wrLS%eَ ==ąQ& ܌U>@\aGw3N]2aӒ~Uu')}R/髟c:NSg.yk,>+FH(NId)mplL^s۩r߄ʧqG/ec>{4)2uI so@@- 8/ns| }dg{[m3{ulvтHTj!ܪ ~SvsmS|snl<M\QVVHY1-H _|r]z {O 뽙s$^^HO\x}8Ƽ+i=;󠬜=1-< &E'ojkRx@92|W~s_ͧZ]ډɥorʗQpæ_]_GZvqr*0Kߓk,@}u6'~8+E\L.cȨ)-^Rf}H߼X^T.c뗿[o_1h't֜l7r\a{n^=3}(\?=6Ӽxor*6}9Oݻ`6@]J %kO𿂩܌;!uRr߄qlF99v)Ͷ0E>މŔP.אWy*?m >}Sm6۱L*'0aix 5窋.W .,?}@1 3<=D=tQ.~< {-W>2Ug%gZ3ès͈#P_<;5#dT70{T&.JU3Λ!G},XxǾ#̉ۨu]Kwsm@,v|m;~Da8Ǔ{gŚGǞPE?ڧ3fyHh _+:Ss+aWNʙ,D/W&^96sRPj_-.P^U@GbS238ꛏTwJg 71CL h[{169vf. 4y.yWAUa~#uػko?.P'.-nHdVg V<,ywÔÚ#mWP'1%L',L`ef f(N ;\; ~y%MOLȳO\5N?t,vorѿvQ~HnmG}ޗ$)Ǘ5'G=XoBIyo~<כ\vʭgwtfHo8w7x#{ѦtqWglq> n[<13Q<#+kͽ-y䴧1=Oqb<{G2*O\1uwhoM!0Zb".r5R'<ԤȅXMR7 } SmcJq+\sl/dJQn ;,:`o]>7o_ŗ^?<@ `P7ٟ;]t6Kˢ ',ϱ._* 1RYM;ny61z1S,q+{BŨâ"gяjgL9PM=8稍l;~!͇1읲*vxQm|O;r#{_˷e?0@:FqŨw[ w:RwrG::,ڗQcQ)&ccQP !{^5'}i-P0ҷo?~Ւ ^ {!ÔOj9$.K0Od56txln<(.#K{,l.%^uo3}\Mu tHZb0n2s?kkHf? |Ϭm˿nÀ3v Yo@/?R]+OwBxFݫX!U}-1,PpnJEP>C'92cD 3=mdiD|s1]9I?Xx$c8NP>M<.VW,iyŤ摝tN.Iߎ}aϙ@ʥ-NfplOT~[YavvV&@aqI%eO089ffkH_|&e\vl=Eya'jeʆg{uzs]THNf.` нje 9{l/-2srAkp@֝/G+gV:y#b@ m*lLh9`lHߠ}1swgjo(׷y! Ӿ5f3En(^{?e{oiz@}A0V{}/i?z (lj 0+~8wNNҧD _jrgQ5)Jʴ!ss79arǟ`~o/̏,):iS9&}Qi'}9򩤽yeK?=!{PL.s`QQW+sb\މ0晓YܴSǥmblyr5og~BE7K O Po_zp }p@1k|X8%6:*E& ]m-)EKpZ>l3tZ)3_$4] ;.ϪK\plxx g%7Yիdem1Jө)1IP˪g3Jdp3Gܠs3}nJlxʵ۽=ao!$Jsݴ}aws YF*r y'{{]թJYy'^Q|rw ׂӶ_< CZZm/X ]f֒kP;B+ ۝L䚏U\a|baf= FsN=#( 3FINh%ej ~{)\G9 `/No^'0ٿq ?w޻|e㥟]|7g3"c74 ˰@/6ncMTG}@z|*Pzm%=Tg3`ҧ^M }9.7׌s-Ѧ{s(PCQwKGEhep~[^8XuTfQ噚c7ǽYdO`J.,Գ]PvuqzoW텈Ht~d5MqL:F_RC4g\5~i°xJD9לC~7dUGZ }Tay%)6Pn8Q6kG~mdks5%LxjsMC`r)/eùgY3'lgeA?XU/@֪8w5{Lj]//-}_B%uGxn|'\?_1j_s*i#aOp\í~*a^$NyC77ZJa |DmQ-1sug8'-'SÑjqQy\!\Z@N[Lʠ 6L8` S P^`^ּ3E.O[z%d"@~&gQݘiL|瘴L_z=O-v+1Q<.!jvDY.mQk/?+pO?@/</3y_ķe`g3{>ygͻ?o0o@yw p 괐 ]8e.,SA㟐m54Z;^1䜧m}mSbKzӂ}z[Q4:?e,{BMb5T]iJTY hǜԠ >@Dߝ&,dsNtʐ_S5ǣvu૜ {>YkF%M~石]k.vf~VrnZL.S*W*/`5|r_@Fӎ\Ȧeלw溚OjCRAI'2woK0ER~;!&OBڎ]j@DSsn 6yb`HIz3mo+h>siJCH;OùzMnx~@9p5?bYe!{Gk)'c45Omqmd28Eʸπ_<}Ƨ_p.9&nzbr\|gNx5SPN)n'?ys>#1y|6)s~`Y 1A?*'5w5לm㳒vT'o߅R0xыd|0jF٦4[SZ^yZU~:AO̘{{3)s ҧ+`=iRbΑH5=m5aԛ9gmt1})8ϘyK%+<1b:LQm$ORnfŴsf.7-o`B /1ȶARx\4@u{: ?bb'o{:(p_[򎳻bکhJаܿ^2Dh\0μ)@a}v}`IGS(|6y C0y3saQX;9Zt)O+mO iA褨9-^g1sOJ$m(z]EnǬS  K-~d p,,Yf1i{ #9SOn0&?j[a@Nx4#i%n:v@ʩM0ODO-tl'ڳērkv۹=#c[9P0 I0> ;m#e7+ԕOPZ`NzA9yn+-D'a~j .20u-S@en"Z;3vg6ن|$+7-#D'ٮ\ڑ.Pm:;2^n9+@x֣ e-mB ^|Z5qw8+(_ZݛE$uXH8{  g\pl–{|._GO0X_ȹâ+8q-m OGIczR7h[^_Qp4Ci2l䧳n#)W6},ؑ.8U|T.7e,`${(ߦ~LMf,iU3'?%;ϻJ52fˮ'MM[Ư6E0`(mwOY5Q;P"]$vȏmF[(6> y:)!Qq s\⤌Fa 82}9*UuӇA'=@$%E_Lxu Mv 3!>O<3~ۄڴr7UKR.%"zݾg0#/`y ArNeg?&;%v8׵ SLn! WՕA͎Ͼ:薷CQk:9c7v2ޛWW+↧ݓQs8 U|VIAP5Խʨ\c;WaǑ/nO~9*Juˡlc>-cbe˒'>Y1햒a=2:_ιw߹!ܜKcͯA?$pjwԇR=s\v,s T,Z-^y_ WRK(E3c_39o8sT}ln\c;yN[Ia6Ow9깯%Γka 7PFf?B@}xG2crk l];q 1 Qbq` ZS{_D-2;Дl.˱Y־Ůs,@ }SVH|/k|$}y;%+5>{#QrMdLyTcGI34m>{wU+^PԵIS .8cw\0/HO<-ægm3P)ұ\c+z%f~:`ՅU(&qE㸤Y+aʮ ^34cUl;^JsJ-ք4@w\dh_P/d?c~ gN|ĭ`kB/s'˚~l wBWT:@~A>9f0:v_hÇt|sNPB@;fc.P>AfGZ@o4hLBXq-(y绌Z*/ikG5szzWOeպڤaݳ݇)55ږ59_u̽5ɠy<<=@}Mǥ\gIK%qt:U|Ot|瘌 ʉ>Ӱc:Gl;ilkw/*nikrZ3<ւM87P'֒l ["}0WŎ"kO4xk9[o u,\@g6m#ǩ _'?<|?i;qo`5y?O.dO R } 6ED>[-͖X5s-/rj.GYyx7 U ŷT"%ڲQ9;9{O,> FEqvqfn{],}v p :I7xse:q:(WZ]m.; U myE6 PgQ,fkNc1=sui 1 :fq,+m2~ƪ|)c;>IiQm'KXҫsd{~HU-)11v}Jª㞓jwyTR6}w6{۲?e:^]obH.zz3]3We@X-EER!8Q HXXEBR2vZ 1GR4:Ԩf=z#~Zkݼ{Ƙc@_r.usށ4H&/ 礼q|78oIW=u.X:bיkg*]\+vxfcVɈ՟#q{oZ-Þ pnݱc;@Ga䛯XG/ eTל~t֕?Ľm|ek>|%]66y+c1t {V^ȉnﺴ]Rc=9\qvn>sw>9f3Y1y;gC* mzA9tZ@S\sʯmwn 9%0AYZ`n v:m Aww~_KW5߻_~-a? 1s~qpEw+OH>朹XO.q>@V5y*+}ˋ[D@Ŭ+yR ʜ/v' 1eO*ֈ=|t%,pU^2kd\'R[vdM@kL_?&V8w9\ۯS;iˬ"7reˑ 9UŲo~8(s̴9.7ДP9}slƝ*^|NigWi9f߰˘]9w`y;f8a4k7ӗK{< ʝ'2~oÔmGM9̎%2 f%D= _O~=Oo_m?'}NjҿxŦ=tB^タXsL5Z@Xx'rZP>}U!ĕb`]s /P^/1k8c>Y}{=T"iv {n\4\)vE~c=~"-kyjZ'̘?x>_c(3r ґ79;6i3Qqތ%: A9\/g1cսW< eJb9rv;WNZ[$Ld= +{ 4:5ve3·xh-眗6Z҉i͔p #L%.ȋ]2ˠgbO ʑ,"E'y_Gaӽo58?: ?q{;l'E>KA7k-c=. Npv,6VnZ뻳= {nR&r.X77s9~W,tʭ-%BҭXsW@K 37^pHaֻ;֎~6r6N(\]ޛU/æݘ+ qU]%w^cJ'|YN}W#S_%a N .øۙ P_M eGs%MU#P)uro.:q=Ab{|޹aTiuW=Lb 柣ڳM2o~)\f-(YO*Xas,uo,wrʛLU8즪T(cV=İ;d>^LVspXqރL+kDu.z|d~qmօ'p+m ؇眾V?r{΀g*?y{գIu^>w*MYPA9?yQ-\e '`sϑߖ̧wo`]qLT}b 1役2Yz@عAEM=ysӞ1$ߕ^ܪ0zϳ7'9,*p;ZNmSnM `1$<` &̜c"u!`s9V21sxy}꼞b˦bl[-cee8LxYd\b8{o'vôG/5 hky\~)kX:K]I&٧i7X϶.ta̧}1L 㝰*N(3H,U_6G{}3.dr/;΢ec&^Ͼޤuqsׇ[ ϱ-~ZUIeaB7>Xƕt])n|.^ֵxmgR1`e1D6a͵i2p{ a@og^G̽c.[=%ܩ>-w< b.*Ԁ|VSn-:`]M'\qJ_-sV瀃Dlb~mF39U9Z``E@6y*]e@ӣs G6bU>mr7u1[KkVKo梡W~uǼCAs|4.\|6JW,d)π,~ VKRwJa(cܛÚ\#b_`Νsހ9|Zۉ2H?\waEyHȐYK`̠|Ɔ=?cu}̓e"X&/0^ڇε=OgBz0L~riW1a"=@ FpHۯ&RovW|}93Þu=co[kۛHX{''϶ Q/v cf=y&HgykF,@?>@>.f9z7 u0 7N}$?'߻ާޣQ"`'aއM?G|US}%au9Âрo3sUOǫz!${0.|"nTO}3諞z~sʪw-X7waQ"EN3zけv=ޅD5LCS+DZҪqUN1O 2xTX,:9 }U#:rMpk?sUU9۰yg<2་YT.VHaҏZ0-{ޔAIIw~5.UCf,T5Wl|/0}W@'o,{{j|S[<;ߛMg]VCor$0Uel3@>Iy1m`8]aFpڵX}v/(76Ro^BqyØ#s$Zu>mr w^3Q΄o>,ߐ|qx˱„"@>CʘmjoZJu*ss͍S+1wیH~F^Ү$8 |;[N y;M@lƯڀ91k<2:ݪ {еZJK952v{XCޔ]dkq3 b`8xuoJoƙs>O1噴]Nw`suIn)/OWKr^KXӘ9)rx皫vvVU;ϙ ╜@MΘ&xrq#;NPh?|G?1cޣz#>`==Ήo> }Ɲ{k6Eqh/FP` ss-^\IZ=R לu7-YTl/NW,{c]rm6^ s(6= gHL~C=^~Ƚ3=9n9 w.R#Ϫ[)s?@鍝3f Xg,wLa1'&'2Ot ж1! f.æ'43?OȸA9iVlK'&vym”2sXu*~5,%zcZ][n`Ky./Nez;ߠWw,矆\z#.|W}暒|vE$AJ~ꝳ 8G>3ǕIgs66jN4@zeiI㨙~W@a8|]p1izзo,Y{#b*6 0TyY1W}sdme'X5ϙxf){!s95\p@tr0vb&X?O-eG׌ffԨFpy O)ٿ̗^aZh)ŤؒvlDa.ᔝ۟c&*= 26`"}S{dt@6]1@2қ~Q\w=s@{ P3?919= =.RlW"{]=mlsnp)9'}Ӛ(w<[D!]xZ)ٮ>a`nNp6CԐg /YY{N̄M+Yd\r0~#Mg[оjc")=KaE =o7"3 W>TcQ%(5`O?9tA Ɯ5ۮy`ne40ܫ#N~/} /< R82Ž?hAtyܻ_QMʲ5%V߶0mg;Uy-8yUC h_^O;U [?͙ &.3oT, ~/UZE`T~cVg^_C._,L5{2 >i9ٙ-UH>KE32WuW<՛8zo@L>8ߗr$ຄ9oaj?ik#=i@zڼK`p~N97Do*[~!f1rIݗ{&7;'?3$[>L-9֬$ʢk.8ٛ{F}ŚLjyFIہmeװXk{ۮ3漺Sh9Li 36yo9l1P@f9'qm:&s+#חs.:/}S~GnrOp@')dv2acwPN-86crb̽cX ˄ov9@ @~Œ =6ON'=S^Wyx96rsd8Ž{u 'f1"\]}Ggq7> ^]_I8߹@cwJ\QG~C5Ulp2mȸِÓBX>o\t-:{$ Y*$$>.=? 9oT:ƛ ] sb8 )6@<.晃 L:v_ '( O0*jVz'(\Y+@O_mKQ`ȼsWNF (`ݛ=J[=U2Ϯ}L+qO%o\w6u%?f?rqCw>77AHoig3.ُRNftiU ;cꝫ|HxڼOȶBæ͘gu=}I3PK\ZfG)։Hʚ g[O2jIW--ko^]qd,Rap020J֎]98d(dW.-yfp36A2PP'?hБ^A8wDα>LL*:Ņ|q;=י1;gPXia;Q d0Οxg+xsæyΩC /z / c|-QS>Y 3|Jcv; P?Qz#}r};1JI Qt몛N;nKszg/#{78'O7[/]'٦ɹOO"2ˢhwz; m.J׌Uj3]bU 5{3`-;|mVv̪:7[[R<_/7 I㨃Zuany8ˑ=>nڵk`Q|-s-7N7'gAW_W~>?cgΏ}ÕIGCHvE#i~|Q%XM|ӯ'פ| ^˵orpވ40j)7箨 c~ZX+8Oo6=8v#UJ2; |wFMح-֡Z3cLܹɛcaԷq9`>کw$Hqc;o*c7k;eJ`[}9^/s&81 %4!C]Xumr72U;>oDN鴪I݀QGSn93Ri7&p&8ˍ]jl4aP0@ʑca~Oޓ~qO,=?5 =>р0_?o~^_]}Mqvzsw= "i/ֽ|ڷ{$2;UkFˢ+/rwOP_Ooঊ ;7)m@鯜޿=pOTT7TJ* ʹbH#ϒQkiw$o] ȑUI&G*p _uDkR ʯQEsj4™Ӕ@H[P^}RKOe`9vt[Dw>Z\_yo緧m)_*w(L3tФvœf@=soOW>ꚯ!ʠc - |!.,60s1]O&o9>h͠w{(CθdƜjD, [-wj@$5yA<9;_Yq?-zUQ}{įkz \ZŵB. XfW0HK9p*+S\ܬyl.7!BN  VOО}ÞwY{5CS) u& p0-RrvjܵKy@^[3h,DLq/s~A>Hۮ^c.ӳ?maO JlwyXuiF&glR%#Sʫksy˦+a+D/3XQI6C=xJXb@\\@ u .1?o/G~X.2?=`<8Ma?|c<}\KyRvX~=h^^|wq$.syڻH(WyYUzgd8_A/9?㻊9a,w;=6(TWF< 's_=uQ9|}>Zr QܽN}=':kLIsnyZwY6=A_r%L+'}؎Q(1kڜq$Б3>ƺ_OC\@ncw]KC$WiMold{R!Θ]W2xF_gnnCѽkE(گ8#:%ʁOI,x{ 4[[û61`^hIl on|w^P H75C9V$1Ex/K%xqSǼ0%F60\.<@oyn"swyK"Wuoel݅5ǁL6:S/!`>-ZLg0ôϵP^v7ikCdsmphhr?-_d2ٖ3HWfx7FpdD XŔjb©M Xîv`K+;}%o:foDA-ԖA?rЯ8'r'=gNw㽗Mvm%9tO}Ym`N9_>+g%78K?@yzFUi~[1/I&2{Ot;-Q e Y e-iy:D Y NXMHL[k7&]`%05fG1ވܮ] =f6C^ ;_yS9~9:\nu0c`gN9KzsFH"̍~BJĂЪyicyi;oHkNMtȺ!d%ȰEp%I{c 8)Ri3`8u|]>p+XP kc/ :ؾ?żQnRy2k |+З~Gj,*A8~c  }j䈋K]<87 Iqȭaup݈v h#U < ߭"9VKO]M캜;cOaJrV\nm)׶c,-ɲ1-_+ٮ6IhA~LXFKAJbڗl<ð[&쫄k N"ؗlâ#wuK|B&pÚ<$ʮx0`<}KH[ks9L9\Lwj7DÎ+0O;}]sy'S>9G@?zt<0cvO>{g~qòG HXV@sH޿zyҽ?WPǼ?NT"sl/e,΢Fސo'7,w[eˑ_ ۸Ƈ@z_B~L{zPƏf'"{_#xmwo>2w{juS s|/ Ze>cREP0zZHi\c<9#iRՂ06.8C.č4>@2a3:q9wLz9tU}t܇!w":Ti5 QrХ0m@d 8O?s#cIڔ@F{ g,1b%.[Y$b'l& fFە.u`w19=W<9׈;2uߦՈ -ơs8+(od@1ܒd1Z>bG@]K~0x@zZtr7:R{p!.CE~u>Jg?+=c5ϯn+Kb31͋}駼DrjN3s9f@U뒨2 .Y{L <އܬ`_Нcڮlo=S_)kM+{ w"@&)efb3 ryEL::/95XDL3k>wv1y\dH3~wv&Jڙ(1_rU/1gbˤ 0/K}r__Ke1 r}i߬0=xҰW^L}Ƞ0fqgWɽ Xq){ngu2iUPW/ϐj5. UBm6)e?T N*!M+U 9uNxijxUFc깬^~z3s?] ß>/͠5i~è$?}\&ä`ژ Hf@?ğ}3Dӟ]{z*|;?ǪH'*4[S>>I`Xr;<pq9Pn5Qywb荸i2 aU"חT 0)IG ?\1\W;q'7ȵsʲNmIsr{TN"?Ӹymvx^ JU;;)ktc3 ?pfҗԝ~z+r,&Y$a]9Nf!H}9ѼvSyrЛ ȉ~䲮DBhڀurkaA9@wmtʯ5@AG|[T]t˲aLR빏HRpPW 6/ӯ1=ܱs O2jO)w ;^DH%%ʩuY9 )dS_d~c4}=đk0/HXVr v9-Ghaon r(|\fi:6cαG'W\l6t+as_yK@]15/n>9zylSwp;vt'NSsma$0ߋCOewԮkV~}KBTnqQfm?6Y+gPw@6k~; 8ns8 S|LjwݏIV-y_uѳ. P_U~"q*t@-+?aеV,NmE S ;5rwxHE=9US o@ p.\R ʋ,}JLslͅ|msqSIjU+**|R=}Z=Qw.\WӒw#R\md܀m GZ-_ =_ADWr<~Qߙ~bw˕sJ7\vgt\ ԯZ"rw0`+4^:%b]KiqQU Þk&Rkfs#.vK͜SR#Jf\fgvk7ە~"%b@tqU`^* \s9`y7 cc0+>@| ϩbP \lM6"y-e”`lY#;7k qZG1 #U; <oN=̗7hI}ۑ[w)4@Xrau5dfɑ`L7hd]S`I;`6~CL'^V}Xpm|-?1NS>}$}r@6w@O2l#wW޺n=A@-y%G zXqۛp(k>Q)~G!R] wk|豤t:WaȸK{ǡݭ+LT 6ɕ}U&MȌ}@nCn&]-^#>Zjt.ԴKˮ\ߣsnKrHȦEη)b s{18邫Z+6c^&[YyfN&y7N_TZo$T2!z(w Kᓟܯn=)cLn\h{c tM7&Kw{uJ2-g\ƍ0PvmMNΧigꞷ);x!s͘RkR%g lpS]. ;* cV#Hxm'8FZus`9] Ʃ;  g;WJ &ZͰ;'v]{|]K`ѩ5xLF:Z9uM? (ˆrJ}s|xK1S[9ZFV<13'r9%{o鵖p\-kFѱpCFEgԀu9f@5)#Yi0Ge˘zafdf]L:S[n}jÜלV&Pqn4/Y p=ok&AKr<k3f;5x*x?4j|$ک 7w,u zC9} G~s3lGNK^QܤwyԨb:fXʪԝ A=t_Tе>uGn"i'ϼeB-moЮ rL%o=W wa/^y[mj硜vܴ.2%M`n˼?q#.N\'I'0A֞9$YTT뜺%ZÐŽ+C!sЗ"2YPzm#+gˀvQ/@6vUӢp~ͮ;{ fp>]q, L.Rg`LY 0'םy|n2wump.N~?k.q#oW '¤<}>51 ]lҧwϿ1 ]_Y@ސ@Z}*)ǸSr\c-|Ƙ#I{1s-yos9o.`Is'=HH. S}N_ت욂>sfʑWPzWf͠vvK/wK.ZJrހ*@SLӹS;*͜{5x/61ВcE &]ڕRVZG91@zy>m9`W_9БL f]*դ֘?Iܗjc_a$k^179'̠_{ofo=`0DlA%y? <}g@8ʛ8sloqt69y<<9`|dЗ| wq'07D.ve1]k/ α~?P#Gsp?dy2Ϝ9MI^b8;v9:A;yH(Q[9p=szd=`y˥aԧQF :vqk2`ݮnh)w0-sopcO]o|kJ^Q`ݦ<|s ƛT %rؗl'Pw` LM-y;l}1)*3.|.3X2.t|^)PsFK8%_5l)Jg cw5рA*t]ׅy6_@>@kà?>ms\rc@;', l. }u`~2݇m'M/ߟ<`XfJګǵؑyRwܪ]C B,yRK*Ni'tdiW@s`'J.l+nf(䠗];GId5mhʼ\ߗ]U @oU}0{`%qw6+aMEdBs{T+<( ame0ODtZ.;Ɂ\q>uM䞻knI;d~?pٕ*@w4ctIm!&PC7QN^>sUѿ%M(C6Fe9ϐ[ҾLw󔃞/@Avg\z2h9\mI `D]_ϵo??{|w[NRP~Z17?,6$5DuMG ]nMOe.j+46H)1 y{%]n)Ҧ+܏ ~nPEY@y;""snhn2[)&<; =7o1qT tKqŰpvjFqb;7F(ihK[8t-zT ԧVJ XkYSɷ?4qbpaϰbîc Q.DmQ`wmG=S ٢ OZ;VxZ3aqoBa6csƫ.S߻N {j@r1&/f\3ҹ6:sKjQB!sOs/ f|%dӷjus]}Uͦ+Ps&ŒE+Ԯ`_/^]t[Ytaq9WKS ]q]qgUɵ0]>RQvpr KHO"ղŝ'kw絶 `-2!7$j{c6V0٠痚vE+1[Gx,~LWzKͮXb-XI=|I0`|/Iqs5ge<ʮA9]#qGޮװxL5VI#o_v]3V9UqU{]߿;W=%=}w桾Km&X{1׍/r_۪vzw0r-mC *= 9xwTn8yajԦߦp~)^fpsp&Mv s9;<@Rvʩsc3K5wŠoQDk;{.ɺϼ՛5#KN :f IP}+u~9GK]r2>`c- NτO,;qbߟ|Ae\sH^/qvz_2]frzZIwP ݓ{}9U_K։T;U@zU18$U?]L{#\̚Lf|7prwdj\{\3usEoGw7y@7x5p70pb)>>eSָБ5=}Z1`;x kҵ-.µLtvs:U^렪YPE6ق޵eݏ٬94baIT=k;5~|tq3>rd\p0e2rUv&ڕS;N??B#I)t?ê䝋 aй0VJ5s9GD嫴@xx9%W)-?v=F&+ѯsꝻʧ~uSΉ< cJ k_`hkɗ/of}#R\k~tAy.{bIzF鏞gF]}DcD*#Dꯛ1j6S{J2yZs\~f qO/ka=AE2%_068_ Y׺j50w0(@~]iG}s qX$eĸyRq@xE^ˀyڒ[Ji67#mǣ /鰍y<ApՖؓ{DVT5XȠfl+-R(̺C|ƆA@f?d;/w-ڑIA1޵3H ̙ ?e / \z6D憎eWzt~ zG:{b\suEEuoi;0瞫rj\pHVȱ=;6KNَ}7$VcP;/y>`|5?}E1(7cqf_yh]cq͞w2]a`/s1aH4 yTmA^l9c2wR9w1[Ny5rz~ izN \!wG~̀2u(]_@5}E@֭!_sZQʭA{.0:[:GKn}utas~?.qW 뒽w; R <sJ @ۭzϱa) fK. PQ@}p' ư=?K}ɮ~r= 4he s ?pZRMA9 Š}%U@OCl@vx U`9H;̒w>6KZ%9(8Pr\]ZNRDյoɻ*5K%uA:G}a ti1p`6J5xiѐcʽ/vI/q3~8s O6LZ^l:V'^Gt?/P PFJ߆/~,)&/(OTۺ.udglZ;<N)ꢰj5RZ9.@+J,+ªcqIæځ^8ܨvTe1Y[91v!/ڰ\s}%vH9=ּ@s Xv%߼X($"cʧܰgr8݌<*ci$1%:tnDrױH ͬ6X Pv"[G:c 5́-a2wwIW `Ln/Y 4rfڧ8;`\9sO? w3/Z> Enw`, O\kxO }oH޿%az3/|}|-q;1cKߴ =͠l05޴ h;*{h *.@uMu&na}E>$cj;EDvtZ(_q⤺zOm"{Qi}(1jHf7`RTslEcŞql]~U ^;w}öoTYMWd^,}z-H>z3K $-#PtsOնZ}H*'%4̣nLqrH` F`#+?-_90MtRNX*gfܛ9ooˌڍ!9}; n't#e]> 9BB5288(U3J ;="n=.:e^,jH]1=r1ɀ%_aI\rr#e"-}0NV޹3FT.qcS9]q[3W?ǟk{{,םF[szZ0tҼ-cw^$q=僭PKy[S!Zuu K GʎQw sLMtEeLb3Y st,so)橫rZ_8)Vܾ`&@GA sjTc7Tb=aOOaot ԞOMn,݀<v\hX7Υ\__蒬)7H_g ]y~3Q6] i`6 r$o PKA3㸯]2|N qzwУJ ͒Lۮ]V=)~EZq^\l.u_Q_ʒb;Ŀ1.-mDj?1 A|XL9y L9SzfꅏyU[:ϵ^研ځ(2w_BWnm&}b*'JsW.f5Aױ䧻a&vuuIDZүn"Ƹi;8WwMtKگ }rJsqՕ6̊k]*<9qU0 6`ﵸZ-w7P +pI{. 6}v^lC^煮V=ER [!"G##=yh1Qӛ*pzPG^a8kSaS9̵M~3.ͮރ+R=$#1%7}{Ir}!Y1.WΖ!1ngb0Nz=][ K`w=Ol#oi-i; h)p4uÒagC{z]㜺 rE6/F" vLګZ;F_kn1yiq) Z>݀>y˩=g@,0N&@mzz@(7 orhg~Ȃ݄<yjR\|A$XG0H ͖U,=ce-}KއA/#3a_WtI {.:ubmkPߒf҇9^{6H׆g-&$u\t7wR(osqBi6dބL@e*?sڀRxfQ:`K%jſ=] 3&ԗuf }΁}9?unR?Po@~t]o5qRg}bԭMGJ_l; QjcQ垜Kƻύq%UZYWvt]*!uOQ^RjDĽ*GwtE7/fH]НJYHf]W*.ҊjF8N%jw\14VjR`Xfr*_woc8ͫV[CD<0Er/;xPRys[{ vLc6>ew~zI~̒3N'hӹsy+W~ zKW0ts\?v]^mZiURm_$)6}>I[ֻ0F#t;1'̒/Ֆ^@vsnZ6Z zrq 09,zc"o>7t hV.о8_εt@v:s'qLqYHgq[Z"[L~+8||K:ߥt |l> 5FpÜ@L[ Бvn6X8k68L#%c̸_;G^m,v͔/3MO1 vyƉ JØO[,w3ӯNIoIF>dv~I\(./yi1ҧu IWN64,<{6Y|c6>r[¿?o xp;#lvqI.UFj#qOP՜ߎwt)WF7kJؿ\#tf_ @}s׳s\1]o@MԞ8/7>ChҒlI _Pam<\J. ;/~p3f{@VPԏMi5ʜνR : J7+|ݑ/5Nv EW4Nwo@]kHJ5O=#4@/ø m6xfqvNRcW:sGo-]@a%3(f7?@F s{t,bbsNc`őq _n@`.ZEjEi ^qaa͖+\BBSsӷ$`#f` 3f0B@=Iw?`yro' qʱҙSPRQ0tb<s&rMǥԩ='dxʏ[59(xFk<I㰗#߸ańdZ6^ ;M|sO @$Nwa+]Nrױ\V, &n(aӇA_O}rŚgHWXs( {a0w`/)} Ŭ\t])ĠcT bP`ګBcW9:'*`O-͔YY)sI}Qs?y 9ғf7euyj s=3RWYϟ9`/jZQ^D6g# + >Y!R4| O@hnJO^ˬah;muUMx'S(Q-ed78rL~'13îٸ֧m6[UàW*^Oà kt} '/yC>* ?.] s7Vlo\/Sp\s C|cR+k?,xtlkm:vO2>繖?}͗1[|Mn'B(,#sbxέhb )sI]ͼK6R5X®/<7Sc}cOJsT9}cg|%Rk/e̤O2l |ӯdhNP'LK:=RT \]G6/มwAґN,9^NUm+X~\(k %bq,wG¨SQXtS/}ƖMn݃YD\R?/^X~w;ǟк7y/q[ө8n;Dzy: iKܩ"PNeOzk<ͦ+X?-OαUrmy 3@Y(Ŝ.$kAj'âw+ղ^_~V>P2i{Ea&2Tu}(vFkwʊs;c*W 7$"f{6jRqh6S0^9DoqʥGqqC8`Hc& ]q Iț;Ϙ$WY59_vm|mT%kcWOSO9)@ "sw /8|Qƒ)d\}vغ 8ggRq, N ]9_&piUwqӰ䘜v$ v"X1[D)URwv&#?\zP3G1|Zzܝ/`׹gfbc8.u"j#Cęxd0(,`_pj1ܮ+sDg8jw9,: G;A :&=0jz$kAZ!ud_va ݆A I<„t` 5 Ӎvs=a o6]_ωKzsVʬHV9䠋 '=b}5&}^_tt}? )69vx[uZJH ^Fg?_3 NZĩv~r®`~ݒdnXJʹ=klm;}o}2'ǻ7P&$ŬsePX%ךXP04?r~_q}gE!!>yۻUY#{=)1ft@K ͦoɻZ`<ݷ)t WJApڮդd^crä\Yc 0sqe-k?:g Q^wQ}ȭryu^Gcw Ynues$3WtDWzX5.Vy .Ϲ(F}q8ι˵<];nua'gk$\0͊v@8O}q^Xtݬ0縉*\-zEskcrp|}ڽRsu.2 Q{@za^{!qX,0l5휫k3UjW:Frc,D칸g1Vk؛ZjifL\͢yL?'iۗC닗C{zSܘI>6TaPŴ뚻1rTNVך߀\Cpm덁ŠW/^ʬ ?~]~`a qn[7øK1c'Fe'2lBe>F8Upw5/`Y<%(v6sZBíu)=*\-\R umo\ʔG糉V*HQ#9摼q;71SVAO%q11~*ÚY\Z$`նY(oe^{ijr)FI a5vi%t Ytpfq W̹NZʪ4u|ܱ;;'P]kڒhugV{m }^[q/IOE/ ozS\/Rp"W)xU\瞀\nn,W~;7QSыy^o}uI':PM#`B  kޙq'07;.l9xL?;FX-[AҒ/.\}Ŗ[& 7{F1?)tdG玬ŸtYNi-0Wtta3L*ֆqYڙxIɘNu bnH Sy?4;˒i--df>䘭*Nyf,,0,y#k/V`\`,z(icqjr߀D8$ev\LK][sPӷA:ÖEj࿴*0[usahXO{9߬6S|s'޴㴎+b&OrF_twbPqn>PXQss- =[?38HW)<&k)|)`0̻ΥV6<?gE?=Lz8{&}ƫ  yRF3gV}xzCMƺ `N)6rg|]&um6i+xFLg Ayy6yLZV+7aVc士6s90}4'fc9dHRhk=r!Nk=ñ>o?{ue]hJywWY%c sn" dO|#±wkZpDڮ)&/aǛI,y`=kßcq-^Ɩ],D ͦ+`ŐdVeu..H/Xi^-J>v̎.'$/`%5]Vʌ)}-V}^PØc#)所6C|]cWP $`5o)c' F m?2gn<@qK SeW @s]]\dOj>;9 ŞnHo 4[x]3?ܲwbqx/äO/q)67w wp7qvOɵ] WDr٪bՕg@2\L_ GډŨg;A.R cp'-]'!64;l,{A:[{1lGDщ7eغ'Y᝼sn /噋QXtٶwwz=Cc+@bb}s&%ZF>`kܽHlu"%ִ6ue%{YL̴]|m$Y73c%]i\t;E9x@֕(䡳Аp귊X9v@1w$%bڀhw{ژ~x.—J#φļvR7q硫sy޳~d:# X՘sw.cl r.j!KXiG7߷%#p{(_ԟuϽƗoD7\ǘ%Cƞ\3e%4V$ B~X9>;476 Ok`<'.mfQ_ ; nr/c; 7nn)H ©DJĄ=fBs,:{@jbcӝGҎ-w\ @q\1EM\tmƈ2kW_ Q턍8o:/lV;y>UͼT(frvR#p\ڔ⸁I٬8}jd(.o1W8Q *+^@x O먯>o >scƦ:>yKo#u7_k( ]RwI㜓83uvxo\@ScRrO/}1zC^Z _()H?{Wi%ܑ+9ΗiKo\I뾡vwNƕ% Fy齉YFAՌTxUP4Ў{3volP~ݧ5׳,)]6qvO{gNh]pW*6c.ҪK}.k.SnoqPyr!@b Đ&A NcZ+%+,]ݲ2^kLbvu{}=)Cp79y躎䘣?5Zj:,:7ecSSc}M62knEʞJmw@NLyƽbAGw8 ?,f;,?+6W ZI_꙽?koYFvC=gܻoΐA cpXRCz87ԝ•yGZtΏ=' `=LL<ƭ j86e]䑅A'k֎q2)qp1w\`(,Gz0=k"At`[-r 0#X!P\NBȴ4fJQF$mf1׺EҎtʪe51#ລGF؀wN.lmc02WMƀ-]zoN>y}<# ٠yʭ wi' !~t9_$tN _δo/ Fl&}.UÌ)7_oaW)d6k19+r:&r]*p!;W{rOPj Hn֫1,O [j sO4;<Ϊ*&ܧ5Z}?+0xx|.s m %wzYRprW0AB|K͎S=f U^ =R4 jVV5cμ?=%#og~1lq3o jۜGLzG|<] #kSlݛ]HxŽ]_3@Ez f 7"c/coJe ί3ݾb^LSut+6%@ȋwkw*<`\qX6M_یvk)o&}+'uvrU 6.#qտxȠ@Vo9 <}orW =b UNl <[bsyܧO6پk[ʴ9=DuqOk l&`NQkwJƭK:m绻MBsuADØ9iٝ`L^%Wݗ*x+nWŪVu5~693K>K ̦kZJVqƐz)1` ju5༚sym섡yӮ63nf@O>'?޻zw.u > A^˕Ƹ<%qP+_]} ڸ9)p p_+뻴A| rgis 3.wKc$7}t7Pis!l 'FUbq1(wvE1Sf Pso/ڗ/]w;/spH|#/+wYzWøMU|d턤pk- {5Ӗw>! 䟯~d-9-HESc@jpfgU߼B۰tVXHƽka˙ f7ugŞS|tS&Mt 0(7`Tdy ّWUf- ` %;W2R8s Z Gga'7]rw9K&z_ $fc"qO!7 +GО'n+gw|4/AxsL=@!WFe%q\¦HMPN'wҐtRböw{MqfWs׳ёҙgz;,2V!phNk+Ms1#c,Vi}aI V&fC:a@[zqwDѻj+-Hg v!tO95ku6J'CЩ_єg86n82`'/cps"|`B@,RC!< |{W굎՘!/~'|o \3sg~Gb_=7wf[aiG&DlPbLBƏWԗ9#iئqfc!Vl ӟ#9vD8s"sa7tv_+/޼sPWI6Ev­+tN6+ci(70R:Ә¢?y0߉A|]zMs3]\NQ9k=*xh-39JJ "=7!_dMBҟ,z}nXꡣPT_׼nNpv)\cNd{+/ߝEci2K5V`P5M pGĐ[ļV`AVu=~>eVmZ ymƏ6|;ު#JYe稲ckC.+{;رzݐuͶ [%4@!Dj7p,`I`l5C ?U6,ؔyyB+9zag̚#ͫ}\`}b;qlGs*1'ةNi5eguӒyG5)V<xP $ø[Fm8VyI/lh@1+]"DMrl>~wvCqsaͽ0weԒWڹŦFw3+vȎS;Hٗ \98pf,9@༯O'S#Y,nbsέrFp hM]@W~%'@5K+|s\ ~3#y7}ZKo|od% ]JIŤJOf3*JJ}8ڐQR0D6F*_UWrl:s&8t+[Fzw87=rK mIa;E7CtKe{17]|kkk#]9UGc3L%,iƸXsX@ƞƝn&Y+f-rb6Q*k&Y;4zoZ=i#k;t>CҲeD^z T, )3'X +è~-vKCUD^U0q.+he _U:1A=.ܙ?t^-ʟoHˑ6 mA[3呮Öw4??|HZ 뗿Rr,בԣwt4_\THck1 1aa_1(g'O7rFI;nD5\@wڑ<{fu&+0Ave9KNqny[lGxQ\ʢ츓Vz\{@[ހ=_P#Py7acHVg~\uI[ YXY̷FbT=G ,m<wbR v[sc0uašclp MzB5Ωmަor.6rLk]c͈K;@)uŎt aÖ!gd#oϾ..s b @A_6~ V P~'[[ 3_}u@ \3=, ? bkϳɢ_}k'uhEqofNO ^SÝVySd7 Տy_(ONBL:ʷyCp~EԪzYhG>Yxנ=ly9cQR͜;M.a޵V]Mbs ޝ4^@.Gw쑺/iFPpћrvܬtF+#fC`FlF]yQVdkd );3l&]jMuM{Ϊ[Mj.1ޘnEҕ 5ݥy3p[G*weϏ|};vٴsB->R7α[;E͜w=ݗ{>a[FIg: Ǽۓ_;n PO?ŠH [w+{ivqp^]7x4<`4̹d[e,*ӕH󣳁@0y1~1( .caFEA:"wgD3Z[c3Z y1` K6cLYrw}^=gЮиs]bg\RI4.B۩Y;`2<B۱] P*LB\&1X_:MWnsKӗ 3߭/pX?9q[7 Qof]c8{O.BR?> _1q*/w1w q {7C6|{R|UEߩG|]I3f5GkXxdUʁU_JXxΪ#RinQ#wj&U8} &̹7zd睓Rh2GWly6ٙgB]sPMV^%SIa+8(V tzn}I+\k槥ӗc3aM~V+M9b4(-uLmĐH$k'\}hHGw"wN+'t~B߹j1v_ UE?/<X=R1[5ʗ%Ms[ p y'_$꥟;Ne@c V띴 kM-t[^_a?.u>cs`C9|ׅ}~>ԗ!mK j]e"ڽ\7HWXB4}ng;7Zj\n*w C d=M7S~nS8qtȎS;ܻHx&-.vdsHC;PO`f@ξB5ͽ؀Y0ĚԎ[:`t"`Lss쮎;LJF B ])rP`\xJAp&<%$ PWbČ *ɟst}gOV}{s^|z@] <@\5;tðCO/ɻe0N9f'ʪ=`^51bF=30cd0r8Þ4yyˍi-gǮ~6+9@GN 10 v~f=5>uп`$Ș-9W(Þ ;8-<ây ir<j)A6Kο9/}j yŤr9csTLY0銒sI*̺6 +lɻ#}W@6''IK*g*{7w]ˏ> J'bCmlr/XlzT M/.dF^]׭>e,5׹KR׳K15BnU,83'FJ:vt@:z[n /bFuR ZYkXqZNN{8U   u1sbDGzhHnRԾFU]qrrr?VPg Y}Q]n@7n7vb3;wwwrHo 8/ڌ83? ydjdNa6G?["iHū%`Ŗ#w'/;p/c8u@"f6c-.+_$N{Q 69K; HŠ/8ޙU]s6)!Uy`͈])"> Xt-6)wk7>8`=cqp$1vw)f-85qWQs)8/vrF弼eYâ-7x\Oed0|r0!T ckORhrq `b;`U\`~ȉr^0#ebݟp=ڧ^-|]͞ p (K>ˀq篽LLO 3?lcaz6%3 [=9ߜ; _H@ ke*'@>Ūw:ˀ61qzU-cMߊ_w^i/sX#";>ީ;+O=J@#Gic©VHmi0*1>#i}Ω vY|P@7xwޕRj9:vٖU^qact`bW Fu5͒àYbGUBD:;pQR6ICje&X|tT2$TЂ+1)o Lz_lhR8R [z2&=ƈ{i7D-칰 2OT06F^p‰d P{kl7@j)q⻰=Z:as[ [G|q\+\};1Xz5[ξ;Dnn U?AZƎnNdP N321p5mIEzK;V^X$W_Fήy愝`cD}OŒ5,FA 2vONb1q={APXtsroK&< h`s18S[pŒgo=Yt KyjYw_@38'|b B0A t6zRcV9谯. 4ÎEϹq@%]}By'F#gbvs'G2 (<`<\c:c~Pl|;+t{W^}12SD&]ٞtI1`~~?;W}Ԁ;F=waϿ;_ 8^tbzGbK <>` tXy흷62lQ,8Q |@yqx{V/޹a=:`N̸3;sUB<*FT56;Mg,.}2} }8]zvj]VW#6k_q(]Ys=$@UJVb?vy8i㝰\=zYkަqf}ƻfC0\lw.Kfac~Z70j4恣U787xu]X<:Hv*21\֋>NZoAtPƲ 꼉vu?/gx:lzIaЫ/-@$1n9 ggz7xw!K70w, iL]J|XL9uOf!OzEj370w-URmIؙ$a1#_LeN8F1;5[n\-fћ]}Dc0 ka)/v=j^}[+"5Fq YMtT(^Nļ?|E>-X6HԹXNn+0͢{ w2~;fc۝]89ͫ2s }} +:6tLqo”[󉯝ꢿJ,o{D=嗟rKn^sC7t=|k+= ]L002rxٜ%SbN ] {@//aҏ;8A9ƄT1o0 /?q58z(O 笐 ބ [>Q`}q*B2{ 8K^Ɩ:~ |;j6=l{ܙ}|w)wyY0 ڌ ҷt.&p㝃~z. QMh@uΉ]csךbX;(v޹KИ2EzfrIo!۬iu\@yG nuhH_<{)"uWXnо@:}Ԟ+MS~Jrp?Pqx@sѳ뒶ju 8Pa<}rDGQ%1TY< 9?c9㝳^` M g-~oF9|v#xqXK0 K|fEÝaonz~'EK4{U:."k|@qa+n1:_9Q%|XN8|,aOQ܌Ǔ3nR4.m cܻd(E:a\#|<`Gn0hWrՔs^$`dÜZ@uEI mGs3ԝm0ެ͞m69eR-TT`@`Nk@E0FpKޞ9#mc3np}UGOhl8E[s^/Rss$Jm2̙-=iˁ/9(nrH7hu* 8}b{9?Ԁmq1wShU/{xkK!u.d6&U%e1&n󸷝t7z~>WהoN)>L=v8;Rw5Üt 8n REYswrlUYu@y:uj |pd\A%׶rqoXv1;J}yl"&\KY5l`osU<ϳN2@ "I7N[16kNCE\}i/Yy-aw k=7s6E:iQRVY^ 1ܽ&]`LH z@[D^Ÿk *~Öv 7Xo#z-?pkJõD7rW9̹ڒǵtT0ӱ|mvetͨKM<-Xt$MǰWW ai9osS6kXu)%ȤtN]fjMl31KncD@9,:3 zž{p͈P^ df֝&O,(v.ۢH%k's~̎ eljòmfp6w9Q`);5'`ȯH] C7ba^ar>y]9uoBOι|lwL.waޮ&|XPIpهyd/$'ݯwʰ݃y܌ͦ?}#wGSޯ&]q]S]q=XmB׵Nݚ]DLb ݚ)oUcuR!us= 2v)0 XtQђ^kw~ }/V]RwzbT_ΑcL<$繐= ةԡ{葷'֎%o09ڜSTxQ sJ4'u\k׍!-cV/o\cmӟ׭|L$yhV67^g zI\c[w1GͮwK6Db} gPa5V5Q]2`;2Z7w]$8޸Dw$17.dt;"s&$:wZrYn)6ἣsh705ﰃ{TS_3#3C-5K 3fn;8wS( H1[wggk5/C8;FLXDelN!0RGXEZ("ocrdig31I6HFk;e`y{J.vJo@fy/JD# cS.%fͩO 롟8usy5k̗]c=1+ck}$/}Oy5ĭ^{a_wibڑ3y$oͬ뼀1`Z铃.?ǀϜtHrW6e7}@_?;y6SکTa ysD›Ylli軬C?!u׹&㞇G{o&ƬyW:ڝ]=yɛWP|t꘧~99kW~?Z$@|ZrS89F+܇a9qv]/=q>;}9O>Z6 :esh sNNXPW9ahIy>{"֐Kr`7*WS'5EEGnN8&%!\@u#q~H Nz;HiPt5,: >M ||֗?te?K,yy |Sn^l92o˩m?7EsH=gUS97js7Zc@z g^k2(%{򴬥̚kMVdY·1ZCS -qѰԚ @9jUL$0u-uu*Q7(g=%m<PΚcMU9aA)shL݊mr6e?;}\Üs7_?[@|`qEAo|ʟN~e> |m@ h)ͮMf;u$pWDba ~<"v;=csn(Ώսۘ]G d7w'4v9ĝrjWĽ9闺9;8oi;S]NUf<#]>! vʭd@&jfϩm~CsgNPߕs m GA'²xvk!r>-V}/.莄0:cKn{ w/͞/W_>Ce;y ~_]ٯ?:>zv˿l񉏞?~k_^jOU>O1>qv+cBssnbhZi+n~c?s+|j*n]NSgɳۧ͟3S:g\\”T{۾ s>W;H[p,fs[">6p]|$N{1 Ka؋='4-y]<&}d.f'pxǵ2loHMc 4>L 0@lV};?8ܽ*|`E)ouM;]{:+t<{^]t g<Yw҇~qxμs\Zrw l`Vo@Ln7mfoRe} 8s+>(Ǧ~=tm$'V|Xn$͜oN1]sdpN>:lR#u?B{f_շ\ݛw\G$>YݴZ#UT|J\32 w>9S*uyk_ 1m]eC25\izXrM(Vxd\t<{`!?29$C!Y0s,ւ5';ȒGͩ@%sSipzk k<80.sK/FJ*B8_Q I5 2Hk/ &Ray3MB:6z)!KZ8XRfkNqvj]Ô3N!.ns˥/?}un togy8eSQQst9FB m_RrZ;EnYM{Z7qi=><%}: n0KN՘S7Ssjq2vz.m0f/ /tl=o{9㑱Ôms8̒78qHY((؎,{N,\@: b30 c~X'N=yn&5{Ҙ9'g2FH:m+"#]v@i|Srw<;'d=YK*~bғ#{WRyHʿ8Ogۏw1 hvڟS 0RT{[Y9Z<a);NcTٍ6b^ϯ9:O;eČ\3180b_!PN{aͧĜ?mpnc8IÞ.v$6woh15z.fq:7Fs;`)HW8O{rxO^cҿ9KT7 (/Stu?cWYmr(~Vdlܠ]ZT콜F02\F~?S`70IIO t/am?A}63;iHVF lz oy.ފ/^9/LypiUo a{~1&0ݩuㅓ~  p;V$$\t(stӢ4PwKytR$9[0{nj+*κjNnOzt7SaHNCx]'=Epe U8& ׬텟V(|q-wZw+P+4 ) .75t7@Xo ~ [|Wi6sJh%raq3U㐖ݳ닜2 3uX%ptt󖸓o~dŞ}įy%=&#%kIUZ9:n1y:כEwn<$걊Ik\tی" 1Uf-pŚ26%=s#)SrrâӲ܇M_p-kv9! 7N.:`#7`[snmufX>cg7$]S>0zO`\Z{ڷ+3%s9;F=.S_e~/fNljub/B5kO{aX^`cDyixAw lI͜A8ag|j2vXp]3]1gs:8s#Q0zs{t奇IHsJI.&m2lrx&ԉQG Nt JU^WMŢ! ĺ@MH'Q͌9X0AYEuc&ih{cV"6<+^y0ͤT)PQ¦6]'=ev VGXs {z%à.pNZå1IGkvk\Ǝ0ά6 (gu F=yZQO58zG:dϴZ'Ԛ.S;{HBWtpX)g>|tpZQրӼzpì!fsj0J!`C΢0<p^~ϮN3@}M[\%3rHݕ^n;rꖯ񋋄]c2I Ie` M,דk.ڀsvZ:wCռf r_8;|pvю\(9 dZߘr1 ړ\2AfV΍:1qp# zt\- e@JGyylj7'wBbUcrvU_ї9\ @/ٴ J @tW{/Xz Y7cwtJS_ ME]k`Yǽŝj,\Y]+;sKxĀYޮ9sT뜱 m݆Wns;I>OŒ€/ wwL]P>Wu_W?;istk2swZ5Zs;Q~w cj Kվ891,2 1撳 ;w.p~&-S+b'.+$u}jK~Xbבïba֫^zG a{|tL; qxpW^;)P2\@Kx1>57L.w;P7X,J}\ &aIלYCЭD}THZJY-=g3O 6u[یzJQsUky/@y)XgyYg<ϣý]p<}1~O˕v-F`͙/^ ]'쬫ŎS69kuh䴋5WYErvϳ0E2-,ԭ{tr?ʮ()Nj%X: 9`оA_O%ui<2Ü8}0+'}Ayiy+$S~﷧vb72Vy-ڄubQ_y aοswDb縮N<{͌Rwے O+P+f{SO<+]|rƟ(Wbe>}ZbSo=㾘0<1vwP.?pC>9~M3)v:bnO޹ڻy@\1wX0=wɶ9N^23>y.&G[RJ gMw]rx ^Qy r~X%i/9̓*BjI;XAIR=Ni ;Iݗ|)7:Fl@uEi9WTZK~CWsefqlڝ=u[78[o9mrGq6u7w{L9^4?"Hc?6{*hhO_R[ZTBȒw*J;,ǀs0驗 tBP.-ȤѫfՊXl$.s[6<}ݞ5.< ~@|0P>:9&9rLw%mNjꃗ(ƚw*h+PP' c߳D<Үׯ67U-K'OO8ֵJ?t:-D؟oׇ_ʀg vÚ+ѲgƝo~/v֍h q :ca-*<+vH/-p]3]SKOۋs ߔ 㐷[e@N,GwIAA` 0ô-c Po~6"`kn3&0;9i ܠly1"1ϘF@ `$R^ L:y>y?1Kͨg\  00e{^nn/f`26s>'Srm\T>2+sb'_X[Z`Zjֵ$7~vZEp9KdPM_ej9+U{;c]{Mqq*{6xBfo+46|\rvO ]NrqfW 8@6%뺪~nH}EǍJA*}ѝ0e&%s@;U@bUM \#rR"Ƌ1%; ⠚x^bnWܟIJ޾_p>:;k֌{q\o }_l^7{%R =>Q=&9}oَ!aϵns L͞o Ic(|W.&s P'z< [c65Sn̹Y<IJV¹ZP @Sv-Z-` u I'q\vضX۾syґCk/7uW zyƠU,׉A7;ɸyJ|2 zĞ˸M*5bo>~4[z*gL_1LMky 7ˡwiA\m?F v:{^93>Orksy暋b]8Lz;k1k̹qNv*Ǧ.P/~94R,0KXiNO5:Et1L[ [C扛Юi@:|\ᾀrtahJ3养cq_{46({h\r~OK̔Oĥ­7}] s\יWk1_ 0-sOwPM?ʴ]'}acě*bR($w;el'2lrx)}r!0nr 6*I7({ UacUL {4NNqr'}5ѥe:-myA:z ِvЋA'+JAy_~s۵cs);Q>>tj`~iwHܟuX7~N_ {~{BR}MFBsRkD9LI%J.~Tg0[)ziguàή0 Gk"ZͤD72!<HsK9 ht+[cv<ZZ0xwGc#|Yh ږm=yd*pc:u3Gze~k\hUs-1CPF>gy۽ |@]9Ru2]y}`}2ص2ݑ]sp _S'3핟I~s"7DVK;. Y V(,:d9 :-Iw4s99h z"9p(1vn1J)'0*V?j:C8]A&CJ^ ҧs%,Ikcδ;gmB Z ̵a0S\=seF6, Z+'_:;wrRH'bì=q'w9O͹?[}:W@Z`|ec z33> s#Q)&'vy"L9y 7H+8prԫ@Q5H#ۀGOL^_;͕aN6t$b֙c,9q0ꫢ0=ȡSr6k ԙS c/`ȯP,(_$O Q0~FGǤX57-kQ/c8Rt~Z@;9J/{=.r={eY{8os8\!aT9D޹!sZI+\f}k njC#c8I5~k'w+6[?7&AKz=d7A T(Τp>MBR fDAMhޟ6*qym@9\[z>_́A[A*v.8%sC_0;ܑA?jJk\NWT}D]8_F&aw>HvvO Kqrٱ; @5' 5&97o=Ȏ~`sz砻O`B~ ]9:`e>Nn3y ;n lDa y11tWs/PRkņW ;ϼ?ys^Rw0Ttikj jI3o䠓j`.}/֒lɿ?0Ϊ&ITHЪ/RͿ̭L潋ov>EkuJ7Jp1!u1#(s7^y+鿎K/w)֎x^P}c1/Թ}NJ( KMÄ.5wiH40GB3 -]7Nb$n*n e+S^yA*|ӽ]l Ai#oIosxj/։A0sez %J`׃/2N8yfenKRyݱr5Ea `%1\< ^&=1#P-̹bkG_-ʈH&ǜȁ6IdAGY`t-i!0N}\%o9瑳|KN\؀,Mӯ N#-2)-~{i:-a1 ;4]Rl*89&F=fo~BmrWxXUcsEp/&5(oЎle.·s9E\uyfb`D&>4{GO7D9Z`1hٻnb-Ci36}csÍtJ)uq|sȱp:&Ck{VZ9#{anr=tQߌzwIE䐹_ʪl:aבeކp9niͤ/\9 ʉkNA<"o= JqE]@6fawUXwuH^Ks8cY~ABs변Pڗ]3@ɵ]p gU?s @3/3s:A#+昧U^ M,o0b wri}Ž0]DF_r6b#wZ PX}A;k{i=0~VydzOgJ"־{}LKW cKiCɝ>1C^9坍EʳZfqv/@dMja4p fT]o2yfz& .68">D,5yԔE闅|M=Nn^Q9bp揸6tmL,--ޞl9' 0{j|U̱ˌ*$N[~QP};ɖND޾ove jbM~;q c ]xtQ&*t2;,;u.[Ҷ\v޹g-c^=X-i'-Rwa#faĹ(IbsN`\,6wk. 87\-AgUZJ0 N^ `^Wtg_ HŠ Ub%Nn䘛!7=L9€z@׀iGڄȧ0P\3pk6l2cxCuK[n-w >Hѿk3銀tۓq0-8aҿ#0n߷_?3ƽaZr0HcdØamt\)ɆEԠ!\i"R+&RT:6˜TfAGH铇ޱt[{C'b.f#qt{ IW4KM`{-eZ(pX>a |XU ݠq/qAo\]<-:ꃷ=fYDlDq^ըc&ʀ^h=Re삩j.9-iGIq&cʭ- _9{ѷΑnvotW͜s9w;E;sds r֎tyRtIä'́|--r(Ͳ˫{ݺAokԹŠOZTEӜn{PmB;cI g {^Bז9Z\;0O0PHyaa,Y_v9y<<ͬ0~/Ġ+wo|W9?|o spk]q'@:>L`wŲ/3☹wv_`|xn:&>yZ/;rDoUVF&GNsUes;HwM2,C?'o?_>b%^{>> eW90ԶB楋ӽ0O0*zڳLH/ `ۥ-nڹna,z; 6Q| Vw}!W-g^d:,a1e.<*%u70a)|͞^!"vyܟeQ&2l6Q&].{jco!Z;RVsǹ|QƗ+M =YC[E0眃Nғ'n,$7!ogWɱ>Wb׵9kxaؗrBv$77^4quv$5 sh9wumU;㖵oiBÖ/~sB94nsX`NɈ ŔcgK1羙ap)k\F;{(yYy9? kwzWm7/Nr_9L:sθ56Μr硿W@K9H?*uS\פ.ϗYeBTq> G1;*%\fL'h̵s{)=)"w!#s7:绿3zV&3Ld%kÞo˘Wl3g|c F2ˀ(Z@~ \L-sDG|ޗ@Q~O~Iݯ\ʮoKMKߑ.tt#yʰ@G>aRcvt~t3U=㴓U&ZEWFuwAjqmo?(F_#GN.ˠ90QqO\y6s;#`|+'BQSQr~68ej,ejAz+=L`.qur>SI+ֵw}y޵/#4F8WZtO5N^:۫w Ʊ煀9(x4@h;>z~#gOaN8W޹ Vw&zR~ 8/?lwm'w7bT=quW!@w0H_͖;7pY4Hk-?K{b1u^i܁!YKMoYnw]w'&Ey";qä;vx}E?Wvn7HG+;Sq0~)Jށ_@)3-,;^?Cm|/v봛㧱uxqP)/`թyu}YA}+l(gP2@N:J ͵N}_cWIkgpoæàS2˭vʰ쎟M%@ȱ^ۘ|x{ ά:TAuY%'aEE¨>Y'jl8p1 TAǹsŤyaŦOc {~|ᭂ}eeja丹+U{ &Z7\1A OY p΋Tosۥ[_83;Uy.I9#/fK ifC$rܒ 뜟pǾ E1.\G$"sn@N`S&tc0i=:0 mFV\q 68`SN.P$n׋e~6" ybKK9\sc,@Z"cD%Ӌ2Kڀ2Eiv$Fq+o|_wW+M41;k \mg.#,:l7 $͒ ']}N9^cq 1y<$ g3$}bo'.¬o;Gn[OLAr_OczƑ+R 练jg8(8vì/]\،㨂0@_Pٴԝ })&rP?e8{7<&Qr٠w{mwKORm[^̎#q)`_UHwsk *=owy-d`OX(N'0n:+&dXOX"nzm9$Q֚Qp*̐{-+RR)qvlgV]ze9l0͖ϱrtմuO CO`~^|0bQC/yIK 5 ߣayV|Zp*rfQ7~q/bw1m۞_rvY.ny nE:Kop? {Gˆ3&d99¢KNssvZǓo8N H^]WJ hXrPC=~@^GHKMtv|ggL,! /{矻9ݓ{DDZK: 5Wλ%H Б7@ ܧk/)@; b[XIً?90>n `2OY l;W.9HT)AZc $0 1za@G~r՞8'w;?o9fԏۻ<uV+]q4[,aMJ˯ހ]{#s2Z9 }K6Ĉe75ё#k7 g<.Uf՚) Ip>Q߅Ew~q.:MlUIZOGJzok/kUi:r͠+6[vnUt)$,Ae {X ݏM{E"D W8w Qڵ{F_5K Yo#rMw ͆MEBB~G@ąbgBq_;r;4 Ayp Ѝ^ =R[f=76;^a*EN1(/UJېM Jb{cj?{[W: }ZqĦg<7+]gum(Q5|+` KIoM%9)_ȃ}#{gCŠ+ܹwx}7m=G:Rw]9m@6Q_w~kC(֮𢵄 Գ .{TNZSh-eN:w;tk5GT̠#c'bSvL쮁>k_&TBW5{k&}ݬŊSrkn 7PmaWOc&"D^0@L9W[Ui.%R0J?u?2hԐ̅A/ƭ/7k޸Vu%K<~zqן럳X:N>{ 5)?GY'l Wu3^YϑS s tڍ0tF7/77w(jz \Z5]B 2 U4C1@|nv_e39sݟ-ig0&1 owS#c_^EG@Wxf/ uY Sf0[186(gaf?y9SO_kE`[I-I_P8O-N]q23G2mrw61slZX8 ͖k^U;g \tAɤRi|*cUI|Ŧ#u2w;/ StbSCmLD%]JcRSЀA/auxα}ihIYttVe}OM3DA43N0^;) Sl:Fq1T왵%] ɻY#6.0u`J钺;`ړY2vYu]2ūq b埛1>Ta] {e+oa Ν/ =7A-t׬ywr;sj[+rˎS_,Ӹvs/ok39fORxLިn튝k>{=s%i_%+&)ͨSEqr'&@WU3~kė;¢23Hs9i?x힞Ւ#sϦݳ>u;p@M$\`w""n);c+%mx:xJ5er5KHW `%%CkZU{-~ wZ:/9ust1=դ'XLv1mMׂ̅6;ҩK^ܜSA?YtrXa\p@P% (9>O} -SfyU^yq̔y1y;J\Ź=(/ʱY5X!ygs9A\nX$D(_.fYuŠ$a'q(Kʫ,.yjƨ䈥˫}mx=}Y9q/ ;Q0f9,|҉]ǹXbAOYr7cVgENr6G.\ |rb8a|XopZa"k)&P'>蓇蒸cgU+IǙd17k.>n* '̦דŇlʰ]yWߘHa/8hWNzr {K<_'R2q c&= }1猷9\1j{+-`&x\@: 8J.{G|V&|"cs3پ7 '"N;\qf=)+ϰ6An<1 A=tCKp[gцE{>cK^wjMqTj'.HϜjŠ'4UN t?'l05t3]%\i\8 ^GpI[^8/@"Aƀ|@uvroEiM9?6>#=)͐BrKh>m4>O2 h=tV p^@~#y]mPI;C'v[Z.`HN]` `ݒvrһ$`F#8J$nKzk;L:,z;a7o72{X2Q{Rd%q7(q9e7;ɫ!{NވU6{rÚ辌o_~hxc$OO : !b;g Ŕ=G(`d%|g隔" QnjLRո9]G:9$|֘OL"]&qr1ښ/~G_y>(kEn bD;p]Ql@`޹w !'\@V4s`3yH@?YAlLrlwR#rr ?wo?.I_9*|ƀ|eDVy}\o,n+^:]s8E"a1qu;?VUb ASH5qĩ`RkuR}+Qs?Wbc`t=a ;"qw9Ѯvb9aW~>n}8yW-sܪqvvsJ=I܁:Q뫴rXUqgG 'Y PN%΀-u7?Sk] לƊb[!ِ8Nɵey0jbˈKG9kv~_?W~8וA"j2Vʂ a$N=ןQ`Xq>Pa=3 {m@tv(Y;@1Z%9 1X߀b*"u'|Ώ  ꒹WD.m…MO5szv'Fiv7tS6{.>192lǴqrNrp_O;&/r޽vɴsddHà'!yw7(_NOrH/}/y6%4G`c?C{圗p3.#@̼oչfPڽ]h'ڵx;1O3},Q,9f߮'YW!1Lb~Ns>>Hh/*Z1Sb>Sf e =q;¤ַԝ3.;n 6x58WHձܗ:aљG_Q`L搾\Κeg%5 7@k(&uHOo.&= ]eĤ_q{T$vx*~y68w\=]!`=xXP@f=;YduRfZzݗ}u*v|O [ AsinEqby+H_3Ni5=H/B@㖻Eߞ9 ڎDƨu.<Y+RCXkHI[A?kkNH(m /9^G;4sH܏:v)giJx '=!WCaK~L6n [D0PٖweƣD\+^cK/@h}E:Q_Ҽ몏 6?>r֛?,tnP9f~7H -1 H?_v1:_ sKţϯtriȧ Бt95$8_ 7f>]{yM+WO~ʥdhRH;w,rŨY C>Um۩S ȯE ŝͽp R4%q/&#Rs~e Î" dYsYͪ)u۹#%q8/sUrm8E抔bs^ '`er%"pr БMn80帷7h9w͒hLL} ~y25C^]uFiUNf }X7I}6O_ A/pdaʉ mۀs8w.zGt6`asq|0\]b* K04 })*-/Wۏ$>2NylI/ ͊g#m~:6(5lݓ9jf78kG9e\VHD\tɉ0LX}ؒvy|楒C:r!ZS|[lFq6+& ,gG):s 8'ErڊUVMinnm r6:LtMBv! V/ǂ6L+w]8V/c O,\Q4—+r ^ȞG&r?xT| ~]nޙx6Zkm^Iv:e9w3ծuq`g0Lyt.Snrn1ˍ;gtn*)dаε;^ 8*ڵk.n02"y8%0#JrFLe LI0`ƙô@$è_^;K aAN:~vtA/td?=,,E΃=x]z@y}sFq8BG2qdwIgofk/sy_mbw͠^%*]R\MP]Ny5krw&$eE' :6-yk󚾕cPG^U]%v3ƹnHE5J㻉ĝ9։f+I&Fjc/2AG; :kF(0%{׹͠k,|Zs 1+ aj6>N+=àǨ2j-kǃJdRݾOXfNc\Q-* ]rxWc#/#Lq[jj+ti~U w5sqp-?Gz?T>N8Lܸn1`%`L{I1eh oca+dP"nOtKn{ŷwvH9/7͔ZÁ&8Kwԩ%zsϓC$*6fω0<KnF)-K.nc`;{@,t=GJxʟϨI%vy԰˄hYaXpds:HU?BSmG EsD;A/,3gNZ`0m}*69Oڟ_L+3:;9h#q ʕN5Igv3?Ku-`rioVS9 лŚ79N+@(_u[N<]ˆ ,t@zm̘U/w\o}W'MƩ,urWOqޤ/O|^ )9x݄tZ7s_r;#1GGήEcXs_y~CB+ʄ(_ˇ u0^.F5Wؠ9[)[fзĝfQPWw ]Rw; S#ql@j"Y ;s̖h \?}9ՊEWhs(. \ ,ä;>U lm-(hON0q3qF.o/{gV󑽿r7+n`E:kTpfoJqMfd^F 뙛aVP|K+" ?1Б 92uΣ>K58n9q?+wvmn^G}7S !=B_ _{k0. tI#s/K.] }?9{U}"uϦV%ugCrtJ֓^O ^~t.)vQ9۳يRjt&I8=VU2K3Nn:hy (φ7-<j6[b +] jVp^9in/9`\'em+B]R7-D2Kܟ`*@+wD;90e󑸣~%;WNM"P {R+3:Y _&ۗ6S ˧6G2Ϲ\ y;J}C0q D_5c[(҂2IsWg^y΍P\.`\s?US6cg%?D;e'-5Ymʨ/sƖI{K|)qǖ~9PN? }b1 r kFvQywđSyԘ~;7nGm#uQsfܧU= .\b;O=( (.51Cޮ\`fλyX{; 9@"\X}|>0#e/{I;tMfY8EzXA[LL6bj5 5? yaRhk [tʫm)q-co\U Üp[kFɻҰ? IwY#}[⎌=c{#k'0 w X[VV93S;s>^r9c֌f@c01z+=B|ދYumPr@F] 7^{z$Rx@l&sS,vl)J޾9f8S:r?zr?4X' eh[#dG)"m\3~VEjy% M {.\Aױ4|fŒ?2lM;9. ʧձq;RZu ،[1=^<)/k&tg !9D_Q#2HQ Qf R)SNͩ&2M&ΏWN)ii6^6h97HTfn 恉3nEr]xH&i3N ͎?R֛c"JN8m0n3Wt=)o})@.=?B!WTr|V(\-$|1̜k.u /*Ex8r#ou3;{ɡ)GJƀ͚#OOr4L:rtrvD3tlr}6k1lp'w|-ګdI"ԞbvwmӔ\#4z3jfCq:ϩwRwa}lf5,q%rv]Ӳ3+1d0>iYz `5Y#ԂVьUj  XLZ\}+6Cױ>g>~@{àhIa1/A#nˬX,Ysy*:,rn/ձH1S &-b͔à#3?dn9N9co=&f.&" ,9q>0Z vII}H{< 7!>ϑOɵC@`]nktrk?ouRE|:g|ogC]jU ]}qK)" )lvҨ̢{xk6~^]q` gx$w F:NB)T ἩoeRQ}ڔQ\o6aU!%0$os {g~cICvcG:5 J]mg0> 3%<YKwRLbar͋H.6} V99(xlrCv^6u&E CN}准1`gh%@~_Wڨr;d6\%xN<ƏA&e15WHrcZq8lz~69E8>Ӗ:ЏK)"¨tk症 r-a15szCct=E'7=뙳_=ERw¥_0Q]-=7sӧ~8D8Yl3'Ā#:70O('񖸿07One.V]} M=VzJ諝5ȟX5ЏA%Hs :>{SN` WeL,qwPf vvޞHW/ƴ\#;@þ:9m %ԊM/]5U2m׃Rffi?0v K>cq{͔s^3/{Jȭsa_wb7+s1h\ү#o?Ľfy{L⦵KMLT.nL~>ngo|w ;}WcHĔ\Xly {Z٩=s(z |_{= gcJǦe9Ԧ6͝D׹ =9FrrQMEڎn2],SU͹|腦q<y^Vetyǵk+kRYstܲbLlBcS8EZy:>GTЁAGvG֓0]enEaF~Ϡ=R)qc=}kWܙ` P kvPj`7t \Im%VG;“D c"9M+?2v:vv7 @/9գ},ȩ Q>BI lD@!c~45zRt~MzZn|+"aQRv–;:' }S167X{dc3\b-fq塓QE?Kt_?=N$;*yGLKav=.bɿRP6ږQ$Άp00Nuop>K9iqqzs@v,x>c-B~DsiEJcXqy{sqvǸE -o eus9HH۩e+M"m_Y90Zd~%1}Y$%rp . u23\aﰭq@";'r `s5+.&c3nW Oʳz:͌d|)j.<0{e֦o.iBSfMů|>9p_@AÞʬw~^8F@ET( БoO(MW6'զh˩}k1t. W5P߹ LRZ\tNb#oJ@oH-`Ά<<#rlU.gTK9h k<@u d1 0DYydL5[a+N3]Q.>~.2E7_v1ڐb܎!XD &z";01zuItW?6c3XrW#b iH kR1SSuY4ޒم(—1&q8.E"aa@zrgPT<_+ 7iI>r'4? ']5w@wHdOT?wS ]Cbc&qnHܓw'uuӕI0:n͞?sTcSc\ܩ(̞#}_򰚇Wdp)iBlYŖS;u+M|6t kŃ'`j!08v;Gnv@s/v\[unSsL2630WX䗀rpaV,#EYDe`wѲq\ fHZÒGc;`&]qv9穅.{~?[ߠڀ dlb /8XOȕhUb%Ui5!¨0Dq1nl6tlfv6lh2E$܀ } 6=}rڔy(|":fTUj ws=Y 1 ֓JbMA.Vs6楜ylXs'1Ծ(b`1ZGrWr]kl{I55"Rfwgԍ]Ǭ:/G7zJ+Nz<ǹ] Օ>RwNMEck}k]f9 \HlgW;- q0!lꏗAwZrd>)::} `](;ĽK.9ֿXv@ r~K(k搼,87{wcmM"qHw Pw w/-Xt$5%FsٓS9 ƺFmnlaaϝ{^:sƄAyu{ힿ}v_pP?%hj;1~X4 :21@As;|@7` i1[s#\;fqb G/vE_N}Lt<35>LsŬoVC[{J_tlT}jq E3l9&qföQ`瓗۳?Z [>Lc9,0t$vqfE>3(yq\g*:n;pz /lnm)w@ֹn70'o {b;H5{9|n~/uzAqٻy-m8oG)#?W󽈌]0dKpr%Je[{yJ0p,:q?BsrCp?sU fͤrn_GN5rŔgc瑧7pQYMzIGsJ^/cOWϳTa#Vt`yyWs\> 'w!fnWiY{> -fegZ ͓oH|tKtD0=@Ij㸔\[ zŢk>}K `E-UKcJMD! v! ]E܂P^.KA{27#~5|ޮdvu&p6adzLPϯMj)?mU-W|?׶ {瞳WuyiNL>6KLVe׊-EgY,w Q^zBlaܟ] =,?4긹y@;;:@{ZZ%>-C/w[:Xssԕkvy˹J%{w}]@*k4`p> ~tE*idUu?;*sH*Cb͉r?mSh7}/u Oۨa0~{{gQžN._o~Y$J֝[$DE֚T}B/rmK}nU}EiTSJ\WNs:o%Ƴ,TȱvYy|L2կ!9jˬ .^S׋m?윏5%6xAO|ّ`]%y)Y}=.g.HӺWDy:|6n,vÞwI5ϧ[ gC.@N~+ K&&=͠_W{w!A/p;WH5L^}fiN2Ü쬂\-qW{(^7)M-&]uN z~[֞|s)~B%GK.]ԯIގ})O|t9op9?'=\-)]obH'u%ko'1nlНw^Ky9ߠ%+=nlW󵁩oy'w3ewlWټ9 ^͙9gcXA_ ,9)](P 8 =.g y{|+s[:Y;k49_rwjms0KA `M;U 䯼9u‡_eG"V/r\ 7ߡ:vȠ|?!sŔ~"*܀b j=B` % Z J9sº3@>]ܯq$ogƟ9RQS xoKS=])WU}'*/vkwKuɿs-aPO ޫ>l0v _.u:\ 5GCN2Q!B8ř9ϵo/nx4ݏ]7V`#߆kzm)3s'w=nfr-gbT@]5u ^1+ݖ[s=AyU~`!psŒ=7@`^@&.yœwv+/SvuSw,Wh,oI| IͦI`P5Ѫ֬!cX;vZrAGl s#MCý]mΛAWnz@2ƜN9K~f,LKV|">yHs5@_|ko~W}\BqHoH3Zota w .V[srsk0Zfv_ &1ܿ5;.`Z}xA]tkq o`@|%M\ ;٠qms1Z>\1*v_Ts>9oGO_UI_# N)|+\}%9pN`´kLXj]8soK9絑(P{Z'vt#DmVEY-s;uqq?m+k-/v:zMk~Fo;u5*͞Sҵ0~Yr#uqaѓ|zY tEh-;-`ZܦqHU\Ϲq'kfy7Y֎2bʬ:r}"stBtzRD uq=82^Pp_#+۝CW x ^4 /Ǐ~`9;4ו@I⽕k9=s<?A9K&qur;LY#*c='}uQ$B:vy\7MJ~pm\A> zE$Sڝ+1;w~ӯ#u8rcoPNF9ʬVrsjwnH#o&Oɩ? #qn \rD"y̓oIq_NLzw 9RZj;Ni3jS:9Kn0~>݀=9u}r\{Hy57{NٵN6ћ]>b5P_^>|@+\̹6 ΥP ,pĜO=s>O>~ _P5sUZOSrkH澥wiq+ عZ3(Qr64nuL!ԩsu͚H.+/ˑ1V*5{@~ӟzaωK%Eso]Ǔg/ny+؄g;9T{ .mv@XHcrca^?Qʖ%ΐo^9rmЎa3 RKJѿ+N{sBpʪђ9s{\Q)zژOW^&h60ogCq@46{/li Hc`wXt^P+3lzT>މ~?/J쯜f ;Wa 4P)I6r6=={VCN2X\sq_h%/7MrY7Piǭ00SNMpDJSּBn-\NJC'?{3G9gmHQ٨T[5ǵwJ 'vqA̖ckNy$ݸ]ǜGr<[1`e:W }6ߗܗ j+>5.X'"y^TYٴZCAguZ@:e+%Djwv!'Ns(kO*-U2kCws)b0WkXz96p7P' OVKx@#ĢjaQ]t ) 1L q& pvlcW$rs&`XU~+Mfę -V?Tfv\^N fц?YKW$wDmv=o8s#f`fί @];oy^ؽ kΙjCG2#W}7qտP[N^ Peу3 zI%1_L;栫oor?쑹k̜xR0m.nqs Kb3"_:3Watf X"ry" YJ_e aSxbrl sUP NA,|{o, c)>cI`uqtw\sb] ]Ly^s ʮ 8a@5u=W@u|0Ӛ a,0lzI@t{zu}= o ^*~s[naÚ̹·5sS.pJM;|?\fͤÛ^,oy]y@8*vsWj }A⎉~Ƙ50wk`^SJ\l1 Em˭~~ y+X@QXFvsjviowZXN /RiƶuH铏fcTPKUuXj+J(Ⱥi{Jʽpk1_]r]TNKڎ8 ]=-U&LS٘$R^^QiqreGML 7qe5r/V:esR+v2<1MYBQGs˾I'.U^ F2~][|k;<]y$5hnIG&Cz¹/ﴃϛi MѸ?a@faaRHg|zȵ|i>b|}կ \&nU+ _{v:L:ՓSQ"`ղp%͢o@ qw[MKq#q:r}C~uA'ʩ0̓䮁s+ 3gr^WQIK@p8ܾkoI:U+ =wy`pY#?_y-oI~n67[>ėiZrq6;sfS $i78YoG*-ؕo_^L߯,we( iA>D [읃~yKƼ[|E^p|ѩcnWw@vyVܜn|?ܬ: :57XI\r4hRN7e<"Ns{lG3EkN߀zܱXt)D>s>it3+sc`']@\\-38j-M~X|m3yLb c{lIcS$ +ž9_;,m瘣۝lމ_Gx}&xAr0wvLm9\A9&yni9߼K;pkw8M,ƹ#kWi8pqφ`iC7{ elG/E 'w}G=G(7ָjsH]Ӟ}osu]y<䠯jn[Ʉ_ELNYaFse:s* P?yN&vê&: zqhu*dݠvt@xk8?r&0BP穇:mGy5UQgh#taror֗d+zV5YD x6Z$ >UbXЗw3q!Wn+߼ U*c0XTj}|Xs?Nnl jr8ޘs/6x=/F59?Nz26w_hnVJP~ 'w\w.얹/^d.fc ,z=q~d=a='],yv"7@̚:@m&LrB0%RH4kA8yh:zxtj钺aKuӘv]3]R=KYL0tz^췎nv<^=Qc/p,H( BJ"'wW.;r(bW]ze]rw-/]}3oa)t\=Dܟ1@?r7lڍ =}L v?%gi: ?@Ž9M-9rw:0ǐS`}bR'}zG@7ANNe%Ú PgnoxfgsTR3 Rx ҆3͢+Z}ր$a7γ]sEHQaznQUb(yr~n^DHOY98' Sֶ!InS'mvڎru#AIHaY#wWڮXa+ Ś3Vۤ:?A@=}kwx՜&\\% ܸ<1$r)ˀr_^WiyG\O nı![d ͠#{o s#h?s5{//9vS+|1.%i5g@sUy1 +pԵd}w/%pd@N0wkɕd6pq@:'v^ #q_vi 1(GC hN(73*9ϊb@QYw~v-Vj:k?r7Vs?i|GsC+t?,^XL.y\bR_&qE雵%Oi#"ހIg0)i2k~0薸37H܎Q7pWɵ9o{Y[h<Kmi$i# W_|A-~Ôv] s|o>|t y+/`'Ay Ge G頻ڄ˨?8V5pL˰_;0Ď(| c( t[:Oa=dLs G>e: kulډF%&{%0r/U 8~ *n>.@ ϼr6 1Q)'*1W9g$M5HSz>'r>GUfK{Nn篳rMqvP bC-5Z+J~Rkn.w<.2q̊KW TkgTafV&€_}\Z-J ;=5tFՊaF D2wٱ^îg[l =Ҹ&s\T8q_ضS.s8dΛ>:wOK^̑?PE;vd0Qn}{|lg0:3/p{9Ƙrj?Ts8.fd2/#]1蹱<9sX1>٥L?@Yrܮx ,vnXJQ]Zم6: c+y@%uHz9f?Ι#~k_큳-7AMt#s(%w#Ҝ^b1贚b/Ay,} o]} Lª#8(6%'( 1wm7e֦u ꮖRks9 {7}hDZ%`PYPJ躛56Ak$۴~}@^s9oB@dn+_agw-i';Tz1nO {Hڇ98w}sQSKow3~uʩ]5ΟS|m\ۿ>z4W+\{|Tw{YGU8.{Pd{%'|mTJ98t:, {y;{ D2 Ka}qUTAX(t%PM|?iw:_W@JP¬zTj[ RdU䭔H֓ZM_kΰ?7kL>HI[5g-k4c5ӯ2/<} 7weݍA)]S 7 &7\gzd0i/t n|]v5EmY~do@}D>Xwaw>^!k0ߛ eLێJtG>z̫ߍ^Su:_F͞cRB@\>7<7 5͸^ߤio:8F[.⼪%JUz-i_2wY6O޹XCv p:SłjYܚJȰp$g ~ؗ= }rŬÔmɘ@.XD.@ŦsN Mi-q i4:OԝC3y[yG͊äK cy{E}Xo@=eֆͼg]a&uÜw.(W+6 zyZk~e^s(*9@:-rszƻNAwvs19</fa0I6[?+91sӊ،)voՉd?PNzgۏ6ШPͤ&꛳=H[,yWN.G%=}(Ĺx0e6/lz6]e}[׊ ]wx{6'>2H?_*e$N9 sdGI :|4 c^кrub5ڊa\Ġ'YʳvTH5$,y9^~~e;mV^zxݰAZ@@:yfd(OjkʭYv S{ׅW )+,셋8C*gM rT[>%GнA*|{Sex7D-[N~\mƐ>à{<%nsF<_awd78OsAN6i'œØSD^D67-_R.ͦM:烔@^U!Ps4Fڮ8#4_|({yXLZ".rר~~t: 1iv:m;7~ 3NyL|"je;rk^nyq&}>8+^eE^zQ1vܓ9s1ci X8=Immt}ujG0}17n3pI\uqsm۹-AyX=ny;*`V swcqs?5raus;\ {\sTTߩ;P83{r͟&287i|JM_*o 8O/gp>*p|.tgŞqzo8TCs{W{U qw S{A=6 ]`^ u ЭFUPFUrzEsO tr :vSSbl@u rs5ØX +!t,kgB׬;6(G:`ͅ|{}疈I\0 `݌:kàP \t+Wy5{:_N`@0Ǜ3pfam͠;ˬ5X 㐹 71FnC; d70&?~%mEK繬z^5(2cCe; b+Vh9XwSs\A/YNEl4hw0,]8w:rw h HppwXuQ2y xKRk>)?c1ńŰ9:.L&t@;̙kæ#{ct@fՙwH Š/%RVb r _L.+=v*9c|$0j1c[@12QY$_ jX) @F,ew?ܹfͧZy ^zs69Y ~|Ss_8u-pLts/hfW{rkTvw{WkP o,NH͸O[|+9geq=GPb)FkRkPL(FsKez%AyJ(;`C?_ vsykîYZ0蒸O*w'07~@wbK9̀{j5o8 Ԛ=_;60wN풶m3wq P5Ȝ2y%ᗦڀ5H9_!StvvT)56V %+<|5wGqs~򑊹>.i{IB{B,{lMOގȪ}[u#t;;!QSz SD6}\1㹼Ss^\dN+ ܽ(`^kb`$O,<̹Jޞ0_gHQð饘nM]|IUs!` g>&}|1 %kW+6}t0`Z uu{b,Sj#nvqe|f`͌3cae+\AN|CϪ6O8%@~R@_Ⱦכnyc$Wto7஛_&wǛ 3Ѡ@w:I9R-fѷ+cMS?m$2;/~\!el\sX΋Y;QŖZ7Ԯt hiЎ95Uj-t$0'1] ]PN:8Oٓ|8a\4Ϣ1+m=^;oٝlU6%q_ $̛je7Š,KƄ(`]t JVC41'|坋\|&?f%x3XUn{HuB|{͹9׫}i휃zNZ7+TndvΗЈݰF߶ "ۄړ| &C]z!WPaU~xH間!Z:; Tw_}mPʹV]j糂@8G[I7A[mCw[R9݆ :{-:Ě;=!qt +ݖps:$n ԝ k6w7֖N&߯iL0/uJg:˨=QOKUfIKr^s('k4d69OLBnN&g·cy_5脸Cm5㉸X㩼Aߵ[Ig|Z(rPFV3mQIqH:\x^d}PQ=.h+mWp#!`7kX!U9Jfsjg̡-c_ 8'AG32w̥k0ZBV_nR=2tȤ?FNs ?+&ԦWxȶIUo_J;(:B tUs@̗ehsЁp`orqkR diWY#wklVo-|J5~__ n6cxk1R]Ds7z"^- ~7jƲ`w[5a_N&my%{Z]mql>gloG9Z &|yT抠w?t5*3;s-훰q{>RBxr%< qHOt}_5H9 $;!qqGv-= qPAǶ8@(궷ӪѪyZl3BC䣖o'-d\{;OFqˮE!x2EKzsA+{wkW;µ ;7fkJ>;ux+⻈u}?u߼zW2<8e-@Mc!rԟb mo߭6i`8}F`k'7Wt'Ez .Eqםk>_s-ps&'f:fN(hrjZCg\EC=7/9nauӈ:8%R`.1o{,zu,tH:}ԗ}jބ]S)QK=>J-:7!Ց[1 vRt--qX_[u=8c{#Q(髏gC՞!qW9؋}AqROZt&R5y{-nb>(Hy+}'gFgq/Q(R^YY_0TvtucCI2,x^7{5̬xXPZm:o^=y8PVsNw>,: N?o=ߤD}w\㏮<՝k|^Po~ߴQkr}ej̟)S"C_1z.H ipByڛk59~ 2QnȺem/Ng[gs훐7θܵ1W+.d}3||B}ͅ{t]U}pU{AgLJ1 _Zʷ?ϸJ||=A =s[Z8] +X:!VЏKmGI;zu71.oe}vA ↆa}(_|u NJ0^ܓwN(DżuEM>NYD9eoT_:0N[صw Or .2aԐN[;{\K{{9gJpGM?+ds$d~ t,KS#Nr(p?N,Xau'4k>m5|+;(:cԣraq!۫AMڱ&$#:@nfu¤~Q{|[O׸xU.T󲹣1_jOՠ[)j{ɹn@/]]P+Oik5䜛j%57(h+(nfn22@IXEeM6|>=п9d{{cwH~T! ``z@s>TQރ S$k>׏ # ?CRE· "F)kM> |ީkZ].9W{u%71Μ9W {xTss%O@J9ISo~cO/RN(C!-"HC_f9J{f 暧ڬ?a=VGwC;C747yO' iBǼup;^LjZtP\׻ @—=,\ZOgwl줹/4AO&EKE':v/6kKRԵ N^pX5^%tifr9sZ~%ܻIϚ5:Bˆ!ڬHp ^|Dvt/kVɸ1IqEF#ӒY;!eBrxݐNk\y m#Bujo ;7Y`'G#OWVڻ_JϸfR܏#߸!RzA/:?cog}}?}>?/U}ufŀ?C~z_bs'b[ Xvv,W]C]SӉ<1S{74Du; 膰y.!VcoJn%S}9/;DX1WBг'(Qp[i׸ծM#C+6nA7~u"\s@x>hR9 9Pmt/=гG0n38TQ^تqk}/Osƨc oUtmK->#b9qKc< {e}0'?qpis!bwhH "I|טcNj ݱ`:==Pmcr{ XD?YϨ\S\=ΧaOiJ0WL=~vjL+,.MPmaRL7@MsqoV "~1m4VݹI850X!hv ˋj>umXޭ4-GHu܎MлgW@\L?&Eq {^.|&V"7rKov>nzJ͚UwB㴞Q5%\aMNpyIo;]LA׾s* PwH2;i3S" ֠t`m0Y繅9#5腭kvR~K9Ʋ 8nqZ,Nw1oV<7;(}:|x2r ݶe~95m?|`@?؊~/뗾ˢGOԓE+=AôZ~u?UUF~ZJ@Am&嬩p8Hz%5$dBY4'}QvB\4}R &[n=f|f:9yַvE4y.S`O[c1y}gՠkS7CW1syE{,q+/Kd `kN9mS˹k|:_Pnm'ZyXQi}@ 5Zkt!(p(%ZB&׿eώ9סOm9K}u.E]d]\5NP+-;5_{Ϩ6y5uo7dܣl?<8﵎?8 &9<:Mkyi?/r>d޵3$ݵ&mKg/e)P]gjv8nI`/{=_3R+)3gJ QsRpb۰^coDtI8 {skGz{!A;lkH;y3V=Pg+;<4LKAĽq̅kpiPjeCʍq IuPέzk% V!<}u)D=~+BQW9!>dw͍)$TzV>SkΫDC' b=jlRn=5>/a E> *kX,7oqšV۠x!*:<\5؇w89^bq7A_ ]Nf_9bsڥ+[6wOkIgrcg@ }JIqY(0#H5a<Cm.]GܯbsP}׽VQЏ F \OTlRjPq:cK|WBqezXHf'7| Ypjmԑc:`xq ߭xmɩvvTq[پ :IAqA*ԣY$]J[q~fvXC5*Hn0$ݸpGN=;=ܙGgtL7}yOyXg"yߡ}?y֘?ڵ$J@pyעs\S{ z 3?Iӛ!-zn>dCܳ8Xl"Ԛ֪KObX`N4"mדoTqWK(By0Iw={ꁮj"˅Unq}>|nzYۻ4L[{P/f*B9wv h2QǑY7Aؔy8+D {Q{nQE󃬞랰D5:rHݵMsr`y]JS֣knGq.}_m?0'v5VuJ8n^-q ]aMFCymg|u\)~GmB›VvNK^s_.96]5U_;ՍeF._A.<0v7Ӛ8{ÌX45d]5ʣ'{Ԗ8QKo1jϭS_:s;ǩ=YIą3?@_JDVk]5bcTՍ'W! [ȇ{~ɋW;=wHy7} zo,sbwo H?}^}נG]71熬ۮu 71fxud [ 29)8ƐzuI Eۤnku+J#Hؕq|CGCZ-Scwj_8]mΛ5{Mm}F, 9g0_ǧkwh}u~س6wki<{0k;>wZq;k㛂MCgȷ!r&'&ͧFݡrhS?e7gE=l5>xF[6澎P]/b\orL6jWEM $hk筄ܡp+0ji -^y(=X^Hݹǝ'5vpy=dXa"KWw Jveq7@=Ws)\؄v(ܓ(kgt;(/zty]O@XY۩F0x_RnlWS>  VQ]_t ZeNp7I9ĝ^XK{tk7nX? 5!{vK5wz;D} `IoVcαk~{K9˱ Him^A+^ٝ6 nzwFlussBBaH0uN[@=(t;e f˚ΓJݡpOuե]pkZ~Z礸WHd)B~ŚQV&Qc]ɕE! pBROv\ DO;8)P<αѭMVlI91->}L]$ȥ;{c>@{:]OK5t,I%QtNrJHda@ h]9m|3EiSZ|BMĕ=hk-$@u$PҿG7uo>}']5c{sTYU.u]cs_.?ǍzC-mYkqz CZOkcw kO{lUؼVc rCn5!7EGM} K3li{O "A29Xe6Jy=dx]Πr@sޒL xJ9{YnI rN> :|֜ECDX٦f>!{/uoZ7UvkCi!{FtJ*XRڳ"B9!(Kx"D=yYo;ˌ9 < :DB%s﹗juZĴ0$%"z:K?]]+xsEyXfzpfPdYf;栈=}~ܭs}ϼ?ut;cz}^?jN;5*VQs{Xv?(AlW9@ Ajvz=p`5?tFԢ-.51B "$Iҗ1p %mC\0I iԞ8=u$=P?sTQ.I6=!uwAɷk!9kGz[ܽLJ9;}X E۞G^ȹ^Npu+ք1.n_7s$U,^-ϗ3$k'5 ˚y(WjhdE497YG%o4V{=RgQw䁤'{ǧl aW3SVxV6YQK=27T,۽f>=xsRh5 w {g 3_gze=r}wg.W}o AY> I?Itա8?qioޠ6}"RWsp08h`rNSE̥@ &Ij6jNjw|rZXW.otO8Fzo~ 'By7vb`=j9FtU % !Jz4`5}F'4۾'RyVkc€Κ^TG]D"؅x* )tjϣ6ns;;>j5|ztڭJ]ikunkbyqۊ&=" /Q/r% ,SHe*1k<FFȚ:>rQ~2~W"x,`W2Jt!QPgVQI]Qc|0tg (s}XMeZ^i_77 QlcyTuc@9ᆷ|sX "bo3?#Hsੵw~G0V( ǜ=KkxwCx_+wY_u!>nv+X"&sB9H1&GV 'b@(ӗ~08u@ߐsQ;oԮ߅ڨI9G^d?Έ@ȧ.}^Z!:_k׬7BڥcahҞ8:*.%i<4_gj qyكk4w<&sr| {|VXQa. #Ҥy*$ʟ 9/3&E祖\/>#wr*TԏX}.urޭxO L9AqEgQW%hPo.z~vkz;O"+"{ogf3m1XIkR{ts,gWz;ʴ$vMFB^ވiipM{Oh^p-"nŜyӃ~ $\ܣɿmNe?hWt!w˴5/\<% <Hk[An gڑsf@X IzE~ ?x׆џf&gET%$n%jJ)ϼZHz\PNHFPK{E'A:+2A䝚sDv)>R Xew= :- 55_+ N`Y)kdh5:a4^禂{ Ѻl췏%_kH`8T%g[Eʏ[#%{`"kn-5h5gm-JI׾o~mqj^3Mq)a:7 s=aPjZW-:"kϙkJ^/.5-2?LJB.z 3uu:!h@su>qz̅@uSX `"69o}z_\gO ܐ/U"|gR|dwGErjΎM]o4a/z(nԚsq9XӇ@JZ? LR~6v?|~g;xSC֞歚{-l+AM"ࣈ2Mܵ+8+:Z'nF?Keqw/su]pK9ϾޟvɔE`Q%BC@=?[Lr-^;Lq>d?w죞CyrXspwiӳ/* 7W' y΃t[/tJswlsa1=Cju=۩-K.XY?+"ÅOYc-ܤF*8`^9-r?{>vgq1AHmICGHӽ=;N8gN@+fsɭ"j Q%sP,iǻRޜUlr_xgv/}T@>^-ϭ7Ju6 ejPE0ʦM/GV9419~n>tH9@"s$nc2kZo >vsvXjuI7f밮՛T1?ξ~Izէ !sWVPܼكoB{$DܷjרG/ W|1Qͷ*D}췒|;*:JS5&U#j :*s3ʢ:kצc{}c{ Mid m^g}fڧUg>QOL;Xxm}sp2x{?8m.goy z3]c{}N㐿 k-:h4|`@myξ.9\*oq/u7}֛to _<ֿc+=`i K~ީ73`~Oܸ-qH99W)¯~O;jyƪ;7 =4BAAM̫D!ӯ1atz|Xd} Hy,mshFa(at4~I}лsEA9!㲯{}ϑLvTtJ8jq9X9Qy- :oB53;{U 'e3Vy" QaP,C"d}5q/{6J;'}o> ,Wrg܀;D a I'-䜚sʾ/Hzڪu=ze[9ĠH(d Q +,nC7`Q>5!֣Mur&Qx@8Tsܽ>k 籰)}[XI]dPYGm q,n5ya҂ޟܑJ9+h r~!Vɺ|_t:|h|~_DOsA_חzaz}; 31W}oϞ׊+HN IWKO&"Bk:{qV9>inr~}Ϧ6|>F4OO?rI+{@k""{oߙsHFrT,Y*& .Nr;# CM e䠝zD&"D< 1P2:V<9#aqȜegWc_G9wg/Xz8l=.BBߞ̥d&p˂^5B8+ӦPyzۅA_@HK59 %-儚'NwummqMwo9,Ut AMХ3hwKYA_HPs7 ⼟6!sέo_Q_d\<k$@Z l/Jsuظ~Bu EG+<c@8,d^VJ0$A { yrX_ć>&aoX5vt0D; ;51Y-|`AWEft/:5r G\da(h==<\%!ݗܤ\'seN:2rAG)>CYEF#Ir7|A[m<9Bgi,QWҪ.Uc6k^!Й A.x/p7%NUoFvNs7|QjEFHzr΍Bҳ͡}카y:Uڭ S#3-P̥dEYvTs#Qr3-Y~ːy>(}Zо-Chya,rMDC!w*Bۓ4 ""y7f Hc>КxȻ+DIWt`..rHP䍪1s>ẟUƲ{08ךG9@Q{IQ'}+_F*K_s+;N*{Zn)b$=|FJGP R3 vlw5+Ak:Gh2ÞMoX] tsnJ:8dw Gs湎hvx-CEt Pֳ-{Riޡ뺚W zyugaPUĜvCARA{5tZtK륜\ϣ{$0;g|X·uGf>^uXhV(l=hgn̼y\v@ ^ʽ9B䭓t1 գ\کՂm+}+m{:LפC}1흋`ѣq}6a%v^s]S(g]gndi-QJtZ]-meE r*i}գ3R 2`CF=8*O51AkW/CM5ͨQ5RMKUkQճO}UztƉWt]{wDwbo XPn%mW~eҞҁ.r~$ҭv8bDΕ>+y_mB%d=A𙯞rmÙY@Ug b]#ag06v֞s&&~uCUV]M"u>_F,Z7юQ9w?%x:Ĝ5i@9kKNqwd[vlq!IrOi>g>K|hz{? ^%_͚O䭹rEʅ}AX}1y/:Bwh®@Wv#Pg:豸[IpS5s$7a6(H:E zF(G͟zAg,;i('(]C_M: ⢵fi}YzQ~Й=whSzkqֶRZH:7\J^ԩk{P,bYV} 5zQEgu,Sk0ڿ;$v 9wRgPB{>z;(][t8é7LAUHyQ)#IR;1:,$ݟ1>קyQ¾[A`vr*r0`=3Dceo;-1jP iM%!OE=`汸?2$dj@6|&(T.p8o ggrƒ{FS*3O3yܓl{0<7HR qn‡R{{ގSmTg[([KF:dK{.EDX؝n AK9VXp ȹa\A_ʹm Z1V}zq o2eŽCN#>x.6XK {iǡkRRQ;=OJVZ?X_z/}> kb@m穖FkJHx7!ZtN@ZN<.mZxDnd`y׉yNxژ{{)Q+E4OhcJ;5]GII)9AfOp O&\05VΓ aZI-r;8ڧ}sS5 +g#"^WݢA]j#sYIo_-+'IKAM^]t35([ ]D"Xwa;ĥ 9I.3Se9X'B1'afaɹj!kVtr'i0ۑ(d{EQNWUG1~&ږJ.$ivkkLiC ~JMp %D!4=n:p=@0]-sC3Y(+ VM n*P]p=+:(q{L5[݃ob^Q JNu7)归=zyMph="@E$0/%jAH&qAaq[Y1gb\`%:' |jC}7i7lC7AٱKvB|l)'֗]dWXϕ.lr&Nj/@7O_|ش;3D)IxT;5R[!/TEzΜwPېr:] sdRlbC:?i$}"jzu?\k=Ы΃7!]V)2n9IVE5kk˽A5gۨpm(鱽*XvFiVjSg$/ƀVgAgnBQЧ!>N"6-GjW\l\@[UD_|1a!EGD]Rׅגzj5j&t^6klG:%ms}NG&bӆJj >)lNk\^4!Cơ}\·Os+|X^ ` ?h-OxzlY['LoPف0aur`gFG5׹>edc+XUnrΓfڨ¸$s |ı-R99:4_=Ё[X" ɍρP(+bl@k![Qaͭzf=cmϪ\"XZ Q|Y9IڇսO]2e8ҶeZ!"N4-nE"l]?Ϫ^6l"楠+s:Lt+]]&dAgۨsޣ/籴=AOz%0gqCƇC~GiMifZp8{@g<}A "!}Ss9Torԛ9o?zE3Ԯ}󷸓?· ه]/eeGM{EPby{$CwW+wʌZv,nK U\N:e:/Y5gۥ8g|v!~(Q9/:6vtνiY'9^ta3Y皓1%,퀒-Jg:vܱ?ք^BP!NTۅN R-sk"SA{)+ָÀAo#Խ"nOm" ؔy136 5@%dӚ9U)ŭz8xJM,iNگr=[AA-z A;ݽs~HGp"BxsS+׏LlբW-hF0z]- ګ0:Xv9P$aeTOmkL5f[lZ5)i [cQ5io[-Iv/9u*~-%~z 6l#-RmL+6:jVث=[jҳ&2~vݲ==<Om (Rĩ/ߊ8 0p$gT>sܠG{C08(@8Zg6[IAWP/VkVl 9~\ClA`ciw k?=|!=wORQ;oN_M_ڟb&:}ͩ/?ji)ҒON u]n85 fu'<3dvB,㔆a7!Jl}-nRһy$ɥRsS slR!)'8tک5Qi{EzkFZv,OdSu\ShV%Z1}~7orM=ubMΫZ2i*(Ψ9o5F[Avv:5羬3*.[tI6Z^r}O)wF\ CAM+Ir^jF^jN(RM?Mҏ`< zFZPN&r/5"gudxeoTvv/ZUv:s^[ˬ}SL^n⛄`S?M!q&QUCA+}Hr9窶k'^Ayt@ۯmӼ 8ss>l rq:A^J+9:Is:'y̥nͽ)cC'o~ztu>h^нN_&mtWZۯ5[~gvJ 3T=D\ebi"P[*VXmmf{.^jꉔ oU6J0"L}"yFaO{m'ȍSdPQҏHy>\Q5xN"!+ja";g: ⶒZOܽuuFkzA棶*uԡOXw&tōB1Vk-1 U󯽷MQE̅^ԛPo.|7>lzTks"I Cgmè!OovHMP'ksI )dMxR.ЎфcGIF'?u妈xcsRhFE^b]9+ sդCiIzv`՜eqߡp~mXt̅f dT|\zmRmmVpr7g3Ҷ5jz9/ھ6)r$ 9q urss&Wkk|YK.&.k\j̗ߐݛ|B]'\s$9YJr*I.nTKrqwYtkA7q^&Tbqll&{(wzyMTX:INzM!)}eBQk6QǦ?I$pG)t/Rmq|Ua j:D)$LHysIXB9fdnbyd[Vus!oFc5I4ԋ7}ZTt@H\zš[m'};>c"DE·0 bdr~ߤoZӦI+x[7aAAZmzx9gNg0ײC)@khϔt^}|f]Ꮤ4!|DYwv!<'l+rAk) c@k59xrH}:vh >-A[ut**JooXI7QjR!;$Wo`\pDw{Atk}c>rX0C!$_vPGHzy\qtܙQn;ZypEw;3-(~S 9>UQ֭#<^\Tt+eJI!qùrv숵rn=\`V'"ԤK:Y/A\3]C+{敬UЫCWsC24:cy9pp1b2h.P~n^$MIEmƇvv^I<՝OM:>} o,XK)aaS<|hicoB~沨g$ $cqyGAO52_m،EEڭe',Nѱ6Xd;N` 3@EЗ#OQӭS~Hy/<Q;@-gy"o=]&'"Jr6=! 7LEfK"QB>H.,>!룚':J:zT&W`RZtus_E8TDU;u&E P>;(./"[)TFy㞝*LlGqifb&kGO\&N|zcyWJy7h \AtdA\]J?eOrl" m tˮ.^qH;953d~ԜG~H܋߾I$w}yC@Ik ;gt^?qyρBߴ:n^9 Y1vZ:y]jCڵTrYLg۬ vP%yRpPLs yߖvm0;]u! +(Lҷŝksb{ЁR^&8(1j~'{{X[x./iMdĝ!a*o}q4ҺA*{&[\"Fj hn۪9ĿBIs2\ف4]knG*.uPI~\j;J$\Y1-Mn؄Xo.u{g! w080>Nj&LvJ~oCdׯݤhc4'QyH?+X;hvXkq2Owz~yqχ)Eê$S@R%D697ynAN%[QwO:Hs>>I R?kAG1zyvimEg[󲶻7RM ֕՚M񫧋(OW= ӓv]! [ulesvj-/anNt_rV9 75!ZFs.pX63bsf\KKj>tX+,J c{?TDuN/d(; ANuP\^WMmנi{&;چEAz "] ciHZKQ;k>nU>mwuɝ?G45[MԺ" LAFלڻ7W]ڇ`W9k"Y*-2~񫴡J"38O69% 8C5I/}~ˤ[[5sas'=y;$2ve]Ho9Hg;.RMc@[Qעdjσj tnAK5A%s\VD~śiB.7g۪! vCMĥktdTg9v7}~QJz폙d "ސuSJq챜qV$jݛ܇ [< }~eUm֒yO%y}ߨ|*sQh-^H=ݖ[,rItHmYyX"vY5!$ \X?a;CB:No?N@!tk mzoRNm?!aXcD! ގzN :'Y.Qs[9YN(Iq$i<2uBsALVwa :"wƅ vkM -Xڀb.<U}9{K[վPNuO ]: ]OnW}z+;z/ԟCwmu[aq;Tn"Tt!j/|ڝ$>BnVl!.ZQ7V"q;]h&*1a|C _:vt=oE6OA,%ہmW "CXQ<_!!o; ^O{Jj9 P5Fmy2qSnFH8]Zaķ?uԤA}N&u.,R9֥.)}zC4wR+'zT u@;5פC5Mc׽Uo@֗HcqUsYVg4yϾ*钲CεMm5_CwKH9.\[s&*9p}CΫ>jUc\n 1Ζ ԦgCV5pp3A49~`6B߀n?L`ޟzXB #x^vԆK} QαfFFܯ]ȚOZXن w/tp9' _~;ݚ#6l"`DWJܶ2Ns!夻'}Ck" _s7EU~"Ԋ/|[(Cw-@0/[5r.K(?r.r>s!7wRyW^>-l9׸C…f;0soY! mΑ7Zt \ΠemxݸFj!KM_銻w*کq3Yh=GWJ>Oz;7K9߸)ڬD_YNrl"Հw]=z.B..!>ڪiY|]n\HXt=:|*<8빞TݹCHrWEIpGlQA#\k\hp͍pm)"~l#m@8$C<)!&1^]Ynե>K7v=8C(渮 oܵ!~Wm+ٜ/+C1}Vw(w-6 r7f k,?Բk>@5H;Q&>V\k!W=Bkl%D%Z ./b~Iٲ.Sʶڮu(?Wռt}[ܻ>tHAr}S HX)OubczUN=:!r^)Ԫpk{_MOIuV!QHܨ{>XCW: " !Rԥgbqs_2)Wd$?/|w9?ߙD)V_$f-E}39nVo\8ɺ]Rw'@m""|j asnCQIA ,;.jV;>-rN0\יcm_%F&&;>{~ivN/N)z9.2R |A_,-T O0oJ5JQ`aprROCt!Rgؽ=m2+os}cɵԝ{7DQA۩ Z%3B 8>o\r{>6gFYW>{h+åDQ5 !o{;^Vi% ۫i{nc2M)-(viGM۽kCf 紃KZ}r;ŎݾvTn^p3ql.s9(E⃒`8HPut^۴A8`Rn.MXlAm5/V-dg Aoܼ;! 9:)pX8dezBgBn1ycL₏dG=aדX[m s] {>p\ևnDkr7ǭwaYQ!RӗPDw㙑0yR3~mN+5VsQgC-N\K1K/@'ƐT-i b]mFE潿?wP$I,Uw;'$REQϱg_joukC'/x% DW lorq흵\ V/YRuR:'5I`!" ҼUsuW#hF3bs'X n8s,K;ѫ9~עikնIX"XsUˮQhX9EAWE5ztH:xN3 a ojNQѩ]'E\'\[}CEEm56D}t&"&Vadž(L]ΗYmV{Bd{W}a I7Pokpwk53Y5RNL=׺WՖ=ڭW@rfB]r Y'NU.ESꉫr!Ǥ\;"FYc 17ǀ,8Y_GJ9D4#!mj'Tk"Kst':tF2/)mW뼢tG.bGM'FE|cmb}sk CMCe`ko'vצ[E z[)1Vwm:uXjDBI;Egjx+AW` $΀Lm()&ua߭QS*[<֢GIɇZ#k$1hm5Y_5[Q-wvڲ-BR*0Ul݃ImbN < Op)"J}t+פl%n"2.E1&QϕjR37?S?'$O7sa~}S7iWtF.Y5延mU;17|\W{CƱp#>2hRޮ n^ɠWBЅܠŅnܞ> vv3E?w3ޅ"'hɊ; =c(B1|[g~Ep{٦$KW%_9a_w?s9Ap&n pQsXgm198/Dh$09JS){e~a_˶%E8`xnPE>&ރXķeHq٥ m}(9^~y4^'QԖ(A|!R];lFG9'+eQggn{WXʹ-UWȖ C>7Z~&* w mFta4Y'21i'܄~D߭hec!. ܥv ?p,oж9E^S#!qI/8͝}X "-^߳Ts601nK-vjݒkg3_ ;$}Ԧ&UOzm ($wC&q}k.=6Auj7Y+L.}A_5貗cq7A-H _v{=|oB߬7vv)Ij4d[7( N|"{R\Yʿ|%߯Wgon7p =&w[1=n$& \R] p K>KZy)]vB s=qθf!R( 8͐RQCΩ?:>^Rݟ}nsr!7i{5AzJ3껥zwj{@ȍceA7izBPwIN; ҹojr>۴]Ed6I r0HBn(ck;nֵa'ccDnܤrnbK~9 *u&Noo]$]8!qU 8sUc+%ZH>̋ol:u9,?1A<*Gh.an{}[ímL:< m)"wa ՉS/k>~#Uw9&}!ԡkޅ+ζ)c9ݜPꮟQ?:ǭ9&q/ڝΉbV :(:S˴XJxV͔y%|%V;=H5' _LnayT5RM+(籿V_,EBP.t |ץGH{5.̰c4Ag6V!n7+勨KIʺ-QESߩLtt`k\[I-;LΕ@pZ+՝u,̋,&t fd>?טrgwH%yRuu˵>kJ9N@jx;Z_=E_P\(ζ ;%dc@nVuxy7ح2щO!rNkY j6H WssTd]x-7pKj?ֽ`SypZwע+&#h-5;Y]#)]l"}Du*udw,ԇZQ֫Bס.<)hMK*ȹ@Щ1SlE1.r;`u(R7a.1rM#W:!W(:n돗!"VsK= 䞋ھ_ى??T!cqW[GE:sj[livJa'.-t}apzAu=}sS s908'?MQ_??oB-uM@?$>E`R^ pX;6D!coή5^ЄZDĜrlt^(+14^ʠo1RܳLunLȦK11!]fb>`.fXkRC&Ч-բv=wcۡցqX{n& ;)+.=!kZ EȥT[.#Np-I+6V΁;D=)Cu 8ta W@q\:w\5r .#+&q^FU4/씽{6vuptrfx{+ϱ-WMxWI??;ጃ@_EVZ\B-4RuӁ}8?'wv[ ^Vo B<ϺK/d=4Oc!oG}FmZ'Zp:*>xg8V ZtRfE?w{FjЏq] )su!OHb;2I=׶:jG]!/Ruiwqh=viz᬴ =D|Q7 tw}[VVEDPȁ";K9w 6oYۄX R|+ѽrI~&|]H]MOt! nwXWM:d\=VXgp9!1Py'c)XWEM!澷M !(D5dͪI'})XX.]u""&W~D'BOMk[`(.rnc/@":T o'}^y$?6j^Xcۤ|;ۍQj99 >Լz:B>n:(Qa6f"^б9Qr㛏9Ds &䞿t49܁:&̜5V EEx@8?gE'ݘ a 9pFYqP7챶۵uȹzq\vGi_|R!)OX%t9*[Z.n"xzvGeGAֈ}tx!ߵ*m^]Ztt+)d#r./r>?ApyY &Ԯ纁!;M}Y(l E__w0O}אsCn EƩAo>qyIkeM |:W1ZT[hH@lL6FVuSw6uy9'_f qcJߍJ.|Yw$QJn:7?@պM ,"( vcT .xFZAg0y`Dp?ZDC)9YA8 isvy\;l{JzZ=ZQoeqkXq$Z2u{%ޙ]{;nvnvf[jܷeZ8jMQBq;Qnyb[j%ӿ:LЫGbf1.H:7_ZZuXAŝF%Ɍ#_|{Yھ''Ԟc{OݹG {Dyb1zۤ(`"nrNz]Z_::z)諝IibsUJplol)bH=m`Y.T΅Iֺ>Nj3 0U;V&DHB](ٺbm=.4}1Jy{$kS+,4wl챵$ ,Q<7jly}c+1GùU4.^wUmHA}G'ԻI'ܤ]j_9醈ah1ifK\o~r>apo)}^_F9;ԛGIXӝĎ2N2-W> nw0W܃őA;?ϓ}Ԗ ~֜Y#}ҮigaqRA,Rهj^m > gxktt@t, gsSںڤ9,SVy?t  |]qϩGOP(_# N ]'Ws ;lq7uiqۀ@ԞDzNF`[J;Ȝ5HpOmn3mRsx̥ٮ  KRzJ'K Jhy'3g5"Z&塈\~5}=7AVoij\B"Ԟge~5Z'[Њ<+.Te *m;:NxU\EK7,VH8vyԾ,zd:H#.ʼhm"+wyXH2cy'/T}ߝi՝]Mԩ;\#ڵ2k1x18Q4R=wB9 KUI7w.}]#\vZamrg7( HnQzCy>#X!qUF ++^&ɝ<(L9Zw"|ȸ\YAvB{YARe¾"hՅljQ:q1 I<<u[AvQPIC?:^hN˷δF")ecڵ-L.;yNM;:yޥ/;>kQ!?=7ekOKEmiMRԛwcQ\5ߩa3ǖ]czkm* 6S9_, >m ;Hޟq8(Qs.M;Rg}_< TsYܫ;!=w*z_pSDVvNf7P3 "t9sooC3/\HMίcgEÑIB5󴽮=QTtVvro[ԊHF)-Rkk !_:tNyu[(mvb.͆~m;wunBxs Ed@9k%F7q]XnTM@$uyIe`?7,<(gGBy cn@ԃx9+k rR9܋dBIXI_wI䄧p/$ݸ.H%TLۦjm}Q4rWXA'Bn|`@sB\se}| !8s͛/ZA1`VQԩ9gJiY<@ޭ9eUu n{@"ouq/uȽҩGAؽ/1xjRe]\]M0hEyab#]^ xUH#I=Ns;}MM7K6歨+\;j̗}3:Һm{ܟR!VЕ('g" &=䣐 Q̵&rumiT؜~s7?o89;Nj}w4~eg.z5[\\vUC='egA8qBNkt8ZT|>A $톎1jf@G ;-+s^D@N+緊^8k~LtktQִx#*lT6v-+z]csu=Aq"޴(f^߫ j3ȹ87G9_?7.cF#+oG#XM-pqm˱Rs.ܣ<7Rcwܭ臾)\"ZZXsog.e'Ԝhq|&ގz1gmU2[y)p$ZnCNS͡N5w+^SP88qZ@-gn j wm˛K{Sn lw:_}py}DwHR֭DrF{Kx|}$a;v5CyHt3W@\778 aq9i[~@ck*OJVηz.$\ޞǮԠʾη=>!gpn>RDžӷ Rzo`:ƾ铖i4>p4ۗ[96"鴐vxRMCĭ,FQ9.ȿи-t9Iqj™.ꅾ,U{>۳92F{}87FAI43v= '6\7(1efF /1!"EQLO"dQ(~>OϮ]j=u/r47ӄD>N4^OT<Ԝ@J5M̅N"AD`Sc}h.C=8hob7*3S۝?m\©}eq#(%/ }t;LLdzPyN(Z0ǡCЭ}2g]k&@Ur; N2s:Gyn.hje켵&ݥO!)ڧ2;M*[ݡ8s\Q`cVf>+}~.x8xB.wƞu01s9m9[U!''rn5tIN!5svZeUs+Vx|1ey;$dT|jΗ99}ҁ.HMPA5WsaQwEԵr>dzl0Dwx PףN *ۦkеԜcYS;()ArWĒ4xS$QjxH3r=OhtFM_.=jԓ.R>܄=ò}TWT?>D!V>?Gn?#<m}>PcMuRRW1IwY؏BNs!q#.h^#AOsUsG87vjοrTmc%]# ȍ@Js֝"D1/;_d)I6\lqk *ѺN -C !;U߫!ߧ3籷W.+-Rvx*z!)񏫏veqל.5KA']Bja}, qYݽup"gDrNF6יXRfuUȸ`%<.-5[Hq| 97" w0\ T?$?d(AnDڏ+s'4-ܕAq7H78䭕o9cA?;8+.?3x:W{:!&~mq7?xs,E}ܩJ'3'wIz :i:}۴]{X8isN 9u闩%+_$v#+L;XxԢUs&~MίjPnؗj>qMd(lōS`~utbnuQmif^hFn5ZI_P ۊ*zbTtn>vWK)Ӛ@.Eҽ׶ҞM7Qe/F!ViF:2ھB,9dKt>.s25kI}_l$#gϜnb uu!m5pFM)\]uM?|Mmi1cDSo ~OCg~o0I-yzo㬼>[9)h},vX֓rnpgPscJ>37e2Aߡ!z~+E3PI5sm'nNۜΕ'`4yD:G&8$N#+iƭ ?)+;d=1g\E}S߷WyX^ejq9XZf\apW!k v`[{מ YkR %Vwp_;P]vxقUCAGu*\$ZsS yN fXʹ,&cl\{ܡzIQ8GPtz_hap+SM~ 龻6moZt!V|d^Ej9-E=E<"F.ԻZQAX ^Z37acB`cu0I.}>D_?Vv>E}AiǤv)_#9ݡM34s:wA#NAHGCWRͫڸ({<)p89߯8RɅ|wrp>d|]Cū,V̵MoskIn7#<T>> jHBZqM:"9Bi&ttL+GuR"4MSp:( 5[! A«߉_N+UJ:k"18 _NFl1rs7%Z#nۢ0{֚1݌h)>H+b&~^WV [vxH9P dZvɚ>ekg@=DT{2ܾxZIzD~+8 Gj !0)$w͕96i$:=5jEegsH _.h-YfMwcb>gމ[ `_8(iF͹Ct1ap"]ք.Tcܵ(E/&LK6מS^d]ې+y݊-$`z!^GA(5PUbu=~l~Vұ鶸A }HφhO _tI*nzgVy՛ԺD\I!ߙ 8%}GՁxψuy^:n8ޣuäyomwE+ R?]omFץgZr8sE5 G9>ϷFig\]o>(#eo<. 9Es`fZ򣜻X.9NG8}š^[woBC؟uh\t:nF:vpss<JA5@NȞmCM7ci_K1'bH &BuB}5_ʹǪ5gc}}2|-u狐ckgUsoRzy>omy mZ@D=)嚧<شq/ܜQlGK=Yj'15s\GPed#hwzo'~xl7y^D]:~}g]4x^q4 ͈XA^/Rϻ}ܥr>*n Km '*CtR\pˎ4d= -Vc]d%]P+u_= XqbBzw #0p`9u拨=w=g}ȵEo['}]S$AU}=ˣr"ƅSRzsli> Fȹ~`rjMiKZê_Q=O8ߟR>sM|LZ9MƝО&r;3YU?'G A*܇"ucm@KEZq+pG=obMzNԜ+w# 3H7A:m$R!Wǎ| V˷ݩ[AW\auNMq"}Ss0 |cUak_?=&vVɓob=BJ8X*y~ : I9v:Z+gFACΙ?% 0[A [%wI<;SޤOR5cץ̏2JA/C#I[LgxЕt_Q{ل]ǾoG?ucvtki&YP#1;׼*θMBpȲl{p>>/RN8ŲjmcWˊ' ܈VMs>qZ%uBg-_$Q|lN;.Ubeh~v3=-T:Fr[ij::t8ѹ@QRڼi=C5ptjC+YwFH;JIupu#9xyR yDA1 K5.kx,AgE85spRM ,WDhƥ2JL&QrexyXP꡾{F³NNG9QzCW{b ITxjQEuHi)JXql/TtrEw5y\< Ӻma`ںsɞ.^AMu17)7*y}ƴGsʿhN"E=}nΞ<\9\OF2*_M \3@ƝAx)=uJ4N(T0Apk?wޞ:tek_J 8!=FcoϾpfKCgmUrw˓۷Ruܼsyߖv9"ACrֱ\(Sw@NrZ9GD1V'<ٷ:,Bz3;1;,NDl )՘#l1Iи.k{;Zyuםn@k5"/n'h)Xqz3g$ 3Jy[LRf@?㒌Zk(J5A3 n&+qx Q`e}!]zXZ'|?n%w?tWOtusc5N^v-ɕtlMХ\kSFlzYC #Xu2zp D}Jg2! ,픸Nsrzus@jSi9>䛥Jr7dնr+Q >lGA;[3_ŽnZ;$22}2rSP~FoYHtE9'8(r[q f%;0t:~=jV폹c3$F?3s՜t9 fpfp1kv JX\1t@{Y~%(HƮ-©&| W|~n}Y>Xgzp7"V^?܋ N]/e7(+E {[seНۦoL$Fk@NdUbg{ !~ζsl~E]sWZ{B=' mDPr~ '<3槂8 ylHzlJWkNEٶ/=&!bԥJ_>{sQg՝mvkUuok(iϚJtwJrpUͻڳDMR?x9lȹ/J9O<<ԛKv)s_J%]5;uݿA9vboJpI}oB-pocPə)?o+ p7m_eQPb ㇮o9`nR7n6mTR$@Q=ιp#7jRɕL+P4؅(M*w!hI[욛]vUn+slȻ拘B b>h.'V[Q;g"w[;>\cY 'NjT G6EY#1QS9׸u;uݵ(+ |>%8J:=!sSuspeT_g|BK;Xk_s>'kt8U8ءvy%&\#KOPwGBJt=75ޤ&z]kapרJ)te$I,NuDadi CMlwH: Bq̯ zZwh= ;"Zt*{u;.7ˢxrn{jF5|R}x-z]0jjFtlPjz2Gbt+:]P'?9:.jojTsUjeUIu'=kQP A_@҂-jl;QW}zH]W%z}CMTg_(¨McjaO|cH4w~\Cߐj.!!Sw:zN,=|!vao!iɦJA]d\dE+#kO 6&8mzMMieݐӣVbpj %Cҫ~qSo`L=V]_]鮻<;5m/7r1檀F]Ĝ{Z֛S~t,vwu ao=E O]: [Y}>6"۱wZ죥o #ek)[czN:[C&E9$\!4/;u][-PC&`VN{{`qBQ3Ԥ{i5[! (|yIqW5i)&/xKw˴dj]ap/9 aխtZMgF9ߛOB>yܯMYǁPCz)qG_56 ?ݟWJ7\7 `Q0O+sTt}ܘ 8ZY%-vCnטNrᜣsVn Mcy}RIpuڛ֟wvHřW\ʛ4JA4룞ϐBOY7!甁{Ϯ8@nZ+zΝ1>Nt[v-;]ڷeΈ?S#"\Ce#h#q7zN n\5mk5@8q&;zہHVgPj3|#Z1 @ΟkoCȓ3rTrlIj,:MKܞ+,n/DSo=?ap$_Ǯzic̾MĹ)l]}@?=oM_}lZ5>6y2-ZuJf_7P9<v=vts֪s.:NFw`4Hk_pTvj91)A)ʾA="!vS]q H_ArޘנkƚoR^זUsR +=')?6 JQ_܄ۄř[AηP'^?uܻ|8eE|yՓu@8Kܮg׾vvc#"31nُ,ѸKUQYXyAED< Plޮ|5ztۓܪ{߉wcL!Ԓxͯ:.k:W - ,}yN|1VkyspRQwkzCQ;}}9M+uP as37L[bn2s68wJvN>FoVVtd<:j|n$lrvbg<``6`G5vwQmiw9OerXV}l/hj~eUv}-Dn7\ktާkV5DŽ}wJ^(鶮o܈QXM5>uk4A1Ͻ9AŴ UwkAQ8Tum]S(Z^Ћ $neq#O#˨~ÓRN]T"GuBs^o4~8yL;7T*^}VmCo#4wՠ=̓ I8.v{Rܵ8Y`3Ip9=kj$(;{~Jk޾"ZSzt:}=XjC2~E܄\k(<~ԢoۛVg&~YB 6$Z>; 6EZs8VQpC_Z[dsZiEX5fӐx́׭DqqLy]\czmwQylt>qZкuן#A`(P8\ xīV- һK~瀌wY ű\ozJ=cP̶ |߂͟ywPw6A1zk^K$zxѐqhUz=OWsl;XHgׯ;IGBճzC*`ԚgCG]jAAd}滾cl\'Ԣs=3wj:y%tn%_FAzYޫ%B8!wP\-jŅ/|՝jUu KlτA=q d VhȻk뼭ww۠|މ.RQ3zH@5VӻUN`R!\ I˵7oN@!隷zEt{+'D _!DA0@D[U,G9~A̗8 _d1oB˭P+, RXi&z&MF51[9y;_ [co?祬+m/}ڬkEIwy'&{AAo1)ػ>>7/ +)wyE=9S. &vCۂ>Qȝ[wFCݽu侑}d? ʥ<"UwVv KZ;璅 9V;W9@e%9|sv4})8lpI;N7p]FMܜ̋TH8%d"ٗn {aC{z)Y-_awNyW*zV8mabg$nqcS1_"ϙTI̜m 8ݥI}5jй'v6%;ۄ4co@3:߈UDivX[[-1n"OݖD"؆i<~2 ]ͱ!˞{.W^zB~$ }՚wa"SPyw.x6 o+y]7ƒ58N}uǗ"mY[Aߝ>^Q: b^($ #/.zB(}o7BQs74eک\j͙o^Swb>7^YpyLFyҪ ,cmw]zכmG⮛ii?5^97Y_vvp9r]Pʏb_?" uN$e]mHB Dn &s+"}oQo'ݝ6jeucҮdpw;yvV kHqoqGMy S\ Co #$gln {:sj֋Bkh.WݺpUWn1`&x7nOCB{oۋN6do[ZZp.PWtw:eNp<.y$>29_.pH &;y.jQ6,ZZ LbWRJ!5]Z g AqRB.D7?!??aps}ڨ=[{~v?r ?qUpqRƲ.PP5)MuIT/ap3O?MuפB9K\u38G$כ j/j;3T[^[C;O['G ,Jo/VVv91%Hԛks 5xVkmc`Gp 彮|񧛐9_DbK{ +Tv^𰺯3:s(OEI1$m";NDGr!G==OtaÙ|k||!s/<6uQ5L'<:._!q:.=|l.Q*pZg US ^m!r;:0-`e|W̯fՎwrj'Pg;>D[mѾ/_??Q}7mɎ% Bϵ2Q^!=] !]s9g5;948JLí^-^J}y^Gְdu`.=Qc1V59:^kBCM:I# Zu-P5?s׸ag8X!]ЃvZ[1AmTq)} μ}"kA"=5&=iֵc!htJ\=嚜RȄSbN;5}/K >XsyF䲝=E)A[ (EBVѭ&p:/]SۀGl{,T#QS8w{tce_\yo7Dc*`j?t:h9_mj5Br^ݝE`?ױac:]烌#GoINtVZkαS7C;"k5g<=JuWh$ A/Pn@B+miGIMޝ(5~Pee5X+7lEo8w g;5_M<3fyZ e{[*?K?O" G@ȣ(<9# :e3Snk+Ēd."6C5fTi;.Hx@&[5^ 8u?u}BE_z@c/[{GJm?z9.%mӊ'|v)GD9bWSEkqjoC:4r]ǝPCf'.d@ !!996vՓWP\248#ap"^DP[j}z oFIOk& +nl|j= Eܜ%]qC=9gU,,iSb.Jl֤͋ Atu]v_dcg~yecoT=&x9:I^XIeiӵp\|&]ܶ_=)ﳆva;{chNOk߲:k7rݏi5R3__:ǵ?X:kgM ?ey,r:~Q5d:鄤Lb \IfZVS=:%ȝ9KW2. v[iDYꥏ׃͍xc>ԥBRW= [!Rޟkxux-Y(zZZ=]־ږ{('*N-dQ1z\ i􃉱»%j6ؼ4&޷Ox l/jor.}Žۭy-J' Yjb=O_l{^j\Bąw;Kzȸ.'.7"5傿y½L_Ei9S  IBkPԥzh\&lIuW:) ꏾ`e]d8 !~l`lGv+gIsDңCַJ'<>]kc]]Y_:}Э42!f>oC̽-"'eu9u5BD ozا\zߏZwuODm ?x(U_zx@9lY3&^V$v^NKO5 G^s@ӊPb6]- K1OC!Ӆr uR;hpN:8v&}Gᜯ1' $klW/rd!5AWoU? w;QWyM7 [ ߹ɴ/Zڶlm` @؃3Ob;*: π&r ZH)3VUz{s#ae6zYVSw=3\kak;ㇾp ċw5\Z 'vՙ׃Gװ-|vX !<hu˲Wb]<؈؊J}&A1Wq@ILՏ1GZ{#bqKɿ`}vmo?e9aw=3q5wrvE7yԤP6k',Ί{jе.BϜg!s,TxYDQ16^-Ef=Ojݝz~-۲GIz^!qBaW0p U=JntA}]e[6F+뭦zsQ̣1IkR`}ȺpvuZQʄDt[NK6nXeЧc'R?JChj ӾR79?}&/b}mk>oG B0ٯAM>) }Մ}WV e~C\},u٧Vo 5QC_6dCO>Ϥ-EK>}OC!H! 3DX{2ak]!nŸ`:Z `A`({J].>Wٯ7!vTs̗z> ki>E99M:̱W=9ד ^C⇬RpB9Lֻ =*9|Fm r^jf{{Z{.= Eh[n@; s=VQWtď@9 JAok;d3 ˜u6گ1vlW(ͩ??ٮl?}7ƍNo "xOs/L&͵ZQJc/U!R>7rrs7-^%ѐ~u޻]B 5Mze;AԚ e7Itc zD/TWV{yE V>v,-s&鶴CԩAokms 9,B QOmuб<_.i$O2RI傡}^C5W0Q ȷBArP̽/p49~Jhs9 b:C{;R۞ <{^%Ovյt/ab;uww\I:zhK9Wol2l s[u ]izsokD][r¾9vUyܖVұ+r~3#*z߯:0d#VcS[5kG8s9Z=P]8Ibq/!-`m!NهHPaVc-=Ǥ!k3o1檸YTu8">@Ӎegyꉃ+ډO]쏢<൭/zS(CE֊7lIso1~qߢ-n;[auqXu_!qit?&u'r]'oAd=ir (0Zt@-̅?=<]~k֖] /%'"郿! io)rZ-R"Ԩ~9u} ;3Z(Q:Iɷ",*p4l쁶/ȹXٳFY {;_Roζ;s uV3]q-3FEs]8|n'>S3IV0bya0DZޮnfnIҰMyN~(u|$ljj @ :B"$wF`:DID<܄]Z綷 9R6ʹ%սorڲ~Hݽ~ףװVk5V?,.ZF $ V vE%r-R^6h䘚v>s lo^p/-} Jvh] ѼIv?m9|HMV!3bcGA>6 qtxyh8{o|Sy $Zt3۬ώHt5^j {tP~@NX۱iChty:jϩKRߧ7:q&EvYŌslYŨ29l2WKujW?ƮC׸֨y=X3^5qύaq4fjo&jQHJEQ{>í^(&znn(=!,Qy''86wӎ bmuR}9[NhM~Z-(jw{'lgaVQwH&cRº1D/z) {X$_D5H,~v#פ_?"3>ٻ矼߼I>_FD=_.HQ9W)2;6u&8HRӮvT8>qAߵ|Y5*ѽqʎZ~nUڭ39o/+!K |)&S=ƲGD:Vyp&>vQOIulE)Xs - Zk*#]djF-*IzJ<߄jv{ 1C<0`;x 8=Z9lkM9܏瞽U?7!}Z.pv“؆8b0\މ#ۥKż]_ B9{?OspPBn弾>|8r,LJ=}@`HV=ÛSށl(nP'k|g\M)m珂z[BH=zZt4O@\zR!g?'V 8d'*4ws=SͶCK[ !`gU { J?>HYդsI5RT &. "[xJv}_Pjv8tVGb^=jI-MߡBvRKI^\!V~v,8b۩!΍yo{IPeZru}zvr&4nk߱Al SwNEEe5c$+ÿ!8s?ٻC_OE n Vqxl{?=p9_"66<Z ҭu!rNaekԘG5͜Ǎnm[/u$f)n9dIvUԽϱw'Q!&1Ī][}c-k_' &I(%:sպ= mqbu)m+.V 3yJ6}Œj/.G)NX\2Pn VMyu!"۱IXܶzV(Y"{)4 96_6? QзӕU(K;$}K ⍫ѓcQyEx->|}sg=x9#iöKAGV?jUDU"<O9Ee ɯ&ym=dmۗr]F[Pq_L]'ަ6F=Pys)D_|Ki@'{>}DNb:t֡ǾpO}=\-לEדU? IvfZ>DX<ؿѤ;ĽeHfGE=;OD$ <>ǼkM },Kcb.4F؁>":6Gߴi-"G9/^j@%>kAҪ>Z7 IXMnQt@=yy&IXTRgӘvY q($wu7d&2B/@a^mɞ:o_H=(`PYgqqV$x`~>G ^_仳?]N0:hAX$=NO9Ө,I)ߛ9m ]^W { P!ɨӬ$wy78>ZNv~Rͽ/lyg >D=',N6)Ȝe&5+%,(!!` <68vt NzMKK)G1&&QɫICjՖ׵u0ҽEL_Y kUםsknp Xܭ[]5Ӗ}PAȹ"[Mnl ݗv4`RkҜ%Օ: @9eܗmX i}ן N;et(k^p  8b E!%0} Z״BGr_xϼ6b,Yi3r*nk1wOdcBxN-|cB.jvtqW8yh5ja9dD>{9>Q}\dto_kQk(D[qpNA+‘:PCʹvHk֎Q C1' d8FZ=&iBOg\y,_B?̦ $_Q}oaҽVغJǓ{&Dޏ3P!R[t$^s@yNrwB;6ww[ZvF!TiG]L%:6wqܳ{ O&q5|G5^_ YsՇw"9JGnwsZ;2r핞L"'V!RB:\ZZ}mvȈH}[|]Y}%Cбw\REΙmE.gH{iV!Ћ< ?o 9+YUzު!G.5v~o s޴?'k޿]%Q |ۊy(6]NPy@*a(/\P۪kOK@ B^ۂ "8q^jQ9thG:֞sd}Ω9Z.PZ$`yLyJ3A?\[_8y`2NJ{T3 o s{Hp纙k"H;%hڭRtwiG9!y9(riܳ 41 &?誳枎7Do}AbWdecO 5 Q~uPJx!]݂W˲>Sܯ옽$K렵pJV At%׃3] zw9CϋZ+]gl"Gl\=8"uI}GgmjOPNkUL(IG Wgcwk C!<$w!~TZL_2~&!GQvhSܙ#Ǭdk*zjJ> !ze%p_G(v0 Jsyce^i;tHBJ$IMm/BH-|m!%k̗a5r\:$nHVE3>[smn1GVv8duz?R?Z'R_7˰PMX\@l ޶wzn@y7R5_pQV眗.HFΉ(k8p0@u'BwDYpm :[=ߤkvV(;](le' ci8#tVΓ8[8rKR㚅SNԣ>Bgizm|f7_0 17:w3goD[T|Ʃ圀Zg>s1wpn]~)/4"KjO2vv6e9ՔsV GSkY\*Z_ͫ3綊waXrA5[{TV΁E(:9apKԭ?*k rt+;+ȾcX> FAFr5g. Iʇ<ڶg9v@{jy8ew5cs7;HK,urm:܋Fb0(Q$| >c\3 I%}o6|KI9a#!m2~[UJ8u}72mhfj >_f>%r yr;›kbrKz7PEIV$,L-6ğcĞr}M.caw8d`ZѓQ!X& XF>FyI+7a%~^-x/{ܭ+o =Xl.@dYt@ <n9D<]̵pkH?DOq?:64hXp%Q!\urk&sҤ5ekDȸFo<= ]G~v_Ybx_"HGkG=2.tR!v౷':7(f"9gCE m: [5VQ!+`ͼIqBl1rUFaM2ɐU|s|mf$ڍ_c0_?-xh dHb6,{ P΃s C>!|`J;Luys?iFU,zw;7}T[^3&MMyH5@:2g;mtH/Pfu_"0m0.R5CsS=')]zz+gkw1^ n1<--GL|Tna9`q>%̧"fENw/s|ϸyg %}\7$_G燧+9p+oR{$ӟo zm"{Yø=7_LWۂS4UAyL䶐x[uF}]aTsdnn"t[4ѷomO"% '8NBtqA''%<z.Du =mS|̘@Vн[s^ƺ9@EWjFP\pQjz!79[Hznܖmm3iiʉ9ɩO?mT"aysh0A.kTE5y@B+t&"LMM6րܠ2>G)mAUi>c!x ۤҽ9ND },н!W_ -LnLz~yn9;~?{w{ x]-in孚܃#j ]䒭5jWHeU|q@Ye>2x Cfoys [⟿d{Box(jHnIv瑧)Xw;3ZMQ1u 7:l¾ ?#m=djD=ohOFQ$4˨"OQЏuwH{US#'[ڮ~-踮AWtc/>G9.me{q:YX6]mog.C!ޗ۞줪 Zh͍űmrE!kչ>}@1&@Ibg7Aq{u[J::yԭ3iAM~ܳ8o4jǮU_{r|vyDm]+|1o r %"wnpCzU W%o@}|`j9s¶[ #jӗ8o>kYq]? XفߏJMr\r@C.*e.Xݓ]QJo2Tl/IU~KLYtҩ [@4QN /wjןcm?xFf( #Ž ?w-:D] os.f2| O;GqLԁǢkd^j81C@X\Rs1Aq]S eڬZ*;̀ǮGF[u_x[E;FA _ĕ}&Zz69 |r֘wZghRSF!硬G<]yUCK'qVʴ&i =ϣEvYA?`۲$W " Q+c}y&iIk<J"Nt!{-<&BHy‘^8G^bcee8'AXAԿ/˵ZP ?Ƕ;_>qe{|@N@ bGAg%%gւ~:r5|.V=ZiNyznنWﻃ okCyIv]wR.K?|WZ{SJqk;5ER \n;՚xTt?>BD4S_bkhtGK#!^dٶU^HW ZOo~T؄%=TK5;']_r~lSG^V!G9VA1Cqu{Q7!^-Ho`u\HZ_${UU9c՞=a QоM|Qէd-q($wc{9OW7v:v>Ҽܨ"CHǶ=lgN62 "2?${v"{gNlr x5S5}[72kaC懜u}UmHyNKCZO6-/^s׋m#49"C}~lG=&b;7nUemcybxnS?w6>APjZ&zOVIs&IΓ'5Q{E^폞>~ڭ'Zϵ"4D 7i?s_8ސl_ @I.RH. >V'1 C45mwxzwY%BEn拵ZC@m:S!q$$|u#QFg~_Z#lG)67([ll"6[ҤC^BdaXZ+deyc("ܭV(}m+Hi6_s@ul뒖>uKUgj%~<\O-p^Dָ7w"NX׳?>l&VO s}rI@76N4= rsڥ/)16Q;9 pEī]ZLi쳟gw9<*nReVJgzt# ;s=럠5oӪw kD17_[+Ϊ:H9"ԠּFv?EЈ8l Y>2Ⱥ7FUK5jo^5粵[5SzDV)!q"VB>?2j㾗GdӼWp#S-,a6g-^dyM>flNQi5)p' (ꕛ3wFW Ǻ !71µ2lŔuyC}|+R~MCFHޅ&kM+w0u7X{8aA֟sbuHkXܽ^#nSA.}HwSZ}g{_LRu]Sԣ'D]#k}t1HH\_ gkOuE?@l)އ/c#2 g˽IKszi1[~Tn}&G jQ{MzͲ{)8K'彔uKk]"WIkVR[!8"گm}_W:fM(d{ZiXײ'`R-npEfZ ]%p~ OTK`{q-1&nż-!_N@{; } VGZcCVd=_k{|0`jϯDo/5#1d=*:dBRlX۩KW#~ly4S>kUQL9Qo:+!-/t] &p[\^ C,ZX׹EE9v[_'[qsk,{I/B5]_$L[j7юwKj׷>`P7|Iɇ~Գ6-~,e7ʍ@۵g]_Oi通fCw-!鴓I!o 8{^j-'`s.t]%'{ [I\DǐvWہM ꦴ.N> !$H@3,Wqݯ A^jOk!R!>~) _+/K]:u|KIh;oVӏIEEa{UjɜQ7 6cݠF]]Q!},2&QB?~q~.!]+`5m*FǦ,kG]@!V{?BDO/ 7%挛r$%~ﲮ7Yr 5<`Ʋ]s7Bu0L dt Ͼ@ v.fp'Nj=5m}ᄹCåu&X{npq|N7 :5VěoC>s.T2{]muOT)]"8_+fz_ڃx\0©yELApNaoU}x"I{L/c-O?iD~~ĝ^ۖk{#@bk_Uc7X'_m'+b@ta71 vkOPӫ:0 IOGߞ'uށ"" $CI 瀶 !uar?cx8V$[9?Ԥӛix8O׭{' yz' un6?=^AՅV7!WDs+"@KArmeDilc Q8S{^*ybU}(#h5Ruwce,(voxd"R5((倐9[똲ė_kn_(C}:nJ7r~HvvWm{U!}yj<\ĝ}]֍79s591A5No3V΃ӎqC*yޟv/6 &R뫠 7(_b@ZoRgNlzqj ]$con1jͭa43j޾Y.<q\c ©- U{ ԛO8-۾7Pgԟ,yDw3 ~K|次{)Ha ;J.iΈ=$]–݌&"O#)/BCbd7$Gm)E~"tֆy_R/n٭v[s,v.|[e>=?Bt >$NƏmCli1r>8#8>&B ko4WɆhz!g[p-Ԝ'M؇WPC5dxcoۊ>ȹ\RY 8)^|wB_ սԞ{ &RwHz^D\1PN$\pi9,(ϭ[U'|Yԟݓ꼤9j#'T|[-,^CcA|W5 ~KlA5+0}%yUmNjqƕZ7?*qHnG㽧zO$}+n U A絠 Y/<ͩ?& C篾7quMԍ&zR^95I:@'$u:ך> :޽dcZXەQbKyPGw 29ug』OT1D'}3.׋xCdrMέ}J"d^: ^R|Rc[Q>vB7JjXnmZƐ@^J*<ujwjSݵ32Vy0C9IYkVMCW?/~gσyWaukyyns߶khS[v'(erO^z*p,HR9BЁؙ4(~"i'B_IuY?=~t8sփmRd^(noE)Bo(cm_PXڅSt' SE:uZ&o/1ԡZpK]|uz1|5& &:c5I6=G)GY'\BzqHF,00j*Vu;k\4Ʀ6! H-Aeu>pjQgn?>ȴ㡅a~nK˸':v8 x3h7L%idH9DL)cw]V؀lRo >/`eoGȷrr98_NH۩2I"z]F:~4I!dz^Ap긓ҫjXաe(:zOܱ^mTza?CH3o am6*D)> m ."~>tw,C!&;bmjfP%' .[Dzxs{s/r ݪ| `QRτbƪ_ğn>ႁsW(cOI#kST/zK6?-ֿhcoT{vs\jN-g@=x~80AD\5Xn>>84U5dq8B9ABD &SȚI{yGN-sFB\%h^v'O\{!ٴcEԻO)À=?@OM!O+mlu{a7 vsk2A}zwH&n繩iz#\,ʣ=7@H`dFHtkD_0[a@7IHgjUݧURdM?<麑]H7I'}y'5kn`% @9CZȀRLM |IO"-iU_&CH}ϓ\c3k{v7ʺ a4C F%m޺&(쫮z0 N*;[~m)&x~}Iof?{M]rPv&[f!$buqԐ %WREgyL^uu]=^ךG(:yN<<MMy_= 1!*99%bc] cQͽobϏ;c,\C;Up)˩)?'pIݸ?֭%?%\8 ~=ߖJ>P̵- !\! ^{ H@@v41RؐtpuA8U?Ś0 y Uɼxi=6mZQWp6By{qPCr!.WC!-$x]jAQ`@@)Z>e\x:v`7XcBO?ƪovbZqllZ5Ɵ7?ω=st*W{ft%鴳&P},{B~wS5M."cӅ$۶t>^„ZEmM+cۯW͘!৘6k AIuq%(N 8.sKWa7Ytw,i6E손v7XMsal'uls,֟#橝\d \TVgttjCOžf쌁U<5@n}֣CG?1c!kN0jHZ5Vx[k :.߄!w-iTlk!v-d;-n "7E@r9!AI'y=k@_ao!Y:[b(SOuLGOm'ax1́(waq:WMې8\HװsyN[msR]b wE=~(zpQq~mZ)$LuUNfWz^Iogl]yp~".p/!xn"l6} v9!PɅk,"ܓvZ ;iVsoKT5jcsZ7xB!u}H)=#Be˅ eAn>d8q&wI00d@c}5pƿub~ /ʞfSU}[|/k+=k|%|85=ڢіoJ 787̾E}ՠ퓟|5Pc&- d܊Zw 뤸DGe DSyy tt?^]'^N/!?ob:At1HSWIVle o˻IjzZڱu+6%_?bi͢zs@Ћ3~k&?yo{'*$9*FYIy/5餼 y~z|zփ 3:Q8>vhyBT*}P ͺ c 8k`Eؕ51/|5XaoU=D=-6TyjEB ئyٞ] k2~ o^Ci=䵻oS7mzr EdD;=˅s5C9B܇bq*m <QcG%m Khҭ{^y h<C3#:_w8ܓAkMCDm]4XΛ֮uȥk}`k[C]\ܭRj[EE9w-=va Y~ m("OY`)1.Gs_Q#┒^yF$C"=%NN6J}t3ϷWC9 $pZ[>Pf ro©zN9f+ے͐ecN9w`uc?:6Jy8i&bj a߂vzL|ZEm Novخ ;_7^^ t ׸6u۬5 ૘ݻl[]&ic%}߿_m`s \PG?-`'?eNh"D8Ɓ:O2!pQ/(3(<9|R )ιraq9B-wkLo=ʾVkMqs:ЕD#ۙ*#5:ߴ5m ;$6cKK=zz" E4̜O2~8!4{zNK!rv6k'6&̅NfQsO8J="x;k}*KY:9ׄ%e\1fD=6j5_dŦˇ; o\𳴀 OZnrmH@<${=swH &M:kyԴFъdN괉PԣB7bQ䆾;vx_ Q|S׾dcbm+ޮUŷ;mt\oO:C۴s|{-bdx!?|x;y5XI'5LO=!cr>dbyX"skӦ1T@v9JmVjSP uٕiqکCb$:\+W:.\Sk?w]7UФWq]u޵9pA WmڹDs_e{70BB "_“a{cĢTvZG!mA|m弉CIpwopB!&m]OdMtWV[zo1d/lܓr*dRGI?pY|jѽ R͝.i%=Ye\0IG=_x_/%Rp6j qUԹ "-t|s'zGo6 5;Z5wmXI_q=ja!Zn>լk{ɊM[-mB>]-2)v{Z] 8ObL?tJN-wyV5C/<8 [:o!8)6 ԑojuij^ (9NKBAֵMQ]_k'K0aJm9vMys֐kys_k&W \tjεd>%|לd?`yr Fӈ )Zu;Rqi=@mAo{3 8ԙmTr8>U*:Ry+(Na"ƍ=[ (G xxC:uHHeun )2_ۺoE6 t汼["Fڶ-=f+W1o58 ~p -.:_VÎ޻#5gмx]$Th@xZ m=@nfg_Mw.{uS=ē;mwADf&WJ9ԡyS{qa^c"i?e=ao>?ș|Jp};}\];%=:m 5} >=U7\vT!'{xמRn\Bȅ սF`Q""Q!>}5sꤹWbwY3\@]dmp[׆$&1:.h2߮6$'{ssg}*)J*"+Uu y+zTAݷ&is<EW^cL3Sɒr)x:aqy-=x%{~Zrǃ yhD<"kx>zD} ~9GO6R@]/A'x#$kԣkԞ8ym銶Q޶(hYU]0Y@5j\>Hv"z ZmWxW W4/"`FD[Q:_?`u_L-"AAuce}{6VvEz%7Ln$XBsRu&l`A{J{.%AknB :QM5_{ 0|FZ`Qҽ^,_^ۚ(E'}"Eiɦ5C/Eu~N2H4#|lwr@!$?ԁ'ԅnwSk AZ&z|Zƞ16)'" ; IJsI`0Pt¹>߾~఻[yUbIz]( HpdmRǟ[pmK׽5]XWEg\:tl&/o j{\,Z 79!\\oZYRMF\.'=Be-/D_>CpV=:a:!Azwvy?ר^x>xͱeԇ/h F2z de Gj,B״_>uIv~ޖ!MSGQ׈Qu#!ӆ0=̹گawk,bS|o]$}aMwUG`EΥco*Q|:ƲRF1B`9sSǩ i[1_e+5kK- !.D%\."K{;L~~r[1w,5)w=p^mNr;~lzڪ#"CyלCb;pV֭.r^ʹ粲۶[Fశ"d}ԗ?E $DA/{5|Osy SEأEOp*E&=}JUpQGR p">~ dX S[v/0XI-GxeԳ|D?mm Vpdl N]ݢ {;;6l kט>bƜuۊk[-pvk9A ia5uˮS'2%Y.tpmG)$ YI'aZiɓS[s''ߣ;D\\]qIu}Wm؀ulgs1e]s,S 領 iE=V!-v E?ˇU 'Vz=sY!ww5cnV֩Uw뇄m"w7Q~u#{ܨRNvwTŪf߸GSR㱺' >܊y?!&k_z. ֜UkZvLM-æju9;u}| [o9Ǿ~jKy,wB([~u Ën>ڎCIXi_ cppSؖ`¾<rHsBl)V)QyZ{u^ H{#][AGC 圇뵚Z$לu#m_!v׺8P6q={Ɵmj׵mpJ*O5kܛ$5]pEkNZ:!p/߇9W%3:r⚤SH粨7SNIKkŒ4ӁWV=ޛ0Mn/hh 'a=bFa8Dy8\h_k&0|xߖ29_: yߎv6_q΃mql ˾*Z'2_P)~Q7)KK,: tAH|^d~9nלvB5 9O] 8!V#u@+Aӣ:iid:-^Aұ_:H՚~{XM՘BMt1AG]W\ss:!,&YK~|1fu&$r$w=#lw_4j+lͻGru_M 禍N-:CfÇSQ;;6Nn@I*~cg'4/nE'rҙE9Phgﴇ iAdw/0kk<%dɡZۦ-mZguOsⶪ* Н4}9:B?x=Wm^^m|Lzo)W:ۯumJK|_e,UdD dsl吒-cyG1z ? w7vkD6 it>TyPqapk٦]U}VUB3BZ;$: vm!?RݣśFQ__%YW{5y?Tvwڦu+5T?>Oyi*{u_]o׼^x;^_{iUr遯@5M]dz7q]Emϟ9= q>kw΃cMar7i =%/Rq nh)krnjiM PIhP9_7&VӦN IY*@R<ѸVmCju=ѵTH(ְN,&2a"'>vi?"Z(g'}TpOk{#FV2ľ.h: y_>QqQ`kZ|b-+8sɾZu {Mv ^5ygmlӗG\5i> Ԓ?|`uT~͋zJ \?i~(mXw-:u)o9v }R_J =׃ Y޴ X_6 P!ꀐ8ƃ aqKM?oJG-/5'hdc+䋛'گEKdUE }I!ZN گqa1~'sS{sqռ5%qeJgXeXp}Eӎx-Zr]Vj̇Mn'{X5-qp]z7Y3BYs"ZM@zYW"t-sD!&zO>dWct[Qlx0'=Vôqzc,/6A6jIaqwVs}"zz{SCiG(pCm~$\inZYq?n5}aלjс ){l[ځs x-ːkF3!b$m I\Oz ghBlWr}kC.dYZR}D]? 9A)sNyT΍j8 6S.D}0䣚k?1ɃE:mYcqq~\uCh)Kkij^$q":sq|A֛o9X݋{1zNn ʹTxsA%ܛnܾs4[%O{W,캿0\(a& t\ +LbtYֻ8vͷyz@Q3":uU">5綿'}¨⬟s/O0^*VTVw[J5#ɗ:5&OU!Djarb[QߚtXv+mM6Z4/ {#pN;fjvVcc{-MJif~+VVV9C75s3 u;Kb9!Ce uHk!+͒hQB)&~ 7row߾U,b;noQǮ!O:FۭLC]oTk4I-2Ad},_9dퟹ,g}Z[A!TsMMs 3؟/7cQQW\WP7am}汐 L@3R[b'\]sIKhyܟN{#1s+ٸ{\dzC~}TR>ߓΆ!R"sm_u ڻ9) wtpڗeک% uê!~=uN, ׯ|Ǟ1qriRc[9Un\W/}ʹ|qmW껈wuMje VTO9g=\$Ng#wAb)_u]\'}Q~%п/(yW-Zj=kԶ)# ya][ BcS'{[ObsYޯ?dU!0ݰiTxPcC'S29fn[Fѩ B/ZG=独v38cDiSvzgV}J^cbsk'}WyIu駞Ԥzףzeښw`\n <߹Klyok+ zU9ccIㅤG^B7}IsY!r@Q٩ӜN02(:6mPԽߨ(6UdVx2mz۪Ȉޚlo%MʾҥqWG!zcjW _!B_;"g`t,ZaQQ9;aM8# OB?/`^F|OԓK6YڳX~C:%?J cQ?!]`d0! ;cATg&߅r>曈|S\5N ʾ#X~S @׉@j)L. k AQRi=1ۺl~I:lIXcMak#}ޠYu?u+ɞVsf?sN߆X~ibU#y݋O`\{tNt?8}ڋK붲\I4սj _vݒ)P7Y7'Ȇt$ ?J:dDM'HgrWҮ-^]ۿ8R^vHwxա͍al~)tSd}c7&I7ڥzN»暌>arQ Q+T%TouiUt޾: eBN ;kԮ ABuoy!!c&S/qP_t{0wu":NUv[ . H:x :;XD-joΝu/P˕>SK.2nl!䴌HeǀB]SжԢ{N!S)Խ5 7⾷F ےUϖ 5wGWƪ@!{P˹8gY4#xrgz3ANkϵS:?}QTN`7X;漐^w#z'+#1?r$yRmBS OԳ=*zV@硊yy\yи/%+){ѰSL[41{YE>*:BP9\ODފ$w.$rhG+5=J<$'4R>0ўT/ᇺ3ZjԽ/v] yn8 n,Ԉjxu2d}[7VD%죖 nsCNiCAxE7CG1ؽoGmcnQŝ>ڗ㮹ZqfۑX>y{dk$Q}~X޽c0s4usl/ҍrμ^ֺNZh4D@N&"?θp 9?c?phA&^OHQҽmB@չVk׉7gµGba|ʴ䭤e(u>ehv]\oL[U\u^@ҵ- +:%x@seY}mm\G"@/+̗u) S!i)@ AM \:7J7^GE}o^qRs]Dm϶޶d-v.8eQ <.g7gW/_" 4SqûNnu>nrk>DV](ӯ?&.X! K ㏤?j@@iOn?IPteVO}iٺ%U/5hd=s"e Ҿ/ p0D;ۓ}g\wvw"mQ.F\~HTtE/p~ͅRsQ.T]gCKԱiQ7IrWжX 5Eν} ,5_XmR6-j%?GM39׸VifU. ߏIOv}-.0vwm,ir&x駱o8!,c]S 8mu97k;,4"siqYd܊zWmc6]G(]PRJQ:=06 _r.'[mA)iJ˰]-SLyBa[-wq]=aՔ;Ǡ %x Ǩ+w)߈YOŚe]}^&ԝ+髖03{I_VѽL"0D )~彇NMgws&+ l?-GXHظYVb}spqK9~}y/5H\Yf]@/wm!sO"OAnǩrK K)?m܄#2)(LZ&w]zo7'jo}B.$B_,AI2nZv'O4Ce3LڝՈ' Ztr֭ʧ͛tLڥ— RN NWQN]RSnN{Qv. AMsԧOH\vtLxwH GȺCxDic9QE56Nqݚ-$~[Au屾7F:ܬUQRBuP'*$/^$7Yk㬲gghvR0xb!罎V֣mK< s}SVO9v3 9@煬&H=:-I-@(QҼ׷Z+f_7DжjtyllӹXBCN٧@[|{Uf_bP46ٿV~eB9[KΫ; ~ŏ(|/ !Nts9^ wj.H 8,@jT)F#jX?wT(bu N [vW2]ivJ%]_)^o\ٝN>dlI:Nmk-L@5XkE5Vy!up7 s߱w 4o5ƙi'9h}ߧ$3AQfs@5ہBO ^J0/©KFQ<NmWģ8Y8[O;?k']_Dx=ʼIH)@.crAZm>?#u~O0c_{Zez}MfP%g]_2똼Cf=i-q|2nF}z~ڮ鵺SV%FY|c&F5E*E}Zd7 l.:#hr)ؘu.&jYUȧȲ ^!ΣXZkև>(yogSZ`|e_y ko; "- ;s]Y\1J)@O[A :1g7'nh:;Ayi՜ԚUkR۝q7}iZ麠 zXΗ נR$rn ]Ln|[5)s5TF4_Mk^Ӝnq7<[w߼iwju ,pbKRx"9A_`3osg!ho4;ݽ{ -2fHm`!AFoG¿ r:x 1{%@ʛO7 H'"g_7V{8w[;.vUt5 5GS[:=-*$nK-Mp~Ԟwt)±~ \) l: ߆k籴caӪGVR?]4J:Opuaޜ+E\sQB=eM%XŲ:PM VXQdQΜ@Zr脐VMu|>]aeӏRVtlo9ڧTk6Ϲ=+>&X2+πQwJȒ!췀Eݮ/tIqT)@v|"RcDB݃OBm]S!I(\${R׺RZ+ym!tXIZj:]%n_9n<ϕ8%`:v)o;''NIp1F A%u.nnפ=" !ěeeSI㥴3$]D![]-|7!D ķ:AY1GE,DC)eۢ(méyQouS#>Iu·֭.sH܁%kUo==F)jݸlc c@o~hvNNXK<|Usy@{su?֋PzBNv|e]c=|>Az н)3B̫]'-^tXJ&GEK/TZMMTY%V5,[rýѹ=uHlO(Mi=>5qQKEIR'ݵEu޳^sz Uj:9\hmT7I'~ɶ3(.1g]sSm6@va9QؽVL_BjAl|wiq!FQ3V޵k9?)]l2wV/&Mijoˋm^&U#0)%ǠLu9Ǣ~^ ;Ug:9k~̱UƐ"KQԘUHٹ !"^CPzrv3C̵97 D|sh9ᕏ=xN /"!w9}pJ)RZ^b#/ յB?7 !Y'̴"O9$w yFJh6 z@KTv#y?cq/\X My; 8ԽNzTNyszwau%nYY}JkOxu~өhm][܆%|Qd4=ǁc{nU}00ٿ8>rg:SlAo[{ú]=|+brxc}2>~R?Ԓ{:nc#|XK> gXd}LY%(:GC >:~SU H0MAq-<<]vպbuQտH >w&^c;0@g\dhְK# Yu.~lf:/=I"n7cqEȁo(שII_tn^Xܴ^:€( qEАr:1 49HZ2I m!T7JuzڄTOf'Lg/e u!:"2}ДMx%(0V>dD!>iQkZv/}c_gU*|&`GGqp7a_gkaKmҤD|mInFV>+83;Cbȶ#@Ir*/nk@)HAYG9oNڰac'ׂ9:j:MK<Ov ].;v\])!i&|;pCԙWs_'e''(V#=n6Ttk5;\r=NL!#]6u pAs{+IyZ%'3h7Ztrt; %N57VA#:=߹SG9?rΚvlx :}Sܶ+.]܎vmElj>9\^(;#m_>.SHʿo=/Ptw&KznJ@]kϟPO^Yrvc}3Sb`0?Y?r.PC19O#љse='㟮F<iF6w%_;|W}Y;G.{OI^3OHq?(˿e},bԠ'=UZt\5BMړJ`q9^"߹ȍR̅VBvqӱg,H1m[OrԤ/u sMtn8mкo:Ǜ:j;7˩~A=2M6ϕVB (!ԦCfkk|-Cd t 7!ԋm!{=[U >o @:-cEC A^.U<ų?|Xys΃DJT( Kºam;ΏY@'aJ<~BYg;*ᢩo !&ie<׀O*;9Yf&acQ|o8huo_; Bs)g|v{=-Afx(/kIyvۀXTq9ZuZ{x84v VXVkB1dlqnR5.U3?+%>~z}Z g,$bnAkqꍇKX~QcGm^z۩!>{LѴ[ރ}V\޲i+lۘ`s.i]'SlY݌CEaCo;ov鮑Vg[r6y|X7n,:g[u"|h֭ږ8R&d괽?d#9ڏͱKJR;M;D/t(\@L׆uW@ I_E+艾#ar>˻αOX Σ oCTn|ޯ[Fٖ Y)"oY{ q[e_^g9}H <K!_/RQ=e-IE5t컶Y)_,ϻj m~v2mٟ9t>'3-?1\3te#S^!J5P˯Q5:zrzxWs1YFI'NrSٱ;B^Cp )}ʮKP+iՃQ/mg˵)}ATr@.J5,!p:|DFqtbNipd$߆u+ [Lrr/x!$J? \CF){ڙ9$@΋-MxupK{e9Y|-p4 OBm]7r"np.^ƏJ/F:u?q!m؞~l¹ւf7Z>vmAC{M7'M9|p'vmkЋ8w\i"$wy*e T':'PNn:FI w1?t햗u m٤hz~Hpe퇥u;սNPMuEpM vAnACpܶ^i] ۢ-&? a/EBnUY;\aIV=&H&̄7$}|M7Z5-oE}$d]Tv`h_Vv!u=zHy rZggTsȸ{:C]Xy(ԣW %^Zԙwqfok~x`e5O`q|܄1A&ޙ_w{,R>11]˅3ˮ'cu"V˩9wwHxB{`8PJ]ZIRwPot I2c#zXol^aYbǭ΍6a?~v ̑bۛTyzN?aIApNC1}y9!χl>ަkke#9H\]MMJP y4ɉ6wpPiv紜iqkx֢GkR9]g^::<.)C#."bUS&=$>*SOQr藮}kKQ9*$NqAMO\o2jkR12WMЅX m}:=o!ድJNxQtQ ӞmoX5j9|z-G5=!V=ߵ" %H9s"ϗ=$?$n&"s̨}b&\ /%{z09e5S{OK 1O:n/|lGYƬ[{>!_V-9=˙úkzP}!!X;;K4@_½::q(l/<ڧ=%C2V儽!SI#Cҽ5MhG逸Nl7B_wsk%n;\yFm[9 ai&Ĝj**BB.T{{ZB!sWK9]Ucc_pO4rӴhź{l85Ǎ=qߦu}`3*2g'u9:Cf8z+n=<,n;NrkfIA?ǎ:|d6ز)y gKd-w$/)* K䏃{޻3S]u []}NV@t{/C |Vyu@< y3\t`߾&sϗ0oT{dOI6{tgd^"^8y(N杏>} Gw^;|q ^᱒q 9POmt`\7̏ 4=lzrm+Ģk9V yt縱M'Z;m\}9Wp܍Z0WyŐP~ \}-4H( rk0I\La8vtثy@nCzWRhhkzN,W)(Hrח)< ~YKm̵sZ>Llت)fq3fiXkI/y])?6{K7׈b {N\q9 1J![$BӞf )pc`N8 w,9? q\>s5?C^1:"UcxpxwA.9;]7ybTh/5O94k++~1o^RŎs{Yts@89O}TSph}ƮVqV߀R[Uۑ@X2RDEXԎlV݁'<&$C6 ^YԔ9 j-"W@2f2klfh 1f]8@wPYXA y?GΟst&7.jo3@9jƌ`6ݦdv]m;e0mKx49櫗hMj1˼fDyd7g E~V7eOBk9d#82FD"9Ɖ9EZGtj%؞br csvDG'``"7'ʹqIҮN3En ̿Jwʳ),y`qzw<Xw6clPU샀99hg_ߗ-Ik04l0} j^lYm2%j<Q1N0sg2kl/F[/XI_|?IvsC@q134.z\αpgŀs 2l{=d^Ϩϡ o eǴ-u4tgεOS&-Z\wK Ofŧo״DvdM2ЍCrs`fp{,V|C C+,>Wk0fu~䒇1[(=pKvʜ)ﰚM6 qF<%[Г9: / @=;[NY5!2xK^u`4iCKؑ#kӾPrjfʩ JaZFh; `/HD̳Q"۾m8L[m, M ^ oծ m!ƛ~I6ᓚ4 ;s]>$ ؒ^uti°RKꃜZ8Uw½jU+4]2o !?sc@qT.ĝYy_\0={ħ椳º@VjbWq9׼`vroŬTAŚsJӴ?wt'_kOU{] YGޭ!e73(gL8g\ە\]m =t`y8ꕣ~a&stn-v56ڮ>r59=|;8>ؔb:߂{ưJ+v{ l~C>yrG^,9jO1r ςLyʣ={u9:f]{`ž(v.vAMy4cfӯV9j))o m͑*.&NsWʔǔ Xt_Ɵ6|b4 o͜K?sy<}%}'00Wje[~10y7&Lqy1q2MEԸARl#\;1V`(et$:bj ̷ͮO<O:|ܒ]b1fc֠`9^91'[9@<Qd8(CWx# }g\`E5 4| Pir*tm~$/xt98W2'sgL9_Cn9x]DTsEG|;0lTU#FpƦE> w-{[l(uw],+rbO(=,HJ]+<pk+? {.RiY{?8P :堁}{`ίdž+0ss@wHʭʫ MPʷLϚ~F6*QEs=`@|7gf}EV=w]31W2P,{M.X;~x/ɜukAa CR16>ſ `7tal~Ȃٍ` 6Àq|V|c&~iλ}g0~|Xz^ ^eUQ6?bb 6΅S,t1Uq%Gk_S\sU\=4+|92}\Mkxڠ=w߾o;7KI6˘5䦳zAy;fmh|Q8|j]rÒ?ynr2Crn<y"l >q1ʵt=KBuGncj/J+{4vsX f Hpu\Ź]9p3txuo4VjSk<֤.`|o( _~@4@,/e.9Y6֟OˡV>%&F5Q(.~,ԈQ淧(%yޑ#aߠ4ùg`z "^|@!݅u'1T_pzYZH]ig1技n\[枀G"orp0֠D9)eppwj֫ [rn pjP}a7&q♒kC*SAY_ZrīT۸ZI*p7}a&39mâhn6+&=5K_$$Wntիz|brГ} e~e_9`0p,5RlZ2@N9ΆԃTR] m1^mD^sU~1`<;|܁#_y[b}@K-hzw*Ѷ;Aa\ ON}1$nsB㧜oow毴U_^?]Ү"bU )*|i9ƌ7qf}m$h,:?m䙳o&+58iƜQ˾lLBd; c&K'4kHrE )dpm@ϹPj ;XjgZ\{#gyXk>qI˴M߃¿<>`Z!ce}V2v;;S`̖^(쥤OŇw )Hiz:)O֤K;v̡,ڎ &+#%*oKg9>2K'F@7,ַG6PNZfctsak\ۨ ä۠AzjCtu+RD9O5{JL@Awz=y'`9WBԤ&Æ4bӞE dkܒC$5xϳ%},iy;2s+,DpL|m_M񂫆&洊IV|I*3/\I@lah~JMqϗŇv!Yvr$M UVwP(4no߸9+Y|~ c!y]%8E@1rbE2)au <}q8wr"qA+p;u#93ESݹ> w<ΰX PR/ym-@Hf)oe;pgf7_'`ayYO^:uy۹$8p.Cq0Y/aXD@v00 5ײĔj3р}kpn ^V$cG[#37<9/,:{1P&_288/OXrbmre"j{v+U@&{^szAulu|ڵ`]g#qqp}W&99G1~Dc\Drk +DR٧N9Ĉ|umec']2g(& ݒYfpX{np7ՋEk|Xnk\(.LQ#l2G-պ ?+?X&ۓf7ϭv=9kZi@]ϱ?oSν_-Nqv'n@gЮtI1ڶj0Kcà/Zb$M~^FmL._ ?FUS[g'x]@7'އ9ӾO$ԀIo#e}ú pEpJOfi+L{Nkc oӷΩsT@ZZUb pk84ic^i$'S?|ñdk٩k^yFnk 9Q/Sea[B\qSIP`ZSly`)Jf뼺hgxV'aБk\yEHW_Sb؋89qko&\N@9.F\- 5%||k9 A>\e'؇C-!S?5푟K:L'ωbw|>&`{eִL6]uLnG`^#7|!0s(eTفw[4eO)5j1|c7N4-_ijU=@>ǣ|p 3ZaM9y#u[{[> (bzm =eVK (Ll):kh!ܖRE)Q7r;9McIS32r[ݖ1291$fN|ǑpK|< K2'Pn'MsJ]a|%g9V16ӎS ׍t_s4O)R%2ZZHc;eZ++>rb][ź;蛕XJu'^fܩ@{N٧)iDM\k6G ;Y|W_ƣ}mvbh߫T-ݏZ- :XOY ',L9~1u_x빃2@"9. ˳!bW)}XułK2C*F9:tzvW˩7_lrLR°竘E>eɂu"A3&Ӎ%&CScolkf@3{,y;$Dc֕_NӾ/"Ò%*J@qHWy~p~﹬Ze o"w!-q{!q<3JlxGF mZےDq0+lL’g:q:j) (MK<\ #9m#}78$\s }Ǹv Y3>Tn1LM=Ul]*%(7wjs!;=9Tnj0ےlO-ޯ\7_ \ck~ePۖn]uaS„u4fH r{Q:h9]e;ϩE_pO^9a]ʱ:n f`cqM[IsnkנsJrgn?W)1,9˥v*h\0/#B=s꾇\|\u50~GB@{9~V0PG6̸U ;qH;CI8S6l[KbȒt\%u7>Xrʪ) qj%Qz3wہ"wYO=znp.{U}XcpC/7._>bTх}yGŽ~ Ld~Ypdͧ߮XO0llގW?'e^@͗kFx8y DdK)V6:ͼ{% ErlY{c /^c@|C紬}Y-FnV"uU 5Llvn͸AtG68njDr얲IJh.EXv1jmSOwYdlAy<h+z YyB&OØQ{־҄~ʷP-7+0dpk xdԞ&#yy- lJq,Fe]EH3=Mm@`Cxa(l@q49糐aX-lz,Qp[UlcR;|НO׭|xC̟-w{LDl>Yk,8_'y3X1c7-y?9'.hf ^!c9ݎW;4NrxƸR@┕D{M`ЕD9)X~U9Uqwy/&z Upu׍9qt*vꊪ[+QOowLpmI 8<6]a ހ}equ|? s L~2ܩ6{桏`wp^rφM"6̥La& }fÌ#$[=_ I/`\Z?Z [KvX0dvݜdfjo6|YhױZY~8ژtkӹrŃ۟ gɼ➷N1:E"So.9> ,b`Ǐ&sͱ &kJ`Ph_l] u-}P;(n0>iJkOUّo|FX`Xđ~6˽1}i! crKqb׵`|Þ]c9+_W:|@$[8%$,/(G $J(S(>6WvOOTW:߼ amBK҉vnW.>3:&i~DhjԳ+>G~ yd@BBq(w1^pjjb7 ²RǏoRKL~{9q!x,?wnS ,g6)ȭW ]W 5o9Ok)-X zuZ0_ WFFƾc7q~e<_3'~2|uá>fKQ{IuRLY5{ Bzs -ufa=`P-c+;)lbЕ1/? [Q̤[W+N*<'IN!v%ԐO`yf4S)JF^/0><4r(9(N}@&$Sι|OnkwC6^=v8+Nb8cc/ҩ&yڈ Zְ=*PzCi;Zϸ1!D$V~иyv}Ĭ{;l.C Q=MI{i\c)H}, Ox+ 䜛z8@]#Dm5?F%F۽Z?(QI'/=(zwARm;0q$, J.E  {r;d840ssbaM`,q}6븝n a~f L  sV cY@s0yGq]{=g#}~x7VaԢ돃I H AW ݖ;;qgGn j#a_NF~#`ȓ[N.ˆxn5NKCp`}g#])}KakUāK*ph78-*mUrfƓfa=?9}gܧZ l3zD?OAR<~㮠.*ʇ薷p=HM -SczT0c~Mz2^^_eC@B `WҨuQ_'6ZxnXf+Ho? qcvn<s=2JH?0 Oe'c87ӿ8g+zuƷFקyAҾDQ#Whaѽ:Occʦ8'\be\CNn_&O}-w0ucnCH 0>K.𚛇Kym[-:9[gLؗf~u}sU9ecPn <H~~_7-I3llw[M9-;kXP{J!Q?3~ƘK[XF2C?Wg9^|Vas's=)e.EF8,ݴV(wqVazG6"i? @;1ZxdQa;yXu7uIEjV47݋lvMfauʐ2=rߏ7|+QS8Kׇ5jpEdHݩ>-ތs1'ڑ1=ujUV`TGÉ%s# MKy6U<3䝯X\lqæRǓ qlg Hmsr #AZ~H]x@2uhRxb&롶a',߱r2\(`l@j.׾ejp 'S~7/. 4-JF^rϊMsSbnYv~$r>L:/p̽Jw+N9H`asBA\/ot΍økĂa{e^BVOߒ-w0H`u콎QY JQjӚ`@|jšRIra DKE29s =; WrB:1UaXni||59a {roH `[:Ry@ V_?50՜¯ډG?Ԍqi[;|K幝ysVwc+ Xߴ :k0-eɀݷAq0'L51QaWC@w{Rr%W鴊CmdKYvr̓6{S(N="7'}*#L樾ޥzފ{3âw`.9^1cB1+HaЀ5Ή3osU9%s C@$ yc%8>REgE'u$Hۻ8/=r22E;b32.XWיIL``}.@}Lgyp)hC6RRy&]c wb̀_5qähnVlO P=l0WfK)Ӯ#4X /v 9k6Jm~X99fȑެa:Ay+x-w)19()wрRd-D/㔈;'sZd,^:漻o:s :8z'\ s7c;~[Hԉ?TjsnMYȳŕO ۖgWvTG8_>۰͠gu;;MÜGe#`-sg<6Q SN?7ƾ0 E÷hAOS5^zę _S[Rj8c/,p}t+9ĀsWT%#<)Bg0n{DUxMM`ڞ2ЍQfG ^ >IH p?/#il XC@/QFGf喷#[\U+597c%=;=Dhw\dc"Q?| +bӟ! 8of=>Kj_z _0 k'wnTGGk5ssLV|эTc6nyyjqje*rw`jӁA>mXRFrmj!M}b~]z1yx<:|U>xj;xd)fo`n>:%4~,:p~$[ O~2ƍ ZǪh|0~ca#վXl6,죄cKg{3ֱיksM|w?V¾=% W)'clζq(nHumsm`(Ǒ=5N BwۀۋW~0^&Y7k 3-p0^&u cz\sm776vv=8%`mHܸ|> Dcg9 vDG\6t:&O>;{{ղ0aM.Vj+b Al`|m 67V8_/@}*s5Jy|osQJtd%8$hm}<@qa7/yjJ?bqm)03|oa1#9 Tc9~jލlgSG=fUԌzɛ%}?ļuJ==p`WLuC j<+H׵U8裁\VGgN#o:0 eЮy0w14HR}(;m_= >yiG,BwGg{Vu̟-h2@~v=7@hc mٛ+ Nd>'AUUI0r[}bީҬ˸֘]=|th̤ OE H !T1>y+ qJ=w)̀1 вo=v<$0;~m:TQVs1[`MP/SnY|>; n$/K s؍ʼnUX{_a'beSz?e~UO=΄vηX-rY1ZyOᅫ;\SnyQzafsl"p(}Ǜ1fӗYGN˷؟ 1%yun0<ܨ~j0V(.OML>Ĕۻp_+`.PYk@cxȀ9qS+\]a mk$uNSm&/-&m 5cGlk[,;ca\u[@ >2G씨^bۑàVo ,@ @.zzXh8q3n+> _'urzHo.h޴`Sk IT|Yu,b=V}.1ldp9 o+Doڍ}1JS j~6||tr5&^Eէѿѽ/,'X܅/> :fpx`JkpQnt1Ծ1oU:㹧{ê'9@|s+Ҍ q_i w5aӟZ@\ <"Zv"v[RMv!/u*ݴvXdoq%|G\%5f!}]kqn.{M4?l(9:JJ'<9ͼ`QWm`pu=ܕi9"B~,Pݜ\mŔvqΩkP9_n/a僷7FQ+qX<7?;gy8+9:9L] ycGn=F(ͪcx)E坯7X@;N%s_}W8~:R-fqּWqaGr9if}1$2%ْ^c>,аlO0La39f(~ MO5UmpTnva&f|79fq* p/~tH'{ewVKN#V!pϰn_#,g BaܕnzZ@y1nku pboY"łKR>UmO9sY2J28Sbe:W4/}YdU kgaր:}}ߐ? 2/sf Zj εnI:2No,kW'H#g Ν g%ҚظR m !f1tb>Mθ~ WļX1t>\]Rjq -el3[wG_Uڞkxb9wbquN :,;\&Dak ]D]LwP<lsז t$e]]1ht&? C[#6B`T|1ߒYb~"?+^=F^߫j#ywXtst7#oiS=7~S%d~V/73\Nb@܀=|?y;^ʸ%u >7)F nSfx2i󜸹Kv v[`~.{Ӏ4jZL߀9G>sXWc|8~3^#%KPav:ll0f>f̊-Dv.l[cB}L$Scgǚgnr2[wbk 9lws⬞gcY떝sm^ӇCQb񺌭y jG G:m9(gҨ/[bB}05YU[9ϾH>SP hMeRzehwwk㸧߼qZDsr+Z`.`ؒ]غ ط#ӼyMU'uʲ͸Rv>ン(w%B 7J0:GLnc/(}ͱ4] Ʌ6y_Dž;~&190_J͹yuMa5FL9uƽυ{NcI@R^ A@;S?ڊ}Nd!h2[yD{|NjPd4xuƁ^'[`j{!Ť[qpEE%Լhxuz1\s:eJpNm a5֎rvzR[ vٿ%o1S\%#5^`~1I7xd2rZbmDŽ>,ӆfH`Fr 3\,(wwEm??):.y \y@Gl8yxqw&?9I}p@@ɰsqT2 R/цv \ě ^{zU>"7 ߱}Aꞏc`oi  Dos=-;Fp+Xzx T?0(y6qf]wu#na-Og_)V̊'d_j?t:,-)2ǿWa]>KEv@򘚯c.ޕ=:0 v97hG}tyj@{pR(1_qϮ,v`w˩];8Xrry/;'&mcZ kLğ%ka՞eˠۗȤ RwD$&|`_E#7?ts\ %G7 Jou\Sv+;z %Xai{rbƸNt<3$ē\"jO."k?gU+ + m9SQwb_;ZN37] bF~Ej#/֐o:P@N?FR{L'׼sqŀ$.W+`};A^pj}֍$SO4%L 5udH5G7`bS7s|zqW˃B딀1PG~E0P. NCA{Sƪ䧫81;!}] 3HSp>.g4%ݐ#Y]lk] ?AƸÖ/kyWaZp~-?oX)Ƴ 5~bS@jF{Kzm.{1w0Pݯ[>mKݟ~4 Un69y-rߣP-יϯ X$}>+u1"8C,_Vbyg.q7 _m"9'M+sh,^tY4ʩ?߀)IQ-Z^n)"2Ǒ]ǹ Ĕϖ )}Z`կq/?캗jܳtSokc3@瞫qkrv)^ $ e@N_usʩˡ=n˔0͞S }-Dl9vΦ%RcNJUm:^g{4oβmb{{V%qc͢[UrO-0wN&p)oy Eaf:rpx p Dr78sE\rd!|YXʗT킿*El{Xj*r~˜ä3VNMn v_18XbsO"`=]qW{Lh<< ATmEq}TNںH +W uݙq2 H硒l }>)MӦ9m W9bY78=-}b Mt ̮^$5k"o5Z&ʅ9.ր.¥Tkv5۷0^q q`Hѯ`}}dЯ>$5Ь>@Y/1ŪM?"@TjSXbN삗K\Fʗ)'LWnyKcdp3HǡqqbW4hoi[dv]o,͇==9cĔJk# o3 l `)׫t\ktL SBMʺW*>&~矻 ͞W sǮR>5j9e O`y W< jiK`-C@ 3L>mr9J]jJgt skԮg2CcsVJ vZqb-^3ԺEZ , q~p~.|WZ·yN/;5(~[qnsZa XphK<ێ+Mzop,F:O#39_[}(rw IoV;v䐿,[~'n4dYwe)e UDǕi\^lu ;@a+^c>LkS->zp)&Gs4E[C]u[ W^+0 vǛ݁A/9٦v/iە|?LVث/0Ͳ3өua#mqdl79cH94\I<1gs_x}(yet\,8 rQO5&ot;;K8<(cĩErbLRsw.<;y63eXc?@6= O ngH>ii:gWioQ*> m`ه(<8|#b}O9ze8"z {ty amXP8vd80K:g@0Z3kOI5bۥ>)< ̱s;Ou&~GxO*u9u~/W>]- ~F.rfUϢY9 QH*]>tα%Vt1b9Apbhrݶ̞s)J9>-+.?gcIq%y[Z l?ҮW C7nA~p(6*eVVVuoߪȈ7y;4?}@WUŘ^co)޷7 f&.VyS}JNqqϫUiͯ:ꖟ16_1)NߠRl޶N[rt]Vfa `y\N=OtS2..CMGNIK1S? p E}@#`]0nd!UƢ1o:U&Cy߯l'_c05{BLܝ\tÖcmE._N4ߘo6 t1Ϧkϸ9o-нzO_rps(^c\.Vt.lȧ.Ocr< zˬXIrbO\\:5pzW6Ve֬uMl0|7LD&rԑ%^j y' t M=5HL:%o;n8ǗxzjS&f K.:"v@A{lN;57|eL wjf3yjh#ѹĎH_J-V@SͨƠ9O7Q*? Wf.qZ{;hHwmF,+fg kN[9ώ񍕹&<~t$ol};9Nׅ}TOe8Ӗj+Yຼ)FʳH{grUPH]\sv&#zn *^\ ʣ;=.h<-GɝQJogSXrJTL`g\8~L'-ɉbuAwŐH;TsbM޻ef[`ܡNsôn.6=,2(bй91,Ν:l[M n&Z0nl^|-CF7+$./̦1PTDacYW0!pv@`ؠOuyU+q:ހ {s-G %AۀyW]`P<\ c,`19SX3 g,]=66 `~{yÆ>H{Y>c?kTs~wlppk#e_7mZb|r5_>O>Srqrȵ `@{DNˢϱ]BLyt<&qԶ;u̘a(%9[077fZ }3r1AݱoslN *+?|NcXvuw |y0f@gbtc\k$f/Xsw 4x8B¸'v=ǥ9 $]RMyn2 v{H,P<jG=[M+o*v.U]oʞq# Xq8"sIXG˪qoE5Ǽ ͚ϳSsDQByFwIĠMysH*CZnc ׾E=ɷ.m>dEk]ӷDpyQ{Im0ȹ/ӰX8!HUny\T+g\&p}+dm V;j>yG:^_eo 35u\'K|q8'xr).Ae$WίYO=So fʑӺyE`xa]y+}8@׃ Fws_oܫչk0w䗪M ˞w"`ா"<]a@FXQ]̧M0o~@~ 8; >@ؠ9wXqEjj敩Y燳kX-+,z1to=c-ߏ2@;g1aUW3 ̋17EѦm!v2*߁//L0FcƞqpdwҞ[q7HWK:7M3Z`^̹bҘ(&\4ߍ{5ͩ:r -(TNA1S.팑RƢxKݑ~c\@kǼOc\0@`[b:ꇹ~ 扒)'Nmo/-} ʝ]π; #QZP̳pl< $K5DYwrMlS[j,mKaհjg'Aj.uqJۑZ>cv*lVe7Fc+ ^>\``{<柷;]LF? mǗl7Ox0rhGCi!g\0rvEVIԩMBn]^؉}.,:vrI{m+*9Z!;prgʵ}vao) K.)frђFP<yo|wI4O PW] ybØw=Z¤_\wbMO Ͽ?_4dZ.݌8(-AuOy֬x"s ` \  ޠÐw]glsua \!Y.c+8gH 7(/+8 {l~MدYN.&l59=9.zQ݌z=Yfé8IO;70;B v1ؗqbGͳs*<[%*|u6r18s؋JZL<(kxE۠{sÚS.VPu{y3CϥУ+p['&0nPLAGٻ[R 1o鷐]#:mdqrxg'Qժ {<<:G&sowvk=ݟ6D89gR㛯_i*iD 5']Y@i"ݑwٲN b)^0f{ _&g׏tQŹ^mjoʵqtI6R̽VP#gka3T HXI0~JEi>e W26%7] sWk|t;Qʈx~>ci`.;Q3:|JWqbM7"1 T@ 6pޠ9:s.ԓ彉_y9sר`~=ޗ9QUF~.{xE$Icy8Vt%1q̂?I KhG>8v4]}S7u ߠ9cN{%W%5Jzĩ r0[^!@hP@|y>*}Wl m󀾨H>_0xV_)JK9(\vmOK̊1%O~ϼ" ]ӏHv7 VvoﺞYMG녶rn@plnX놝KMEiW[=@[F60eLl:`)6ѥk \HIa`6wq [i)Zʴԓ<#y<-+q䁦qx pʿ1ϡE󙉷\vLdN.-}wAE5k5&tZ0Ht1;`(|en~[2l*jX#[?v}on$b 9VhpθQ/7͗Cu C6a H15|}ٞ[Ne '5Wfq+a-}dӼQ=}{1ۧlI*h{'%%5c9a |0hNu::&)ys p1sdc`ދMSws@{GN`y#ԬwʸuRd{{!h $擊c\|J,n9@fk ׹ʝ8}qRAڔV%]\u4mOg }xrѩV|{ ]2BzQE}>8͆g\\]> C振|iru/xWR3y٦:d3Nf̵~uW}/,\-~4@*-fʙѐ>9>~?oȍ}*XDAy99o5>$kMhQ\-`;lT57f]Qh7V"u^\9SZ53 yo>+#'2}ixF 9s.Cq[pk<>:p.ebk"_}.=,c> $̟?°y-{f:egMU嚿ru]U},yok̋,͚ccl7M'WduEJYqkq6ǟ+J*K_QDj|ojqdIXW͡1XserjUB0֜~h_s[S HK> j<IܘW9` ܼu t&o76ÐsL>5LY<gpl- P2vTHtʨ̨xHJ%>ܘ1{E? XaO9i:>rcɷ3@>AHީ &N,;{QRwmptɛ8eӸRKݎ<#v~af<hv? l -,"l#V?ܗq3o/5/3da.o8y?aG#1e1]Cwg q~x=f=1 b5N" >8`AmJT}&[n?^koΙm ô7W?kb(q3.9;.k*M䚻OΨĞwnyXnJ/@ku.y33Y쮅r{`^,{y&PɳwHؽϠ\nӌyKZs2]pe4W ?a 2;ћ̹AĘ81^ǧ?t |Q|q"(3!~i2ܙ{z?]mZÇ+z W;s[ ϫe;T}ݗR 9?7Tt 5׶YI֏`Խ}i.RF?5JVU?|]_Qc>` =c@XEta^-P>ęσsaq ǁXA;cUs4+dzʶvk,nf$ôS/!0>r2rmv ?p^,$r_ǬKwa:_z9߀cta/x[%Z~~ɧ_]PnFb=yGV>>a=}sY/xd4W,k3w]q j{H`Ib)ϗYXEb`ם=l? cPϱ[fV^ǹ3㇛t~-[J `T &qr}RlUT1Z 36˾[Jz@ސu7{8 9 pkumð{n:gLFVm0#0ܖp<4al=9[7?9\)4?]y7TƱw,:~5 L0m9`- k\osK `[ټ8W/Ycrݧn;ˢ{H!|1/" v{At缽:A߼qf5f{gr W޾ #v Pc(cb(;YB7- Svs1x= ͜6qfowf˽o|kJ_qWe{!r{ 4,ڀR`,ĩKS) 1@IfŜȳSݖ]eqc3y.]mEDµ }-\_=vU*&bi=?d.񞻀0Ňs݆&W8O' 3sY,OYV ˿mt)@_33S"<7.XY/;z~Vt%=aW.(I:% |-梏=n6gǬgtx/ֱp}isr5~4ȵ[Cjo>5GDޞ0Qh~w 4,P-+ ;sFH)K7מÍxޓ[oNnZi <'y3A-S~^3/yq@|6reg& RwJPQ͔} ?kj7s, 1 Pbmd4B{k C,n`0sLE^:rRڀޓzzP㧅|~T9?2~O J't⨔#q%b>IyØ3J;Ӵ_Nn? 7sw x&|;Y GQGչԏbeGǬ}¬'7-2Wu7}㛒ƲZ\؜Eo0.*T?¶&qByfb쏻;1hynP^@ f}boq JDO^ƀϞ 30ۨ( ]z8 \˱) ̨u*F{HtsڧP$,k\]k@e|2Z1edXml50x.K]};/D,v]+ /wZ׋ 7^I#;W9|Wwcn9G}}Cn2G)K9c9Ǩ[€+pqc<ʛ/oÔkLqԁ~6R1f` ݫMˌ́Qg\sd>aG 09/f@zZusZ* }st%X-$G ,:A^Xqh1 {="emYU8d8Ι 81oY&H8ӝeH=`>1W&j=ܳzil]ܙ}'13NW<6Е50%w,hyUSȩ$ J{|س1 <]M^wα[RsNkJt_ƣBnä`J%|f呹 nv+0x}jtM1PjJ슼<"3;a qq~ aͤ/p8ʺ ^UW]_Lw@1O`}V08'Z9J}Xmc6 Ƨv̠oEo͂up`ůt63@ ̓eliPfշSwc6i[X|N㼎[)t_2㾬{yWsڰft:fǿr ÌW%-/GAU!EL \N]SoN9@.LVqÞk=n'xGcE>"b nx=xc_cK:M's VKeO;3a} bI_) 8ۿO@'job Rw>Spd#P8|qZv+XUN"rw^i u=G%E9O+6͢à_펔g# VG`5atڔ{uq$/wt?4x8̹+e17ݒJS wPX4|pMڵO%eud-9|a,pm[c4.kl)_̥Fu=@ƀ o'qܰe };n'n{GN?# qXl}3 I|Ƭ,y/_~ 8jì7nb:ǥ r;˥= S71o_71ױ-RQ}h-[oGv~Ij:,ko=O9іg:ik~ D@_r?d2jS!ΖMh?AV- ()O I4ˮ0'<߻_Fw(ˢҷKA, 5 !5cN%n@ȷtacAR0n<8r0$`%?TΙ]Gz)b<z)]n|.T_0uK)V!u_| ?f hߵyVZ k57v|ٿKF.s6GB;ʳR5_ U?vO51{r4{<%8%,[+jWsdeP>y{uGuUpN[cjږdёӱ~x۠=%}G>!&>yU9ba5pz'AN03qrarUvH7< ތ:E#yw߼7 <]Oƙ1+QZ5&njtPLc{D|M-vܔR0c|p8 <#1$ߌmu6zJ]E^,_#aw%\ 1<(WϨ#n ґ_WLXru.́{M I*#u~֩qDK@5ʢȱwvr#9ߴ#69>.θPk [Վ@9*L`SrjgI ;+꣭uO8\Ozʹ1}Jor/`D_h,*OW|[FgĎ${e{A㋇-v_ c}*xycyKL3~.~e#8L~h.tmw <0i7L?9#&h1&1iehVpNi|c^:7,2l_')_C~2{9 4o|3C [ENY@c ; 7uGE(uM?@}zSKvG9.7#6oY搳Amu4/䪛E<ռ6R Z[Sޮ:WIɱ$|&qf#y9. nӼa'v mzl \cžESW=!)q Ny5f.9i/܈$^)7tHN :mNa {%Ey?cl??`[ jeXgI[j)Y1#__珶^Yr3jz@j `Ϣ[Hv=ܱ4s @k~l zLT25GNNz2.i~2@i.q a}}~+tǺ7k*/`\qfU7菴=+ݣ,@^B6H_֓(J\ )Z'"QTgܰYYȊ|AY ACE tȵSL1y@cry<=XxQ2;Bm4X6-l<^};3k~J݇ᢼQ)o5f(9[`-<ٞ/@q o1XR$L3>c0 i7|3&dn9}L_} [}U*Lii*r\I-[`}b.^[ .k:]uOeH܃C!rlSXw}I0c꘿7` ^[* kɨ[\ C.ME-n4G{fqVm`>(7 )f,:h! P!Xpx]>yP$\璤)̴̹ޞ$rdEX}o`\lɰUp!߾NuB?%}Sϝ!O'}h=6/Nwŋ[qס?o$68S{ر@0wm;KC_[)/PBH zcN:n/:'w~,HtŀrK7LyaA#| \/)[1'op/{nTq{`.f:Svk |α9naa.)$Jc\%wI n5)}|7HuN@D1 -(Ob. 擣I2 o?> 2g1@uK%}:*`@g|s} rs`yv>_0לre"HGc, Q6JAZ4FBr}]X ωfߖnNj ucƵ=͂BEe]}s4}['vQI}t [_uWaiKSTfҳH>[Kٟ=1oX {jNoUѳkxk^pq|~, D,sPFY-H&p?*ƞ[7 ^"g[V߬.: yTc~U[$*D#"8l* s=۳^Vb>d.A=cÛ?$sza'&7`kO+fg7_dm9_|kߌ:ǎ:{tfC2j5E+{u/] Eq0vow~:)W;20n;7KV랇6n*7{;n\<99'.y}T-u$ňôO~H. :9ƚZ#9UedNa55 Ew[ay EK~:[dM_rnyWy9ysӮa ;N֖[`l7mj0t|+<_:}q00VB%0te_9wvهu{Μ_wP{#]Zg"w3\Q/'I& >~B-9ː'À|ru-|sm87(4oJqOMzM95iuS]|a͑ Fq}ֽPs@8vk/vE]{@F>pI5c$ྙq@eӠgMwcXoI}S*ljx6lUM/> 7x5W,,{<~[u)J7;d<XŸv?[liO0] cޥv;3yޟzD8v2iGBI5Y-:Zp3W9e̹o2007S8=_":?Yo'>jHs;$˃3\dyNMJJ]3dTު^}s_oW+Q;vq3gY/ (etF|Ɓppk)VY/NRsJcڧ!!>w"i; q:'u/t`^{kmNłgcUb$ Us9a!ǘUF nkHn9O^Fg VY1kor@u?lass8N<26o 5@^Gnܴ>v|<,|[u^?0r )ͦ6x@>@=:,PQ3VT`:Q _l[Lh +1eGv þ@swlopJ!?dZ 0__eΥ/͜fIe7v0>y zjO^7bG˫1&Ҁf ># 1;~oSw0ko;ܝ[)U ߻/}~mwDLe8r8&o~{%Ԙs[/ZFm[~ z;Eaۉs꺯(f+m^Dv?WņϽT]X`ӓS4 ^0! ]礲Sds~,_K,yGMsaǩE׷N|F|Ǔ{GΟPvbC 3_#|Y`%/QwX|1E;rZ\ʱjsu/,cl;>z:E[WNJi:b 1Zp8LKʱJ@yn6rS!{rw͘S9`ʳiϜ| qĢO uc1/6r߼AJx7Fum5FC9#ދ~ /&a0Y :F ζ%u cU uʱ ׾kk}+_-s,d`z\/6Oy.מ w˖[~`٩@ l9y{Uqە}tG;҇7ː{Eז_&S:1SߚS~p/JxXIh7v2W1gm]'gNPg9el6c_V{? ~P!nu?Zrq&Z ;T[fx!y{ Vuj0\FI0"P? z` gȨV'}6zw],XMofPm> z#[bXoL3P~iL͌!@\[_X%_FbI;&pXw{Xa;C;Sx=O:14>$j~. ; U$hN tSc)ehsl^ಀujux@1 tmw&k7H -0Vbxaڅ1Nd,vEGx'+aM?>ȓ;,`{eY"9C]O ̵Ȼk`r:9Wv\BanGF̊5[E}6 BqYO/0w4{.mImop&fm1/vέ5\9껒-̹$} Վs@_S)æ-;w׃~{.@y\ ؑ|jN9ES2 Y<Nz|J>0~-TL4,Vo(W^K`6 k|9Hv'` d)8ca/_ X|Px-\)`S~O &ü@=ql/39B _,=6iCYX^1L7NY+Vr`8a}JS|IP3f] =];^!}w-qOH5'L:S35y:o@A:aT.&z @;>zFwy6trқ)vjH676 N/LN()y4AvʹUî<[9.Ӗ?^ h^{ #9`9`eS ?lk`l9ז?qv_99vUn.' `nI?E?}=&C Q,cAd@&nktJ]:c$Q.YN|nϽDK?ŹO H1yAG2RaWk{^9cvT1.@n۲C57K?751]nUӿ,J!9qY wcv=) p+T;qy81xȓ Y|C&AS kT`na VX :׺c׶8ۭ^8}sa+Gw?Y8xf9S\e]1[_|9Jkŗ^輔q(z*Uٞ$z.t <2OYQcf~ߐG&kN6yF.l<"Skf.yۙ}Xo7xMފo]_/Mv8_9bmcmYӵ;͊ᠸ?+0Hco]2ZT?5/M&nga䚔g=`$Zhߔc|?[|^;E5A0.ͦEnzjטW}ԛ]ٕ:An]x;R#vޝnf8:eϷO1FrH22gN:?}Rq Y-fz hGeX~Gޅk!{&1WkYT/6#WFkfNHXBv|s;<~-GUs?s0Q+Y7m]Frs9f'\{>3r9f~m0:󻿬旄徾*. (h;X-0L={ʝ+BikZ^5)OhxA1s_E)͚H[=nwЮ>yVA/Q[sm!%s+O'>L,,A`)ּLU'OnP>&7(Mwu93 3 U.lrs8H&$;p.jtE]~V_s;tw΀paC×8nsoHkrcHͽEb5^kbv*%c=WvrvwWo@ޑNфV3Taf=)Vlܽc9 tJa~o#qR3N'DÒ*˃Ω9<8lPZ5-yFܒw\,{ӱvNi6 3ao m @"17P,v pϹuQy.,2Urb" Me GJ5GmZ8 Kߌ p }@;O@#]_Y=!cl; 1LBKJj\[0w5WIT2;Bq)_ î#xN|J,*D|G'DZ{*1{04y@9lMZbnyHA9foKgr 쓲~j|wK3/uޞ[EcsYw:@[羝9W ~<`%<(_35xSKpy^obE-^2k_vRx3ѝp{F;~Ncs{/M~qaxnfvuCFNVܠAy>zo'8]`yə:vz*Ŷθb"۾fr m߲JƐe9PZ9 ;+hۥf)E0:VmduӮja \cdR9]?mH7Ci}fc/@yayѹ:l[cQ^6kyފH%M2tv3EkךQD`0H?G|>7^\=a{(=ӧcf>)l>OH#ÄG®}m=|̟̺PBuRDocr:yG9wI_ifŵ).rN PO;`%Wui\!S T^6&ayؾטWeEE]u?Vu޻[[ZZoΤ6鑹+ sg3' .v̑Z 逛0C= xordcR0|1JEN! |׵{ܻ&:ѯ?m`y5Gi5qL:}].~/ 涳sǭw6,{Ǥ*.m& jI#7;H~&S<{ɤ+n n}JwۮC@t;,žBu߄(@z)$]{ӾW ;_57zI3S̺i7Q0fsu~ݦ~5E9sP^s^ Za5{F:Zj|rO5ǩrkUS-#lUCʫ qw?kCw6AzoʹXWƮzyAےΘvAO_ ._wxS+w%ac}Ȁip@ ^yÎwR }Ysr!]_}>JW~r/I0>uX@umlR_t?2s$)ƄR)jp$n5,ݹ;DHo S8ד};ᗲi`Ew4Cn?ȵ ]@`“[/N9ϤjiʂzH;3p2EJ ;j3긫/Y08~=%Ր a+;Ô3KpBm.jӍĠgm[3ȋa:Op* -V0v&%eu}n|,=2yk09=3rs'ӍiW{zݣy  {a«LZ ގN~yif5D%rmOɴw4)Hir*k)T%D4˴  ], s{n͜w>9oTqsxĖQCy/sSDMb%0t IdZ6I&g8@ߜbԩ לVsn}w[ Tx*݃7͸Ui"/]ӼeN%Qpw~R ]?ȴ=%o}F y,[~!ˉ!wڮq]l*L ٟr~vk?{$\Ci:lάq9es]sDK׭\)5iӾR1^>h}qcefډO} ~b^:<̺aoae2ݩZfd0.M"]_Ĭ$PmU4n:,S欷q\Z6eXn&Nb}NI7.+ioz~ymFiݮ5|tjp([`^1 {?@0:s[|^f\(uy; q\ŌpXw]5N(BJoeP^ oYs:bcjsPHk1-yz,{9'H { 7;s!;m8`5w4XnEk -cd63 t_2r?%?aN:A\q 878sPCnS! βA1@NLFpq|B:e"`c zd[l@Jl~ڞW|Vq01w+BkK6r=Zq@P q Ϻl_Iy Nx2 tX=܎)"._D.ٍ ԉU|Ya7w2'}3>T2 rΜ >s w?p>H2>@JW37 ~ˠ|V$={,:4FŠwfݗck_ÜûaibjFr0x%ů|NLKEy3&~T?Q 3!=I 1A@9:onL5 9j=lσ8Z:d۰l{ (1xY^lu@Ay\1B"wi˾ Z 3^K,Nϱ\67Dr(vz JޠZ1qX3=#u׶g#=mr⨝'R!oa_`>1Gކ%{O8QqOMN.7wS c)xfc |]CH?{5k^O1^&FωkFٯgGa\5ːyUW]h ]W;SsI t*r->'eॉ$&_0#F\Y㉡m'>_|؟%K&qTR&3^KeVLqudjs~i$q>u @9PA;oWQ*<s(S[_#֙4 wd%$ڷD*Ԇ %-u[vLxm 8*+|W3]m 92NF4 y$_w3n;jGO)`xo.ݾƸf듟cxri罯zR<w`&6: Q80y`jC>n"W8Ly;</(]Xd\~o5![竲a0W7zҒobRxcF/\{s֝z䘫&]fkOVigXj[uʆ2Lj%J1f2TL>yKܽ9 2v?5&yގ1RSˁOS'uv`<'=.q}`oXw.:*:Xjŵ>SE 폿 0a!vs,ebMWkQ4 9߁%ukvvK.{+G51oEmĕs8"8g4u<ˮ^l''+xpն* :Luɥ`h9śϿk&y\^9{OLMyu?/^N=ܮ6FoL\qFks<΀n2t2m2x4=m͎6~M3XT5^*o6'TUVYI7i@UhG¡%e1AcPGQVU)qKd~ol?2wOt.H_b> cVcCb`:Ol盻z~nqakF}5R14-&x 6#n* T!X1úJkهɇ#ӧkd!8==YD;ߟ}9Co|$d#ïI37rc PUL`}uN S{ݷ.J˻Dòj`,E2}?M~I1r jٵ! {q  [oM!޼-y'3(G(< ^G ~'\O/});uӹE0o木2^f毸raݎQ\[-@gORB4tny-mS=~wZNM[?zì+hҠAxj ɜSͥGj왗 9Uk㺞sG^|o = .RPzVa~Xyo7Œ#1[nW)ړ[ryڈ_tr\@vy.% @<`S满lYmZ::~wz~Qgu,5\+=t>/ bߗw7Mkn;LI`ґgI)ۤ~y`neG}ەMDcFVh%sl̮7nPooiro9zK0+)*Qzkۖd.zM`9枟`xu4 c?(E;dRo̷9k*SpM;YO .v{9 yy4DU9r-v9/0brOn17F?gH-[ZRSMOƈA-ܠ]&W_< ؒ*@]㣜 >7h0~*-]w:(ªIһw4Ow:fXsoN+\۔V3ʸ,3 T^3T&S V!6=7>j^Ly\㵭fDT7gs t͓3nSy30:rY^8$BƢZNĀ/v{N5Ə \/>@ è~}[b8} ˵k nٷ>}̞=#,U&U7<]4A;@|;ÞW֜8kGLy$^\:Dz{3rS6Lx}̒u4ˮ\Rɻt8+3>KX$q_pp#Uk3)$u hM?=Fs-]oZLп9z䩡 (lX}N,Ϙ/PèSƬ8rxΛU[]üfbZ gDcUǩ݀YF=rmn2r3>|Opu>1D y咿e1Ĉ3˩FcLN.9Qd&p״V/ ?|{vA6Ű\[81|⏘ɏ7ā_IjLە{ S ㇼ1 r.;n nִbs@F]1rCXI0evg3v5 V1 H<˜\Oq3hk dB8 ~EZLnvzGNWv#M/=[Mw5}_䁕Nyj>|$o`o.NrJx1`7rQS+ୈrXHL3nL)mXXuj?qiR>RC62mEӾ@:kyO (,~1ZsSrn_>O1zc8/3`צ3Nè{~שah7]!,ZN;1{= `[NcUARȝLxQ3aE4Hݞric|cRs䘨3y윏1^Fp @Ǚ]M‹xKL:7!6R.K|<p8txȲhS!OdӀ5LHs,b@%xa"R4zA`mu#b6e|fϏbbk6G8w6.2zPþW/FSaЂvrm$y;R;8bkV l:اL^THo`9l/\Ew^rx+ 53D~)).ɺ¢c({ezIӅ}{ҀFb'<-seHc:_n7=sc}_Ii\SWA{ LpsoMmWG6 Z ;hr5^˘{)Pt5w)/\qSQx}Őb=4kE'&tZ1ϕoo5\^ f}?}~⳪}yi'p\DG eԖ\VNˌϝ,g#qώNxȁ)pUo}'l788y9ìu_AR}Hh:~˭J6LJJ|߹W:3ipfnӣz6)1%@ovJsLl7wCWS?݀ϩkJ.z8O8–c$%w8z`G`oBS.K+Sp /^RDYlÞO%xθ64X2,nxr撊YW9~ B}l@|bյDhIe\{zɽR2{Li#w; .9#7Kހr%{!^{U8O^WS2L<2g{c_@刺I+;v)x^*ީ'8/n-:ޘ8Lѧp{;jCH1KTP$vNj#< fݟIܑC%cHjXs_6Fq \p >LWa N㸏{}r1sAK׵M]vbM$R9`ǩpG%!.mxEof~1jY>s6iM_pMbQ" s}JI?\;ڶ2حиLz_9!:'ymo4ȥx&Zca4 Q xfwF%/fE>s6Mhs\w]/@(#M9J4kp&4<3龻w皥ofΚ흋?q?Pj}#'oc670鸺ʵ P[ύ#ing #+ҾC'PĽ%nOpNe<.5_1:Թ8:9/Fl y$HO.~1j| ܜٰ7V @L/,;`KLD(KV^_G)ۃy^! z\{Ďy9 P:y5*G}J ˜vU>+v[6&/{KGT0*L)5mٴw>= 8syjPkǬ5Ω?>mny[k7]iW#'mq/&!02L u٦oBa<hz1)$WF3|ʭnNujjLVKQݿĽ?sż7YϾ|'k} #|cSr$keDX& ڧH2]s4-s>z 8dB\fXk?3 ӟ)10,:8LN$:#W|3nRI`a5}hhCN`\ zn̸ey]& ȷ_}#-e);csYrd:Oَ[= TJ\Pi=7ڦC&2.Fww[^ k+68kH1̒jszNf\&nr)<$T~N.!|i7S8ϵlkraQ'/|QLxŽd괗<֭W 7,0xKRp䳌cta˲ @flJPK԰{ť${s7͵R,&冽w|wg֋(^1FLgϑeTb"0fYؙx;W^èk{9a=05ԛP=NjVn}VpWn,~ f0;FvV1AfqvWy [Q~$sV!]s YnVWx*Gm6.>Nv3GC&}z^OZvYFo\o <}_]3(vA/M@"p?9Za}]s]UtY'> 6:qs3k|Qx}}O|/򚒻pG ;EHJw_u>2 ־ܒ t"a+UFjc=&cԭtxd6|zuEeԵt~%)(Wp;kL8wZkw|){r7 k}&ծdDS:Z38P>VyP>uYo`r˶#{%M|bpʮyL*J^\j>w#N羷i\Cʕ(|Qi,Y%Y<ڃ-}fG=&O}H쀽XHK 5m8C֎#)4p 3bĹNSbYyuXv>w%m)aw9wX^7qHm0 0dcw7r7Ó{^q^T/i\<[=Y;G=z (Cs_eۑQ 7xx>+sWa(ky駘U(a=Yˆ5$W= DrQFs 8~ }s؀ePanm:(l2UnM7Z8f_k-J&;R}::'O:$~zY2YRy \#,9ʊ!ڏl.Ih `:oQUmbRP޿ŲaS\@\]9v]QLŊR {Vx+}YpANy$tm:/SO<7gbf˗VEN/oVLɒSF\0%rv=Dg喵30@F_/]jX Kw?,H[ոj\_e/ eFٔS:=T:=뇹ڗp;7M bqjc] ]}R1Cqm-~bٰ% |Z˨".9HX<7KLONF5 ;9^o#J1m(Q(]JNS:_#nqJ뉩?eGAy4L)r|cc!g 0R3bAzmMKf׽Y| t1zX}k:MrAʴLG0! ~p~wX;{t<CŚf]mYƹZaoWz(UcMylpovaa+|[cH`ʰ a}8# Yl} Gxe%˪XHOl]m-sqNmzrac8R;p IsLpSovu|R^S". jk9YU R\.mFl=9hнuƬ:c^XϓS̹)*\}sRlZOvrrqe7u.kd nz`cN0k\@:QV̢٠\䗿GUlr~KނXҙT,?Apd~W ^筈~os3Kt~/8L彁x #n_RB};dJ/2yU;.u`p36k#@e<6ov2M6`%q;sk#8arx\O&|Oٵ׌ZNj|Gs/Ҧ1Mw? }m8_~sJ_fI6K a Frcy +O#_g<؝. Νrm-{o'xuLƀ.%0_ h kc`"{)zZ1oa ,f4+uo;m 4s^-(j;8o~ #_uǹg&y'A]*j(UlY'( <>~}m\I >O0hs{ǵ;܇ W7 hNy&om/Gy7qm5?)v[g *_UKn9y喴+ҫ?g 1azN $rc-i `iϪN)ǫ~}pG;iª+ +:@s@Ox[aLO /6j>cPqISTgZp;s=3/='m_?۶gibiC^Pc6xnK+>Jm +Ǩq wv~[sw[A \|-wkre}pwW)6K{PܝWHpCI3^opM~sy>o-uü;'aD|{;qo0/{ʱic0L/Č_K-nкLbij'{99ۛL9R͌F龎u83{I^1H߭s"YuY*mF_+_zgZM'5_{Re6VI0?w)%unqO{)ޯR~4ϲwE("M% Uޚc7gFTb]De hqiY|4q?/>,|;hr[ Y pSfؚy!hcf)Ϗv/w~}qgx?n|4@LmZG3↵Κ/Ē>{Wa Γ2G;f 3nˆDR5W9Ju4ɻYcFMSy=6Yop hYuH Ӓkg.c-_p~f>'cHM9Yv*EgU/ywn_&x-Ch?f٠y_i2u.y׎g Fezz'ֲ-]y#79pL rTwя]fb}\߃ˈ~8q=tgP2SH=S۞rl˻O:oiR2F}J&]샎>ᑋq̭+ǖ *y8RnCNͬI頕S2rԳu[}ʨY.yjI_2o˴#Ep&]A=g^=?Ic 3`>dbqbLB.5lp ^ Wwƨ 4;L>g5 %&,i xp-5y{L1A2XvUJ@U~r_ r9[}2/?rRNUH{)+1LRԍ w͂k?Q@uʩ͜?z`Z%Ҋ9R㖭jӘi_Ju?2u1Kc0sQ]\v[2VXJ mX2duQ+3y$H @]x<F[%+nts\H۳T} w= =}g .` 4 ءS#'1sr-MobQϐ/-9V2ιuwbN=rXfy -1h[ЬS8SYܴO>lVy/Wͦ?e@vs.701as~:;}/UK{I۵t#W(]<6G%Zy[guq6ⲱ9+<,',cFrM?zϸ~Mz ~΃+}[6kQ61s}bVǯu˖{kɘiuלvaIP|ŒmK,g2wA9ոk[`&~@$W\}a%Ҕܵ$²ᛘmjĝ`~DXl]M>'#eW{X5G*YQ4]%t1ft@V1*0jgMڗa^c(\Q~4[_9怴;ھ C*% vx.av}nw'Gs<lpLkj̟kZYs _VL?kໜ ^׽}s,E*d~H+ԲN8p@Sn@z ]k& ˆ}M}g`r|?֙LZS묷mJQ61޸g{AU~ҾdôoT;@6ω5Q/}||K Wޠ3 ~?iL7,SH2-ۄA:lzjo?jW'O66aV~T.aQmٷXtK}u,@Ԗr lVש{kXRWc=t˵lw3Lrg1P sk89˴7r_3 3qJx%0_@ $SeS:m;G夢}yrwl{}X377a؍{vmF@Q{p:uR-#[ʝ:96;e90ZfyÒJ*/%YzTr7h sȞho$}Ox#SzIIdi0x>^;~pW3ϓs+ F/;e+SOfzZRo;b9ޭPؾ1 }oGƦ"pKTm3ewzewnᝓ`WXXW +K#yyf52%Z >3)ٳ]f|Ti?y45 9ZGFPǞ[M]~&N 2k90seMy0wrVOPm m\5wE${0mCs<`dÈûwq5ē9Nj(ݹop[lR*Dϩس7d@.:§AJy:b^ \q '_8 /_|,Ɇuz}3ò{{>9|g=F^y뎮cebGSu~bi'5neXniߧ-odC0-qT,yU~mV`}¹ BO1<Pn5?ئyҏޓCm/O dٖqNV3S-ەݓq"e? 3-b!?Þl{0Ŗ5j22W"]u[4ZL ?eƭ 5B~^i.u39@r0Xba:d{,1mkp.qZ5rN`$Jw&/}`TZN|IENDB`sqlitebrowser-3.12.1/installer/macos/build_sqlitebrowser_nightly.sh000077500000000000000000000270471374246124700260070ustar00rootroot00000000000000#!/bin/bash # Builds and uploads DB Browser for SQLite nightlies, # after updating the Homebrew dependencies QTVER="5.12.8" BRANCH="master" BREW="/usr/local/bin/brew" BUILD_TYPE="release" DATE=`date "+%Y%m%d"` LOG="$HOME/db4s_nightlies/nightly-$DATE.log" LRELEASE="$HOME/Qt/${QTVER}/${QTVER}/clang_64/bin/lrelease" LUPDATE="$HOME/Qt/${QTVER}/${QTVER}/clang_64/bin/lupdate" MACDEPLOYQT="$HOME/Qt/${QTVER}/${QTVER}/clang_64/bin/macdeployqt" PATH="$PATH:/usr/local/bin:/usr/sbin" QMAKE="$HOME/Qt/${QTVER}/${QTVER}/clang_64/bin/qmake" # Add the sensitive values we don't want to store in this script file source ~/.db4s_secure # Update the branch to build, if specified on the command line with "-b [branch name]" if [ "$1" = "-b" ]; then if [ ! -z "$2" ]; then BRANCH="$2" echo "New branch = ${BRANCH}" >>$LOG 2>&1 else # Warn on missing branch name override echo "Missing branch name after the '-b'" exit 1 fi fi # Determine if a Release or Debug build is to be built if [ "$3" = "-t" ]; then if [ ! -z "$4" ]; then BUILD_TYPE="$4" echo "Build type = ${BUILD_TYPE}" >>$LOG 2>&1 else # Warn on missing build type override echo "Missing build type after the '-t'" exit 2 fi fi # Verify the build type is valid if [ "${BUILD_TYPE}" != "debug" -a "${BUILD_TYPE}" != "release" ]; then echo "Unknown build type" exit 3 fi # Ensure Homebrew is owned by my user echo Ensure Homebrew is owned by my user >>$LOG 2>&1 sudo chown -Rh jc:staff /usr/local >>$LOG 2>&1 # Update Homebrew echo Update Homebrew >>$LOG 2>&1 $BREW update >>$LOG 2>&1 ### Build standard version # Remove any existing Homebrew installed packages echo Remove any existing Homebrew installed packages >>$LOG 2>&1 $BREW remove `$BREW list` --force >>$LOG 2>&1 # Install SQLite3 # Note - `brew tap sqlitebrowser/homebrew-sqlite3` needs to have been run at least once (manually) first echo Install SQLite3 >>$LOG 2>&1 $BREW install sqlitefts5 >>$LOG 2>&1 # Update the sqlitebrowser source echo Update the sqlitebrowser source >>$LOG 2>&1 cd $HOME/git_repos/sqlitebrowser >>$LOG 2>&1 git reset --hard HEAD >>$LOG 2>&1 git clean -dffx >>$LOG 2>&1 git pull >>$LOG 2>&1 git checkout $BRANCH >>$LOG 2>&1 git reset --hard HEAD >>$LOG 2>&1 git clean -dffx >>$LOG 2>&1 git pull >>$LOG 2>&1 # Update the translation files echo Updating the translations >>$LOG 2>&1 $LUPDATE src/src.pro >>$LOG 2>&1 $LRELEASE src/src.pro >>$LOG 2>&1 # Build and package standard sqlitebrowser nightly echo Build and package standard sqlitebrowser nightly >>$LOG 2>&1 if [ "${BUILD_TYPE}" = "debug" ]; then $QMAKE sqlitebrowser.pro -r -spec macx-clang CONFIG+=debug CONFIG+=x86_64 >>$LOG 2>&1 else $QMAKE sqlitebrowser.pro -r -spec macx-clang CONFIG+=x86_64 >>$LOG 2>&1 fi make -j3 >>$LOG 2>&1 make -j3 >>$LOG 2>&1 # Seems to need a 2nd time now, due to language files needing initialisation or something # Include the depencencies in the .app bundle $MACDEPLOYQT src/DB\ Browser\ for\ SQLite.app -verbose=2 >>$LOG 2>&1 # Add the extensions to the .dmg echo Add the extensions to the .dmg >>$LOG 2>&1 mkdir src/DB\ Browser\ for\ SQLite.app/Contents/Extensions >>$LOG 2>&1 gcc -I/usr/local/opt/sqlitefts5/include -L/usr/local/opt/sqlitefts5/lib -fno-common -dynamiclib src/extensions/extension-formats.c -o src/DB\ Browser\ for\ SQLite.app/Contents/Extensions/formats.dylib >>$LOG 2>&1 gcc -I/usr/local/opt/sqlitefts5/include -L/usr/local/opt/sqlitefts5/lib -fno-common -dynamiclib src/extensions/extension-functions.c -o src/DB\ Browser\ for\ SQLite.app/Contents/Extensions/math.dylib >>$LOG 2>&1 # fileio.c extension curl -L -o src/extensions/fileio.c 'https://sqlite.org/src/raw?filename=ext/misc/fileio.c&ci=trunk' >>$LOG 2>&1 curl -L -o src/extensions/test_windirent.c 'https://sqlite.org/src/raw?filename=src/test_windirent.c&ci=trunk' >>$LOG 2>&1 curl -L -o src/extensions/test_windirent.h 'https://sqlite.org/src/raw?filename=src/test_windirent.h&ci=trunk' >>$LOG 2>&1 gcc -I/usr/local/opt/sqlitefts5/include -L/usr/local/opt/sqlitefts5/lib -fno-common -dynamiclib src/extensions/fileio.c src/extensions/test_windirent.c -o src/DB\ Browser\ for\ SQLite.app/Contents/Extensions/fileio.dylib >>$LOG 2>&1 # Copy the license files to the .dmg echo Copying the license files to the .dmg >>$LOG 2>&1 cp LICENSE LICENSE-PLUGINS src/DB\ Browser\ for\ SQLite.app/Contents/Resources/ >>$LOG 2>&1 # Copy the translation files to the .dmg mkdir -p src/DB\ Browser\ for\ SQLite.app/Contents/translations >>$LOG 2>&1 for i in ar zh_CN zh_TW cs en fr de it ko pl pt ru es uk; do cp -v $HOME/Qt/${QTVER}/${QTVER}/clang_64/translations/qt_${i}.qm src/DB\ Browser\ for\ SQLite.app/Contents/translations/ >>$LOG 2>&1 cp -v $HOME/Qt/${QTVER}/${QTVER}/clang_64/translations/qtbase_${i}.qm src/DB\ Browser\ for\ SQLite.app/Contents/translations/ >>$LOG 2>&1 cp -v $HOME/Qt/${QTVER}/${QTVER}/clang_64/translations/qtmultimedia_${i}.qm src/DB\ Browser\ for\ SQLite.app/Contents/translations/ >>$LOG 2>&1 cp -v $HOME/Qt/${QTVER}/${QTVER}/clang_64/translations/qtquick1_${i}.qm src/DB\ Browser\ for\ SQLite.app/Contents/translations/ >>$LOG 2>&1 cp -v $HOME/Qt/${QTVER}/${QTVER}/clang_64/translations/qtscript_${i}.qm src/DB\ Browser\ for\ SQLite.app/Contents/translations/ >>$LOG 2>&1 cp -v $HOME/Qt/${QTVER}/${QTVER}/clang_64/translations/qtxmlpatterns_${i}.qm src/DB\ Browser\ for\ SQLite.app/Contents/translations/ >>$LOG 2>&1 done # Unlock the local security keychain, so signing can be done security unlock-keychain -p "${KEYCHAIN_PASSWORD}" "${HOME}/Library/Keychains/login.keychain" # Sign the .app codesign --sign "${DEV_ID}" --verbose --deep --keychain "/Library/Keychains/System.keychain" src/DB\ Browser\ for\ SQLite.app >>$LOG 2>&1 # Make a .dmg file from the .app mv src/DB\ Browser\ for\ SQLite.app $HOME/appdmg/ >>$LOG 2>&1 cd $HOME/appdmg >>$LOG 2>&1 appdmg --quiet nightly.json DB\ Browser\ for\ SQLite_${DATE}.dmg >>$LOG 2>&1 codesign --sign "${DEV_ID}" --verbose --deep --keychain "/Library/Keychains/System.keychain" DB\ Browser\ for\ SQLite_${DATE}.dmg >>$LOG 2>&1 mv DB\ Browser\ for\ SQLite_${DATE}.dmg $HOME/db4s_nightlies/ >>$LOG 2>&1 rm -rf $HOME/appdmg/DB\ Browser\ for\ SQLite.app >>$LOG 2>&1 ### Build SQLCipher version # Remove any existing Homebrew installed packages echo Remove any existing Homebrew installed packages >>$LOG 2>&1 $BREW remove `$BREW list` --force >>$LOG 2>&1 # Install SQLCipher echo Install SQLCipher >>$LOG 2>&1 $BREW install sqlcipherdb4s >>$LOG 2>&1 # Clean the sqlitebrowser source echo Clean the sqlitebrowser source >>$LOG 2>&1 cd $HOME/git_repos/sqlitebrowser >>$LOG 2>&1 git reset --hard HEAD >>$LOG 2>&1 git clean -dffx >>$LOG 2>&1 git checkout $BRANCH >>$LOG 2>&1 git reset --hard HEAD >>$LOG 2>&1 git clean -dffx >>$LOG 2>&1 # Update the translation files echo Updating the translations >>$LOG 2>&1 $LUPDATE src/src.pro >>$LOG 2>&1 $LRELEASE src/src.pro >>$LOG 2>&1 # Build and package sqlitebrowser with SQLCipher support echo Build and package sqlitebrowser with SQLCipher support >>$LOG 2>&1 if [ "${BUILD_TYPE}" = "debug" ]; then $QMAKE sqlitebrowser.pro -r -spec macx-clang CONFIG+=debug CONFIG+=x86_64 CONFIG+=sqlcipher >>$LOG 2>&1 else $QMAKE sqlitebrowser.pro -r -spec macx-clang CONFIG+=x86_64 CONFIG+=sqlcipher >>$LOG 2>&1 fi make -j3 >>$LOG 2>&1 make -j3 >>$LOG 2>&1 # Seems to need a 2nd time now, due to language files needing initialisation or something # Include the depencencies in the .app bundle $MACDEPLOYQT src/DB\ Browser\ for\ SQLite.app -verbose=2 >>$LOG 2>&1 # Add the extensions to the .dmg echo Add the extensions to the .dmg >>$LOG 2>&1 mkdir src/DB\ Browser\ for\ SQLite.app/Contents/Extensions >>$LOG 2>&1 gcc -I/usr/local/opt/sqlcipherdb4s/include -L/usr/local/opt/sqlcipherdb4s/lib -fno-common -dynamiclib src/extensions/extension-formats.c -o src/DB\ Browser\ for\ SQLite.app/Contents/Extensions/formats.dylib >>$LOG 2>&1 gcc -I/usr/local/opt/sqlcipherdb4s/include -L/usr/local/opt/sqlcipherdb4s/lib -fno-common -dynamiclib src/extensions/extension-functions.c -o src/DB\ Browser\ for\ SQLite.app/Contents/Extensions/math.dylib >>$LOG 2>&1 # fileio.c extension curl -L -o src/extensions/fileio.c 'https://sqlite.org/src/raw?filename=ext/misc/fileio.c&ci=trunk' >>$LOG 2>&1 curl -L -o src/extensions/test_windirent.c 'https://sqlite.org/src/raw?filename=src/test_windirent.c&ci=trunk' >>$LOG 2>&1 curl -L -o src/extensions/test_windirent.h 'https://sqlite.org/src/raw?filename=src/test_windirent.h&ci=trunk' >>$LOG 2>&1 gcc -I/usr/local/opt/sqlcipherdb4s/include -L/usr/local/opt/sqlcipherdb4s/lib -fno-common -dynamiclib src/extensions/fileio.c src/extensions/test_windirent.c -o src/DB\ Browser\ for\ SQLite.app/Contents/Extensions/fileio.dylib >>$LOG 2>&1 # Copy the license files to the .dmg echo Copying the license files to the .dmg >>$LOG 2>&1 cp LICENSE LICENSE-PLUGINS src/DB\ Browser\ for\ SQLite.app/Contents/Resources/ >>$LOG 2>&1 # Copy the translation files to the .dmg mkdir -p src/DB\ Browser\ for\ SQLite.app/Contents/translations >>$LOG 2>&1 for i in ar zh_CN zh_TW cs en fr de it ko pl pt ru es uk; do cp -v $HOME/Qt/${QTVER}/${QTVER}/clang_64/translations/qt_${i}.qm src/DB\ Browser\ for\ SQLite.app/Contents/translations/ >>$LOG 2>&1 cp -v $HOME/Qt/${QTVER}/${QTVER}/clang_64/translations/qtbase_${i}.qm src/DB\ Browser\ for\ SQLite.app/Contents/translations/ >>$LOG 2>&1 cp -v $HOME/Qt/${QTVER}/${QTVER}/clang_64/translations/qtmultimedia_${i}.qm src/DB\ Browser\ for\ SQLite.app/Contents/translations/ >>$LOG 2>&1 cp -v $HOME/Qt/${QTVER}/${QTVER}/clang_64/translations/qtquick1_${i}.qm src/DB\ Browser\ for\ SQLite.app/Contents/translations/ >>$LOG 2>&1 cp -v $HOME/Qt/${QTVER}/${QTVER}/clang_64/translations/qtscript_${i}.qm src/DB\ Browser\ for\ SQLite.app/Contents/translations/ >>$LOG 2>&1 cp -v $HOME/Qt/${QTVER}/${QTVER}/clang_64/translations/qtxmlpatterns_${i}.qm src/DB\ Browser\ for\ SQLite.app/Contents/translations/ >>$LOG 2>&1 done # Unlock the local security keychain, so signing can be done security unlock-keychain -p "${KEYCHAIN_PASSWORD}" "${HOME}/Library/Keychains/login.keychain" # Sign the .app codesign --sign "${DEV_ID}" --verbose --deep --keychain "/Library/Keychains/System.keychain" src/DB\ Browser\ for\ SQLite.app >>$LOG 2>&1 # Make a .dmg file from the .app mv src/DB\ Browser\ for\ SQLite.app $HOME/appdmg/ >>$LOG 2>&1 cd $HOME/appdmg >>$LOG 2>&1 appdmg --quiet nightly.json DB\ Browser\ for\ SQLite-sqlcipher_${DATE}.dmg >>$LOG 2>&1 codesign --sign "${DEV_ID}" --verbose --deep --keychain "/Library/Keychains/System.keychain" DB\ Browser\ for\ SQLite-sqlcipher_${DATE}.dmg >>$LOG 2>&1 mv DB\ Browser\ for\ SQLite-sqlcipher_${DATE}.dmg $HOME/db4s_nightlies/ >>$LOG 2>&1 rm -rf $HOME/appdmg/DB\ Browser\ for\ SQLite.app >>$LOG 2>&1 # If building a non-master branch, remove it now that we're finished if [ "${BRANCH}" != "master" ]; then echo "Removing non-master branch, now we're finihed" >>$LOG 2>&1 cd $HOME/git_repos/sqlitebrowser >>$LOG 2>&1 git reset --hard HEAD >>$LOG 2>&1 git clean -dffx >>$LOG 2>&1 git checkout master >>$LOG 2>&1 git branch -D "${BRANCH}" >>$LOG 2>&1 fi # Upload nightly builds and the build log thus far echo Upload nightly builds >>$LOG 2>&1 rsync -aP $HOME/db4s_nightlies/DB\ Browser\ for\ SQLite*${DATE}.dmg ${LOG} ${UPLOAD_SERVER}:/nightlies/osx/ >>$LOG 2>&1 ssh -q ${UPLOAD_SERVER} "cd /nightlies/latest; rm -f *dmg" >>$LOG 2>&1 ssh -q ${UPLOAD_SERVER} "cd /nightlies/latest; cp /nightlies/osx/DB\ Browser\ for\ SQLite_${DATE}.dmg /nightlies/latest/DB.Browser.for.SQLite.dmg" >>$LOG 2>&1 ssh -q ${UPLOAD_SERVER} "cd /nightlies/latest; cp /nightlies/osx/DB\ Browser\ for\ SQLite-sqlcipher_${DATE}.dmg /nightlies/latest/DB.Browser.for.SQLite-sqlcipher.dmg" >>$LOG 2>&1 echo Done! >>$LOG 2>&1 sqlitebrowser-3.12.1/installer/macos/export_icons_set.sh000077500000000000000000000007561374246124700235520ustar00rootroot00000000000000#!/usr/bin/env sh # This script depends on Inkscape being installed logo='../../images/logo.svg' iconset='macapp.iconset' mkdir "$iconset" for size in '16' '32' '128' '256' '512'; do retina_size=$(($size * 2)) inkscape "$logo" --without-gui --export-width "$size" --export-file="$iconset/icon_${size}x${size}.png" inkscape "$logo" --without-gui --export-width "$retina_size" --export-file="$iconset/icon_${size}x${size}@2x.png" done iconutil --convert icns "$iconset" rm -r "$iconset" sqlitebrowser-3.12.1/installer/macos/macapp.icns000066400000000000000000006551701374246124700217510ustar00rootroot00000000000000icnsZxic12 PNG  IHDR@@iqsRGBDeXIfMM*i@@FQB IDATxݛ[lUYW {K~ɀ 1# RԄx L>`h4Lȃp!a1yѠqTE(ז;Pq}NOK/u[k}ks*KSSS0oI^x1bŕ KS7=zn?zmGR*UVV# _/ IJy껶wPP}pMĜQg-o +ޟuJY>-3Gɛ$>LQ:{l?)(ř-[0\NG/_=;wppC}Γ~P $-2HyՅś,,m6KGsv{3Ψ9 8\$7 ?c7b 8ӧO"Rjccc5_=1 D'q\dHO =kTEl2䎀 pπv 0+<"(d/A8Y1lzv1<렟#KŚDWIAhD|Q·:2 Q I:fi0>Yf`QnAtAIˋE pC@ (B>ibKK3?!8yw۸@qwj7G̔( (K>1d藺eql}yzi Y<~A9?uRw r5r% k]j>9/1E? f3˝Y+w)o(E6ݪ{noS-goXשSzJbfg-."`\Ғ+f D IMV(ƕ:6sNǀbNcEYaҥKÉ'_-#"@+i;:i.51NCV98h\)_N[-M1xzPJ/,'Cb qR0Jxx\qĸdo?z3.]J@"E| :WHC|mիW #ʭ?UrĒJ,2R_!f0ېsIb20G~}"6E|~"3gTOkNa4P f8\׉?|2yc*YO:BXį{={};_PǪcSBd1`O `@c ȷBJ r(ƅ g{ $`ӷDc133MY F}s^B@<8;m1,{$ҩː?82Z >‘_QBcyv "ηj_FuI*<Wp6M҈IpەY"WN)vѫ5ܬ JM@LBgLl?c,ɭo޻w)o?Eo ( BYq$1w8,d(xȑ:e*tc"B \KrmGEGAIENDB`ic07.PNG  IHDR>asRGBDeXIfMM*iHwIDATx{WUvDDt0V0#4QAhS?ZM;tLiKOhCR+8>&Iv@"WP ]{os{{Yɾkk}&IEZo喡G=hРQ_62>0~<<';\>CෲW_6{С\r};-\p)2q L͍77ZE_Xûm7ֿ~g/go[j/8餓faҺnhJ~ǎZ6Gd|d!C68Rxh lef{ e *,s#3\Obf9uvZr''SO=51 :O|H_~eb=~%ֿ?O/>, :t(M ˗ c940j(YGS XM؀Ϸ0ǚ\P؈#3<ӝqÓO?=6lXB5!@9|p8>䓔Oۗ|e[ o}+[A#{ ^{y7[CCuEs9ɹ瞛5*9rdrgJWұ{M>ڵ+裏Rp >kE4Xh։[[6cםI'9c&ƍK~Yl7||{Ɏ;RK7jV?ZWZv^޲iMM7tcKLwy D2f̘䢋.J&M*y)6۷oOnݚdmVFئ%Ht`3~)/ÿfP|ĉɴiӒɓ'IS^DæёQ`eO̊eˢ׷V7pt{[zV~L_L:5ݠeK,›oAO)a}r_"RO͟ڌuf}1lW\"WyK_=Y~}4z0-/\/`΋6/bg̘̙3'}Di lذ!yWNxԴ}Qϋ\7|X/f}Z|͑{5k$֭KX*ʑQbJ";a]\L!t,@Bh-DM @jGki(U_dʢ(;#2X {``A` Np+H@w9-ekgfvHa s t,/bG S{+K~U{ԧz>m7|{AIWq8PI1C,)_,ͧ?mf3'Rv=BR(XYܛUoU1 D`J<B}- wf;mu4V56(Ocu(+ԇeW} 9VK7n\e_*˨YYtW! '|9V2 ]X.j ♹Y$N}T,W* /w.xe;!+-\EKw+~WC.o DeH eL^!y|ť?'H;"+-+7 _6Vv눈K!'\e Η~ddaeC_A*9Y¼WGٞP@q pu^*/E+a)^',3&LH&M.1ps[(<|̫W)?snwХP] b<^Ggfs7gz 7y) @#ɣϔ |*F}l&hrCN_Ґ Y.kٍw^7GQP Q fvnF tma |RQ+L f+Jg#Fhfٯ2U\( %R^Zwq"t`,;3d(g3)э'zGu @&p0tlN\zO_mIh0d}٤ q<WD "TTrh>@|ǞA8&LHE,`PC ć< #N@n8#NJOzoE|9q}2]WB 3;Leb@C|%`Mc[Q;R8*"  hfe1CXXs"')Y (qhYa0\ aO1X:cm OCBF~z܆gvJ ~ LF4h&Gg$0 @`Yp,:1kL"6c8ll#1M(\7(6< 00,@ΙZ}'y!#)Icb1y #*4"@.@s-yp p~_Gr(>"G$TMmIg,(G'YG(( 8M,Y._7@B/ E3F8Ჳe%j'P  0gaʃP:@9e B–~Pn3B=ی6M< X$\H%‚;Oe҂-CP,169qyz-@ J8L+yO, `8Q}8O*m`g@gQf(Qy!qW;p凫=_aμ`YX'f~)P8zJR_0Wi_q^n_h?]@w:L cNߪPqCMЛ(,_@@A`I d(l]a4CqY~+^ca͗V! |nrX(nVPXx@X³H Vv}"3VA0%=±P#.$!\ Xp~/T."2'Ūpȇc~xq >込R۾v{X3"0_L>ޗ%Ďxw{) 3?S\zgWzjASsQ򨾁9,3ݍcy`ɒ%^k>HjXa0ҲW<..̙3f Xl?11V2zlW L6-}NQ +$ z_YOgΜ*YRpEYgD`_x@Asy˲Rz. |Ż$ɓ'']vYxpxVJyvwo(EY8 n%K")pW=Y @$./|'0CBw4LJ\OրW\s(NΗ<< ϱcǦ?oЙU& 1EP7n'pAWƹɅ ;<`*??~0Fy =N|2@UU`c@ǭaR{k?39PKfyy+rcoy$<BQ$7lDXQ'nY*c) zbe%?u4s@Ff,;NQf?O ,9-*8%C}3@ΌDpB߈bGP[l0Y( L:_igӇb%ڡ^,OB#Dpc) )EKX3{?zY,ɞh *1>Fdc n/iL #tyީ|8\y[@xBN?g,<}NlR!P(;S,/_|1svg=-*·g?l3=̓. 66VaBk@HZEEIg{x~ BAxXIuB`ףZO?}0Vc#((YR2HVexS8&јy4` 0B連MA T4!-f(u(7C![G/ЄI?M,* e߀qLz\  W K3եp+9}a,21qIEeci:$3S뾄#+MgѾeCi/G?GF{%Gكd\#@@"Az_a)G0at:=:TO)Y#(&.VWWW i+Nl/} (lT \$i]{@VWz!w`6|Z?h/׿{(GeoezテL߲;%P銇Wͭ]k{7c;o l8ٝɆ9el̍DA~D(Ms`~~}ؿbq_ec)K1TKbnF66^trMK.ɕOlݺu-!mO12knXxGe!:~E䵲G,?-am7% .~ ~4S03#?\83: (U~i"*czXY簕=d7/[JB5]IENDB`ic13BXPNG  IHDR\rfsRGBDeXIfMM*igI@IDATx{^Uy_r B=@APZERR,Pv)vZ:N(5U[Wb*"+KuUPB \s'$! 0';={۳ow?{} @p`q`w~{>J^|yz /iƵAF̿åOpokyg/{g.] q `cvg}4i<ӄl =s5mq1{ŏ>0 V6>;~/OO{ 728]ta?OϷjP3( 6;lj; kGk?̿ iMYi@z` &؄=&V .0J']ecV_aⵯ}+ ӐwyO xM>}m+$g+&7p_.~K HpiLKEp9ޚx'Ne_WfSLY`jcf_ev``~!]ǴܴIrMӞl|__)k \~_LEf&"uFX:A_a{Rb\xEǧCSclƯwd A;éǎ{vyQ3]1`;hk?1EX=iӦu:̏+!Ev@`4 @ (O=Tf~wΐxm65gy杓qRʹwsm~&[| z;-.Ǐ` AO>ٲeKg۶m\L^P{OXQ7 |i_k`>}mҜk儾oF;J艟+wߘٰ`֭l޼9smkw38س-6З`\`n_n!Q&GqDg;-|Oz%5̀s;; @@meL ޞC}G̙93 op@  úu:7n}V;fssE70Qŋn }Z;mܹ#<2?'akv֬YӱClh1m ZoF_hQ<ʭ ,˞TյVJ؅Cm%Ʉ*s9doUd+:rKט 5kk^\h=܃m~oN6H\__xۮ"}s/$|]*C"wyg+ 3Z~^um]٠ L}ݝ[oBCvTO{O/{^G,OJU\|ŕ>gv}O6+3z%K\b[#x K.>ٍ6҃S\vKv]C~ \ٍ[zcl?m~#mRe֘HLuM￿7 {|~]A~)kr'l/.CN䛒C\pACr. ë.ʗR6xT gI=Hpp 8Ѕ4Wؓ}o pQ탙4 !/kaf?>=_$c!<mQ>I-ǧ7˾Cø&8h;pk;xh nɵ5??:^Px,cqpV$k.-76̜9|AoҖ$@|}Mhq6d09Ɣ{BPi@ Mgeni[S(lj!ҌnJ&8hZfgۏ |["=809`-@&QYeOh$&8h1X&sv!/~6؛H؋_wn)#Lp 8М|mL놦 T-%sVfI,Ps2.~JEnӦM+h_D/C a9^hݞx6ɧ̀^ &8brf]nrXV@#@*3%T aj`Ϗ [âyԾ BP<,y 78t̃>u+ލx,3[b9Lp 8PdnȺKoEnհa9>~Æ e)kxQdg;"_*x:Pĥj@&*7h;Jz 6,;YHƍ ֭[WI{>2.ܙ1cFg֭N7p8m`y# `!_x _^s#\F,jMrN֮]}.mDl (&xV:XLmV3xt^Gs  h{as=s_wTSur:5`4 T7D?Hƀ6t{XA|5 \ù _0Q/@t>@@"Y@P1cMp`P@Gjc~TZn {4Zf :cy E⳥m"*{9g_ 4\׀Vr\B%M$K< *areu zKS[FS 1rB%"V~AtΙ3'h X hBlk$r>s/* MV'@|$T#PP|fK\Nn@8<> s}8~Ԩ@iX@.`-gh283í+sE zd_㏷vח?P h0\S0 h`Ae”v @B{07R-FmlcA~j(Vm |[df e5` <53`45Gs$aaVy@]AŢ%H+-3FТ  `xP P[e4C/m`;.646ۘ5T10fSdG9퇡 +=jZ*ϓi h{5 `\CS(1domb_B?/> b ՜e O h0y2)A0(`%p挷:a?mB…@?l*od!|ڿs X&`l`Nkn&@v@^  ģy8/~ o=cd[/ƃLIHP XV{ [V =5Zbedca 0Fc*?I M_++;M.UHt1IUW I*p9 ^qnqiPs-dZYpp&)t@BbC\YxTQ h:dcgrb$xW:$^a' HV@C-vhMZ㢠h)HMr '>Nr}T&q3n:?ha\PϽ" BWJ_a fp'mha1B&"WBӢ@)v*VJ:Qt=\NEΫ L: 2Cщq {Y+--]S&#ůp6jF2Qxp"LF6U$IVz2`!*]2[[XPAuzJ}e@(օ ./'=6\r%v/1EW_/ʛҦ> `o^q.c zDd$>NirE0n}}E/8/MmۧfjJ#aΣ>OxU\np`xsMo/f&6#!$B,/W4JWا׭7-s|[jxx_$AH|r=p4 ^{K?|9~ӊ̯rNiB|Xe ch>3=ͽ~^l >cs*ot~*uWBI0֩,͛}Yiz䃯2|-)a"n]^V\43sg7gLVp"_f:,. e,&&r/ח+ˋ+J'^V Ɂ#8hѢwݹ뮻Jx9s5J s'O6E;d#a $t_%NEeCQhT~X<駟Y-߉yȅP{ }V^@=cwS%MI$).+OWhҲ2Ұ 7WdɒS~O9 eM2hu^-ϵ5S\i\d8cKoW\zd_qE&rsytN=gfϞ93Ma/W j n' Mؕ8$IsHxIU(2 C'xbSNV2Zd09gL-B*u@@6$CE ˌROޯrUF*7@f̘9:sLѤq*2gs4opm 袎}zYN_žUmyS(R:_Fp w޼yNk3e2`LWМk#[PQߋ -@7zaC%eU|Yi%>SXH9 r ,p(^&i>FM2j |p&OiA+.&!-BɃ!^44E+,[~;8luQwj6o޼"Wƍ+J6mZ͆ ePo,gf0JӃDpSVZ4]a*'ܩG9;m;L{`mݺqUlˀE[:mۖY"0=06 ˫Hp/7ͫM">citp#U^+n^4>Wܙ;wn| mm),I3@d0eiy}^Zč/;Y@$U>/pNj;3sҕClXA@Y~@lXuYvv%h26 {hrag!@3dh߳yGg&'?^P13i<4T*v mGՠj1@yO;L@nۨu% F:% rT3ЬXo '*ApS@l^Xeɠ͔= Чt(^i,b#A7 #s}u֭[S\@79)~0, ө ] ϠAZtr, x\+A{-Ǫ?cK'i30ΊOP=w}Jy" ȨtLFn p*yXqĽpG{0tTJY9 UΣPAC@G hXd9'O0GY]7{ᇳq.aì y ) X@Y 3Z`ACpMV{z,ǺhVwP.d3\T~V 0ubC`[sBŢ-yǶt (@@oGu!AJ&VHx\P 0@CPX5?g\ygMt9CQY5z)wytfvڀ0m` ۡ ;ۇ -dd  k;0/)A]m~/s0u>D= s}?ce+~mH^zq|lF OgFvX'CU c!Ц n~i"hXRبy[~Ae9P^PV񪬬@V?A"{2 Jl0,@IXfxh@@veuS6]% S[sV86{GmaKhlpu~@n[nShG7X@IK 4L%匊i,q[#;*g;Fq ê40ri K`L 2V}Q*u 8X1k"R++$j?+=&> "PDePC[:-8 <*y\@Aw&&KV}9OH#/@ @_V9ᭀ0~ {y)S;5ڣ@@VX˄T.F_\&~K!qʯ&h5A'&".DKP!/7 3N~x#ȥX8J|_Ʃϣ> G}{:e+̹Fqj&_ "*W}FezW~ڋ!_Va[ޯ| r`,@aH(Ǖ`p N%†_B+P@ASԣ8Ww2Dx0Łbak*NVDBN* 7O*[k/#-wW;ZAn,r yn^\m2B)ʁg&(6s2oMFѦ8/Z`b1 Qip`4889`gGۋ?sKg Yl!Zõ*T6b19P[6k]L{LP[x|:YV*^rfK@RTQ|jWi(^trEnp`X0K.^wyJH|FaܼxOP\_v76LT/M*%ȈƧŧEG7@U?80hkmRi# o[ IOHEn<ڢt_G?I}`[7iMI/t)\e$/JP/KqU\y@ț9o4 9%Km5|R--yfOrq:-hbqxўkfK7*j9=4ml*^_+./-ne}ȁ\}_饾sy @K^/lĢ,UE]O.jKā/ײ{*?=k_48o#T }o|\]sWQ}e~m1-u 2ٙeŇ75kt;]a>QWFOx4ɫY#uʟU;+4~@ļiާq/{|56=ivp3}ӦM뮻.cƭQBY]I}UiZBiв'x}v/u5 |_-[:_җ:k׮ѭ%*Pau|Ww˦4>^h10PE]Ċ`T^|Mn<&q6(-'G/:>Ӌ&@`gL]tfgg繓4/۶m;Fn{R+[5^Mi_4~?\Lk/O?=k> PdHϴ#h}*3-x P}4/p~ê4ͷ%OcH;ϞIf.\~}vO }׭[w&QGqL,yGy> \r#̯44pyB\( EGq ͇Ll 6Xxx'Y2&s(j<,P驂ڀKCu|Y1lXx~9/[|ʫPE'|N:vkH7h mu6e0V,Hhxa||*w֯_߬$W@ya4@=xRWD瀃l `E e0hh:Vg;9q3,@,\+ǪU:@[1 G}t:UhhJqu\VVwI *e{́hҾ4M mǜ`~#*50n$1P17$I:M<70> miO&c'^]DvXsB+7a+?;T0.sH]0'|[cz[ Ep[R\\l`&ps6J7 f1 Oi(SV-IQˏG828GD>kk4cP&a,jt=Hfs_CXNmŹYlY-Hn@GdO t $,³Y-@|46]?M_@ F;#^G;rT#VX}c(sEe+wXܭ̊+jFr.Qz@EX'X4@ 3zۃ53"@Egi:#ߣ>mS;PА{:V|4ǍAKI/׮#!V|553,R H'#0~r }ի}|h`@0OR.ࠤEuG@V 0^A3+u6@]ѪRRk@ 2X-m=GiW;T!&>vm |PUaP30 y/(/?ȹ,B6 1?+u^_,bKwAz@w(Mii&5-yCXtO4*Η1J~ڨqybf[Fl[+=at[ ziTWoڂ4"`KG/ܞQeI@~`B}dʆHdWr%܄Q?+xns4]45Ӱ-|R.*ܶڬ&ա>U\חY+z-~́~I A~꥜4.ޯv+p@@ c!aƯ\ѧF]$ʧtǨn4LZ>NtN>05&AoE1!- V v&Kh$ժZUQl_)8Pā"D|p` p A &FC@mm{ϔjt95SÕ`rE&7%K7IM N*Q/Oq)>u}}~LѶ/pw7*29ۚT$J^?嗫4 ʼnNOḰg Vִwq6I> a*4+4_y*o}pjZGcŋ_eεM+ []?u8}㽔P}w͹FT념<߭s;E鵎-oyۃ\` P_6Rr#*.4ަu"-8L͹ >O̞wy[ BeB+#K\ŕ4ThclkfKhh矿>a&hX^^oR~Y^dh}0>r"ԧ^*j h\`o|VHH|IKS( B+(\'=/j/;Li}WƭSmqy _@zW׫'l[.% Enp%ox|3چ~mo{Zkȯ߾P ]aet!*wlٲ`/5lX/i2Ȑ8=]Q8}vg٫mƑ1v3]b2o0&D]x/Ed?IxyqOYsf>2Fdn+z衣̽оDt "3r \"Ip"^~Eˤ>M4«Џ!}f?/O!6[# j =vժUڄE38;P ;þLtlQZ^O?q8cmfuGoI5FխjlwlZk֬a#xM_𯛝+ԤNF"ڢx1.nhFDя~tM\#L49o< OR=7o|¹~ט}ٝ $ݝ?! s:Bc1'_ڠm/SBүXg] WKc {⻶=?Iim Cޤ v$SYW̾ fwyh̔hB;f߀Y{m|~{~3M)3 Il&;9gZ pL7YƤu3{~:?{u=)y $X6a&ɞ֭;&ʫ,t:,~fÌ&P1rIDAT{n:w/GEjx)d&=ʕ+ݱc/Hbtǚ{c#w^*ò/&O[j| űO~r}0k+D(,<ܽZDq>ۤcYܗ_g|yĄ|x ?|u>LKhU=J^|yz /iƵAF̿åOpokyg/{g.] q `cvg}4i<ӄl =s5mq1{ŏ>0 V6>;~/OO{ 728]ta?OϷjP3( 6;lj; kGk?̿ iMYi@z` &؄=&V .0J']ecV_aⵯ}+ ӐwyO xM>}m+$g+&7p_.~K HpiLKEp9ޚx'Ne_WfSLY`jcf_ev``~!]ǴܴIrMӞl|__)k \~_LEf&"uFX:A_a{Rb\xEǧCSclƯwd A;éǎ{vyQ3]1`;hk?1EX=iӦu:̏+!Ev@`4 @ (O=Tf~wΐxm65gy杓qRʹwsm~&[| z;-.Ǐ` AO>ٲeKg۶m\L^P{OXQ7 |i_k`>}mҜk儾oF;J艟+wߘٰ`֭l޼9smkw38س-6З`\`n_n!Q&GqDg;-|Oz%5̀s;; @@meL ޞC}G̙93 op@  úu:7n}V;fssE70Qŋn }Z;mܹ#<2?'akv֬YӱClh1m ZoF_hQ<ʭ ,˞TյVJ؅Cm%Ʉ*s9doUd+:rKט 5kk^\h=܃m~oN6H\__xۮ"}s/$|]*C"wyg+ 3Z~^um]٠ L}ݝ[oBCvTO{O/{^G,OJU\|ŕ>gv}O6+3z%K\b[#x K.>ٍ6҃S\vKv]C~ \ٍ[zcl?m~#mRe֘HLuM￿7 {|~]A~)kr'l/.CN䛒C\pACr. ë.ʗR6xT gI=Hpp 8Ѕ4Wؓ}o pQ탙4 !/kaf?>=_$c!<mQ>I-ǧ7˾Cø&8h;pk;xh nɵ5??:^Px,cqpV$k.-76̜9|AoҖ$@|}Mhq6d09Ɣ{BPi@ Mgeni[S(lj!ҌnJ&8hZfgۏ |["=809`-@&QYeOh$&8h1X&sv!/~6؛H؋_wn)#Lp 8М|mL놦 T-%sVfI,Ps2.~JEnӦM+h_D/C a9^hݞx6ɧ̀^ &8brf]nrXV@#@*3%T aj`Ϗ [âyԾ BP<,y 78t̃>u+ލx,3[b9Lp 8PdnȺKoEnհa9>~Æ e)kxQdg;"_*x:Pĥj@&*7h;Jz 6,;YHƍ ֭[WI{>2.ܙ1cFg֭N7p8m`y# `!_x _^s#\F,jMrN֮]}.mDl (&xV:XLmV3xt^Gs  h{as=s_wTSur:5`4 T7D?Hƀ6t{XA|5 \ù _0Q/@t>@@"Y@P1cMp`P@Gjc~TZn {4Zf :cy E⳥m"*{9g_ 4\׀Vr\B%M$K< *areu zKS[FS 1rB%"V~AtΙ3'h X hBlk$r>s/* MV'@|$T#PP|fK\Nn@8<> s}8~Ԩ@iX@.`-gh283í+sE zd_㏷vח?P h0\S0 h`Ae”v @B{07R-FmlcA~j(Vm |[df e5` <53`45Gs$aaVy@]AŢ%H+-3FТ  `xP P[e4C/m`;.646ۘ5T10fSdG9퇡 +=jZ*ϓi h{5 `\CS(1domb_B?/> b ՜e O h0y2)A0(`%p挷:a?mB…@?l*od!|ڿs X&`l`Nkn&@v@^  ģy8/~ o=cd[/ƃLIHP XV{ [V =5Zbedca 0Fc*?I M_++;M.UHt1IUW I*p9 ^qnqiPs-dZYpp&)t@BbC\YxTQ h:dcgrb$xW:$^a' HV@C-vhMZ㢠h)HMr '>Nr}T&q3n:?ha\PϽ" BWJ_a fp'mha1B&"WBӢ@)v*VJ:Qt=\NEΫ L: 2Cщq {Y+--]S&#ůp6jF2Qxp"LF6U$IVz2`!*]2[[XPAuzJ}e@(օ ./'=6\r%v/1EW_/ʛҦ> `o^q.c zDd$>NirE0n}}E/8/MmۧfjJ#aΣ>OxU\np`xsMo/f&6#!$B,/W4JWا׭7-s|[jxx_$AH|r=p4 ^{K?|9~ӊ̯rNiB|Xe ch>3=ͽ~^l >cs*ot~*uWBI0֩,͛}Yiz䃯2|-)a"n]^V\43sg7gLVp"_f:,. e,&&r/ח+ˋ+J'^V Ɂ#8hѢwݹ뮻Jx9s5J s'O6E;d#a $t_%NEeCQhT~X<駟Y-߉yȅP{ }V^@=cwS%MI$).+OWhҲ2Ұ 7WdɒS~O9 eM2hu^-ϵ5S\i\d8cKoW\zd_qE&rsytN=gfϞ93Ma/W j n' Mؕ8$IsHxIU(2 C'xbSNV2Zd09gL-B*u@@6$CE ˌROޯrUF*7@f̘9:sLѤq*2gs4opm 袎}zYN_žUmyS(R:_Fp w޼yNk3e2`LWМk#[PQߋ -@7zaC%eU|Yi%>SXH9 r ,p(^&i>FM2j |p&OiA+.&!-BɃ!^44E+,[~;8luQwj6o޼"Wƍ+J6mZ͆ ePo,gf0JӃDpSVZ4]a*'ܩG9;m;L{`mݺqUlˀE[:mۖY"0=06 ˫Hp/7ͫM">citp#U^+n^4>Wܙ;wn| mm),I3@d0eiy}^Zč/;Y@$U>/pNj;3sҕClXA@Y~@lXuYvv%h26 {hrag!@3dh߳yGg&'?^P13i<4T*v mGՠj1@yO;L@nۨu% F:% rT3ЬXo '*ApS@l^Xeɠ͔= Чt(^i,b#A7 #s}u֭[S\@79)~0, ө ] ϠAZtr, x\+A{-Ǫ?cK'i30ΊOP=w}Jy" ȨtLFn p*yXqĽpG{0tTJY9 UΣPAC@G hXd9'O0GY]7{ᇳq.aì y ) X@Y 3Z`ACpMV{z,ǺhVwP.d3\T~V 0ubC`[sBŢ-yǶt (@@oGu!AJ&VHx\P 0@CPX5?g\ygMt9CQY5z)wytfvڀ0m` ۡ ;ۇ -dd  k;0/)A]m~/s0u>D= s}?ce+~mH^zq|lF OgFvX'CU c!Ц n~i"hXRبy[~Ae9P^PV񪬬@V?A"{2 Jl0,@IXfxh@@veuS6]% S[sV86{GmaKhlpu~@n[nShG7X@IK 4L%匊i,q[#;*g;Fq ê40ri K`L 2V}Q*u 8X1k"R++$j?+=&> "PDePC[:-8 <*y\@Aw&&KV}9OH#/@ @_V9ᭀ0~ {y)S;5ڣ@@VX˄T.F_\&~K!qʯ&h5A'&".DKP!/7 3N~x#ȥX8J|_Ʃϣ> G}{:e+̹Fqj&_ "*W}FezW~ڋ!_Va[ޯ| r`,@aH(Ǖ`p N%†_B+P@ASԣ8Ww2Dx0Łbak*NVDBN* 7O*[k/#-wW;ZAn,r yn^\m2B)ʁg&(6s2oMFѦ8/Z`b1 Qip`4889`gGۋ?sKg Yl!Zõ*T6b19P[6k]L{LP[x|:YV*^rfK@RTQ|jWi(^trEnp`X0K.^wyJH|FaܼxOP\_v76LT/M*%ȈƧŧEG7@U?80hkmRi# o[ IOHEn<ڢt_G?I}`[7iMI/t)\e$/JP/KqU\y@ț9o4 9%Km5|R--yfOrq:-hbqxўkfK7*j9=4ml*^_+./-ne}ȁ\}_饾sy @K^/lĢ,UE]O.jKā/ײ{*?=k_48o#T }o|\]sWQ}e~m1-u 2ٙeŇ75kt;]a>QWFOx4ɫY#uʟU;+4~@ļiާq/{|56=ivp3}ӦM뮻.cƭQBY]I}UiZBiв'x}v/u5 |_-[:_җ:k׮ѭ%*Pau|Ww˦4>^h10PE]Ċ`T^|Mn<&q6(-'G/:>Ӌ&@`gL]tfgg繓4/۶m;Fn{R+[5^Mi_4~?\Lk/O?=k> PdHϴ#h}*3-x P}4/p~ê4ͷ%OcH;ϞIf.\~}vO }׭[w&QGqL,yGy> \r#̯44pyB\( EGq ͇Ll 6Xxx'Y2&s(j<,P驂ڀKCu|Y1lXx~9/[|ʫPE'|N:vkH7h mu6e0V,Hhxa||*w֯_߬$W@ya4@=xRWD瀃l `E e0hh:Vg;9q3,@,\+ǪU:@[1 G}t:UhhJqu\VVwI *e{́hҾ4M mǜ`~#*50n$1P17$I:M<70> miO&c'^]DvXsB+7a+?;T0.sH]0'|[cz[ Ep[R\\l`&ps6J7 f1 Oi(SV-IQˏG828GD>kk4cP&a,jt=Hfs_CXNmŹYlY-Hn@GdO t $,³Y-@|46]?M_@ F;#^G;rT#VX}c(sEe+wXܭ̊+jFr.Qz@EX'X4@ 3zۃ53"@Egi:#ߣ>mS;PА{:V|4ǍAKI/׮#!V|553,R H'#0~r }ի}|h`@0OR.ࠤEuG@V 0^A3+u6@]ѪRRk@ 2X-m=GiW;T!&>vm |PUaP30 y/(/?ȹ,B6 1?+u^_,bKwAz@w(Mii&5-yCXtO4*Η1J~ڨqybf[Fl[+=at[ ziTWoڂ4"`KG/ܞQeI@~`B}dʆHdWr%܄Q?+xns4]45Ӱ-|R.*ܶڬ&ա>U\חY+z-~́~I A~꥜4.ޯv+p@@ c!aƯ\ѧF]$ʧtǨn4LZ>NtN>05&AoE1!- V v&Kh$ժZUQl_)8Pā"D|p` p A &FC@mm{ϔjt95SÕ`rE&7%K7IM N*Q/Oq)>u}}~LѶ/pw7*29ۚT$J^?嗫4 ʼnNOḰg Vִwq6I> a*4+4_y*o}pjZGcŋ_eεM+ []?u8}㽔P}w͹FT념<߭s;E鵎-oyۃ\` P_6Rr#*.4ަu"-8L͹ >O̞wy[ BeB+#K\ŕ4ThclkfKhh矿>a&hX^^oR~Y^dh}0>r"ԧ^*j h\`o|VHH|IKS( B+(\'=/j/;Li}WƭSmqy _@zW׫'l[.% Enp%ox|3چ~mo{Zkȯ߾P ]aet!*wlٲ`/5lX/i2Ȑ8=]Q8}vg٫mƑ1v3]b2o0&D]x/Ed?IxyqOYsf>2Fdn+z衣̽оDt "3r \"Ip"^~Eˤ>M4«Џ!}f?/O!6[# j =vժUڄE38;P ;þLtlQZ^O?q8cmfuGoI5FխjlwlZk֬a#xM_𯛝+ԤNF"ڢx1.nhFDя~tM\#L49o< OR=7o|¹~ט}ٝ $ݝ?! s:Bc1'_ڠm/SBүXg] WKc {⻶=?Iim Cޤ v$SYW̾ fwyh̔hB;f߀Y{m|~{~3M)3 Il&;9gZ pL7YƤu3{~:?{u=)y $X6a&ɞ֭;&ʫ,t:,~fÌ&P1rIDAT{n:w/GEjx)d&=ʕ+ݱc/Hbtǚ{c#w^*ò/&O[j| űO~r}0k+D(,<ܽZDq>ۤcYܗ_g|yĄ|x ?|u>LKhU=$Hd93d3d2g<>'H7ph%!R4R$[`ľ tM M~:^խ{oWz0F#`0F#`0F#`0F#`0F#07v#wC9'|rpO#oCV{~#{@pW]=H{Xt2='BB]B] {4CS~pplp~TMXHL;C޳g6m}Le$6Ft @h@/>Zۚ V*Gέ .bU{x6#d!X>ׅT<@;Bڇ:w/~bc/o{9=Cώ e]{l^ pVkpx"4e^0ܻn?p0{"\pa?> qCUSo~1{]f6˅۱$aK {m}ի^_ƽ]&Ln/H_ ఆ9 ' 򡛛ͱ 5`?ö` e/A;}sD`.ob7 oxÁ+W<'?{a=!`_,x? ݡ%cw$0qT{#OI`]%ldZ{0smPsx袋5aVtzh`O vsL@YZn7=A ?xGo7a1B\@aY˂3\{pkx)z}UW=s/r =sVj۷bC_,mp$(hj<y>Qrlyy z_=@ ~S2 wA\Uj㙍AuݏH&6-!fE mжÉ *Q8%|aӄCWv~%gyfl!p& 5Oz|Bn?F1L&>B?Olj 0i5ᲤG`sm }L D  XXBQxh֊˽'^V - Kasn,ˋ~^Ey䑣?|PWX{ [2Rjylx}]vO6Q c7)֟?Rs \ݮw0hB) va7791:#ƂabŊQG5k- xDŽ@.@~\6c`K|m~%h`yWo6s ܴplab Ap/A~G~KXi# Ν; GO j9yLx_м쫃}~ۜIl[jX"2{g#h GydraIá_ :l(x`I=4m  /͛{Gp iٛ5kv>jzm &;va~EgA?`=’‰%X&T|`۶m#cgпB <wl0h>P<3};M>:cG5Fn#2/! +^|?1l5Ȉowl(}"VƢ[/*n76l0 ֡wF ;@Ƨ&fwqa3ೡ3m7 g`lWˣ?F6m |NƳ1F`1`O֭[=,+̉7 _|kN;p#>`O7.MiA;GC8~5 ItI'N>,|pF`xcbD Ssׇ԰!`8O4M}^BCzu#` wq/7+O?n,=N /~ ?rxf>#` >@n wvV8m>Ҧ^ {F@]y \O;K_RpFdE3 ``f[Ўxr KGŽ3f<#q;[o|ト:BoR4'Kgo;`{Qgye/{gKFop >TxPKm,]G?Af/8uYg5 }O]0F`n`Kh wOB*]X?裏kƖy#S#`vmkvi!k&_ c[Hv:׹g}3~Ȼ2#` `yoo{cx_"e@60#tv7fm0F AZkfEk ²yz3R:-w{0Poۙ^zs;⍀Xz|~^጖enppc lڴi,O=T^W#`^|Ѯ]婠}z\0FrOtxK_:~xl0F,)h/I0h9N'?3/=*'X|(=_r벌0F`h᫯z|@ބf;9 ؖ \tEݙ Z״Sqk׎~ѪU`0F[_s#_c_qWlYnӲA̟SM;#S_F#P֭[GKAH N.첃m_ºSvCf .c?kc0F`AH}7Ki⪫15q z߃_=\0:묳rr0F``ؙg9z6W2@׽?Unrz%|IY4^#`N;m6 h|rDnᆟ(A?}= Z.Q((e#`#ܔ %gZTO [o7GCsf}{G6lQ0F#0Fp'O ܾ}{T?yυo]wf)F!pwmGMg~7o}g1F#0izl{§WUr܂vbo؉鏅?-oMۑF#H@lfnzg~i/n|_o0Fu6¡>YgoA0]zg)pB:'5c s//9#`@Xb6458ώ7͚Sf <󭦍0F. aL_9ʛN QG4,-c=,F#`ZE~FSuЇ>gmb:S9\|ūz꩟㤾&~Ik0Fy7f ዶ {(fUXrvܹ?(s9gtYj 5F%GkFAp7BB +@gKafM,3h3#`ȁ2My96bЖmUh6R4aYMg(hfI0F nT BPпhTX̝/%/yIn90FիW}F`'o uB:Yg_g7z#`Z@`ƍ[4A>";nԹ5J>*I#`@g09;BR24*BN@x*&&!&mp^#`0)|TQ&_@=;\.YT76F#` T} 2JpXSprl0Fp,}SG;"5@3)G T=I#`0CC8vr]Aӆ#s#`oSGD^Nּ['lҘ0#$ac0F`(ppS @2DеNAGxёG9{v#`TNPC); NZ2p%F#P{cAצ;ɦ#6mdsd#`"OM5wzwMUvF#`@l۶,qwm:#vl߾}ys'g$4m#`#t%n4M5u`P9i,y{㍅up>#`0M`BʗiM=PӦC X Pv;0F@Y?xO[ }c75` 6F#`F&&X͝$t3 G p '4l0FTEkY֗I9K=ؾsF#dF4l$e:'0&6hg0XqY.#`$4d_col3E͖k;v~Rf0sEf:'{!l@ pSPqR #`6 tMw@PPSO=ť0Fl0[ϹS;o@!0amݔ9oR#`?4)nz.ʜڸYKn0FtII%]{nA+r*@es"\22ʶk0rm-_?j9#ڀ;wf9$2)n: 6F#06<ǁuqeKicN91m9[n6#`&%-fC?AN?ڵkT9w߈`l0F Ƞ܆rof)o0 9砃mܸqtꩧO1F#ܖ-[ZYg?C5"gϞ7oΦr~A;m0F``Ϛfڵ_U@^6 .Y:l|h !|`c0!dlY?koNsK* N ,1FA1ϸ\EӛJaC8f 7a `<*zS*},4 *d!XV9lD1F`2R-c|W_Z-c:u]-1TkYTsOm۶,E-[$nևK~ NiDi0CҌXLH!(;cKfpN3#g&:6ofަʍ p> T!0 w~#``%~jfmC({! E6!""0M/̠O y詟ei0`!.,_H3 E9#0441[cC[/U>.{^ M)_?iȡbub %fDX&- 0-㍀0]">_Zch3O{ ]פ'R Q`\kTԉ fBP I6 zɣF4AKB1jH3j=gM1KAvbhX*eB;XʅR4CH|^H[e!6F6` 1iC2*+gY— ]&"%IŃS$hD@ a'By\##`"ԈmϤ||**%n7uKw4V <7lFX^< d[ik@D4ҍx#`5 ;XM^J,D6I SE8J2e:>VA8tepC)#"l.A$,&P=BCձO4טo߾}l{KKtUWBSFHB9㈥祭jRB@>h:/xCffhn5'f,=>*K1h$DYRT0:,M[d%*Kqȏ%/RXK#f>F=E26E3b,􋐪f;T|`V0@$ a}оY۬|ԁfB`R Ta  {qs/Kv[ KLp韅~{$2syBfEA ( ֶ4ԭ9o v@}@ p,$#B;R3yBJBپP]3/"/;xإ3K/hnau$e@ 4%!E@K! 4Ůs4 ㄄>ƕ<ΚL= r @4 t[L&B,lRrIkAe;"Աok,/4L=}ލ6r @ 7 c,c2ЖA\rlA 9i &!,6F`Q` w*E5 ABxM*59*K_n!Ey*{ݺuc p|q :w8+/.,)#ɒ@yI!py9@K˕_|f{j9v082˜mB-c=kس p4ԭS gZn{@pED06F '< 9S4״x|(ˣe yQi!#|6:o͚5*@e:xQS7- AY_oQ !].WQ6<] i{Y0ˊJ.ݙ_VNxɀ2 /&!f- *dEA$B19_D0ASdw _.J0'8Ɠ 0YLL2W 6Tm* B!by2/P/ vڪV! 15E&0% k/. Ϲl8\-V8 |2@c2,}7x:h!8ݥ2бm EmP| mO}}M¥U!< EF,,)" }?Nj|fPKyzC I65JKҠ$vTG{8$CGli=#Cۗ|XN|3VJQR@ 63k:.@1F9xGy'x7EĂ>;# LDw_2 `7v˟Qt@ pXk ^/7^Wj]p(ܽLdra{ GH3vHA||2N64t~л{]❋߻Ok]<#`-4-!8 WYY>S@ k1C@ =\ڗGCh۰Xd ع/J#I3B?9D #.ڥv@SxS+!>suLB`:3 0fh 01v!"K\~Zcb2lLdB @l@X?L0Ȉ_|`BcblCD΀YZ/a+g `!3,&T&yl.&""`Ab]T"lH/" ԯU b +́AL=`<<Fq S$+ޮGL25 P$=$!7kY ]qbA.?D@D!]Ahs{k`5L_v"`2 l/\HC@( #\+\d#l2Ea%\Z4iyFE.ar%عpIgchd)`p@\r< ,]nYZ i^ ?B"(eO>`SS&Kka˥-`ulW:Nr#0&559AE$YE=a9)(?aqa0Ȍ̀8 3 c Y/4q|ꗠVU)_WLF0q]\qcx X*l|-Zi:׵p\L^q?F0 zC I~j"^zs.#`0|OF6#s9 s^^s#`@:>\KXΜ&D6Ft @fMjP72FE.r%LJq0F Aݎm5{s#`A 3ne @]J3%` @6FdF 3&uqF# ]v-Շ&Sk\FN~~иu8oL1z90 @'2uX[T)Pd0 ,<\ne!}]+Pq ;ܛĂ"ԽAxȏ_WFE`.zNJlCiO(?njTE錀X`rG]~  áq;ca+ȍȏ/3*vXV˜x'?N;!˿̆{J%\qEnQXZF*/w[y0CA U[:!t& WuթiCQ&F,}Gu)\OKJx]%aeE U;#ap:w=EB.?ugi7y(ߤi #MMs0KuW^ye'x{P&Jn7ͣU몒^ipOˏqIe7F,:fxeL᱐8ϤtĕU&'NO:]Z"k#`]r'oG0eKBcQ[+Q*e囖wZiqb+\7V]#` ;oSsX5WSVVYV͟_~)7dlXB~u;%tg܈Q[U|iJ-Iqe(Cz-+FF79?]և0+hվ|>)8!u<ƕ_m F~#`0]{A} /sxN 4qeq\_4uҺ'~#`!o9ˮ[V }s=# [WS.aYoDx%eX/|INwgϞ=G>_o _J(4;v FK6u*' iqi|DӮEeaʕ90F`N@=0 ~ 8(nZ4wn[--7YL(&,OWg#0~#?O^|A_z|Qd4 OHg?-2)`bip|Ӹ6;W^ژve0#`@NO9GZ#M-ea};=9ڥq?O])*Oa 44Mz8s>2B--qX/'(Vu)̪iҕ?F!#jMec h>#*g̔SsKBgv>ꪫF\sM"o_ԉ:yQXQyu7K5FaGC6Ueύ!?>gN A/6Y&Mj5\*+q|QQ9Ey[Ԏ#wRܢ #`;l<{??hka/yReqI=/ =Tp}ѣs=wD@£}ӶIB((>]9E(((Ì0CB1=lկ4/q aQa|i(?4.bu9tw}@A+RuLiȤ4ħⰴN0EU^TP\m0CC`գ׿c9fܴe/hk%x  %јyء 5M} pŠigQxQu0FLC+_Ygq3}{ߛVDs6j&:\~oٲĦSO=ut7:@I]鵚B\=-'/+ ,‹&W5F SN9eWjtś8c}_@|[S ͛+?܌TVB²5(-ae]Wv(NӲgEi#`F`ƍu5kL bv_ط7O0cd'a-MgyA"r3b7X/,Y',nSN\Y1)}V_#`B`ʕcqUcUN_y|(]ΰN@l:?#G|v1Q6Z7៦`L( W-+ 'ﴸx‹&7nF >{p̞Ԟc=vt뭷NJ25/xUEm Nh41Ztv-(\(}~ܴp/M?)\i딩r'Uv0`FO>pR[] s6Z`iO6MkB-rqeT'WzwR^O˛b3K#PUVI'qj8!Eػ!3;NT'9 /Dm+c: pաx [xܲ4 Ǖ?g0F Kƌu1NL&8slv̚u'z!Mgæ ,4.nэ+I\Qq5~ԖIY'!I5~#`"~'dn i*hԘ0QyK+i_SvČM#"M䬁7:~Z$O*[qCcIqZ0M`8872rQ{Me\26ξ㽨aSZ'amdu& ) L:xhZ:-#:V']մRVY7F0rT/pvLS_t54B"6:0MrqŊx[7"$&'. K;8):tOKCyUTM~#`,0F#O;;4T-,@rW@k2,{~;>X xҔQ4UڒQix|4rO|4Qi7F!7`,crTơt`%ٳQz,35 <cR]'8IfRfv5=)hv=tEZ TmxLY9O-&mJ#,iJc#PM6gfk=Xvm:%9Z @| 5,K_0p&W6.G~ JҔLW>i,IQ'8#`T?{]"V?N;#̒٤4<[P 6 @Jq7%J[7+/ UتEe-J.M}mr!ذaXϡ=C5<@?}{Gzbg=q|P L@@҇9|I aëzf4oUtF?hMwC7h٘tpVN/;nrӍC}|@ݳ PDB0Im M-#4y1TYBUHUq:#`1NCc7ۺFIcx6m۶mSSb6{G4Tiue@vJUNJC9MReMj㌀_ټ =tO`KnG^rC̚2L"2 :RJ VaqYO'.Wq=#0|{\OB͚5ƣ \ϝ;;v`ͻG}tlyqD!@IDAT"ȋ0tQ8,e9pF>c2qvd^_wLV}7|.{q;'̀hFG?6mM8(2M_T꺬M-K$Ͳyx1Ek׮ }?E5|ҍlg˖-u݇ 9cC I\DbXEXw#+[rOש#`>V^=/#涓 gl㓿kgܭZPSALXUZ92 pK 4M5qp|?Ϋ2'⫔4FJ?" ϒs.s7f-nz#<\853ikpTi0З@=|Sz0g3y%iZ¸z[׺vr 5PzXdEX5Jg(Dp! J&BȮh>>[9%0!r>ʦo!4 ٴ R@rT"7|Æ8  $/$ ScifAʣ 4ڙM7}&GD@dknZZ@} <zT6@@1tM#$4<_FF !uwUQ ?/契栬" qee;|~@. iδ` `^4ׯ_?"_3C"&u\xZi=! \b|Ogy3qpxJع9/Ź{」[nznr tA*~e|m˓<<<,+xhbL" fc  :b1a(N/q 7d?50_ 4W.qa[%iB 6@fzjު-^fsTms,cn !9 J5fe_  y`>L3*B(#}Ps0F:hxYE3vi4g>y_UIn  YC,d. kDZ2n(G1Wj*0,IG5n3sG֏NfUbشiXÔ+ k0F0vjϸ]e_syf+a!]KsOcĹ Ѕ(BᏆv) G]{do²!T$< zڵcMp> cB.<#0060n6>5]" EPeI }4c}jC 6I}X^\$@̲2 X#` fU WZcXzcgUW@yh&@P62Y ʇ!U7 pd BK7I{l13o)^ @ݙ03j%|dK _@3@iOaR DXa#%B?F( k.Z8b44=/}% % 19@{0D5F]Eq5uCgܵv`hvML5k/2ߤ" h 6l]@\acC?11F`:D+ƞئ"ۼ"^޲f܅H\ҧy2m-Mf"9(h;bcf" mmѵ51R/ +Ҭ!3ok [ău}fo}QF `*R Zgw^@!$Sj Z>^7L*pAFpBУlyQʼD<4Z.`6^\Ԝiߴ BQ,^am7}JYKY& 44&3 ߢyDXfK- rJɩ;:e\P4 @Dt A .X; {6tCGw1IB_H 5q#йkg )`pjPwu4O; 4ԇ44.r1Q(Box BpHcAzh ̯c2D#h="LH㶩!@p#XMBRc&0fDpEp.?Xi3(.+A8][OO{M6Mn^Rt'dP{66 Vm yA!cfU˟%6 ɤMJTB~ 0c yvJ+ ׊#̦|m3\ eA+?-MzP/w[զB}el:Ih^Uq>M'b r19_.CZS WL\ x8}|W<^ w!nјcdC~i RN,B`a% DDD &h)K,y&*ź{LPBY2!`$%`IRPer,{qypezUA 㽚K3,ֹMP(El# y;ǼE~o @FpC?!" @ D{5xbXTNZ~KyLǢo^@f:N8 Ep0`ĆqϠFi 5CEFw(&9ߥvu @FD[wX" fw7ԝ)<͘ps&vCAB=&AC=n %-̬]81a)9fR-~[ȀB:_Nx$lK0Ȉ_kpAg0k|{ ꉵ"h lYa?zU]#7&_` 5,8kYZUԣ͎qfiيjy|c"`fŢDbStcNb?DA~qpx{ҽK%0ȈqjY>z7ne!uK]l\pOi+`p 2Fhp`o'vtљ!aP.XP72F`!x^uBP| zwne!-]:θE`~[n@^D% U 5C~2F,/alwEEgRPړ\ʖ7R/15F`Ax?]p,%Hfա6~/ S\/+umL7ǰUW]8_G@;P#nQl)oR^ZU#|uۙOtթ IS$fig|qUu_%/i^nQEqTAiX`883YurQG,&ENJƑgRIq*+.JzÍ4pӤeq6F,_+=|uձ>둠K*mjG'U%M_q᱿,]QYheB e;#t*t]vϺ`'tUN+gRLuwJ..;G]E/pcQ_GشxR*eͯ)\kX"=ӯ躿:w]w$R JƗy>)4O|(CF,8>vNvٮ;U}Xޢ0-KS|U\(+,r8]ʯtv͒Vy#`O}J\tEo.ꌅrUzin|ey,iʟqXtx~Bʕ+exJɍ",iz|ei /K˙.tƥ#'~F7>#áO"HS,)M9 7^r%P7c|~= g!13 Y2ؒ.hQăfkKdStMT }M{3*7FLDq ᏻ׼syur{%^xBi"o] "0\L|-_!m߸Q{U><]bp lHM2MR}m"$c"7`noo׍x޶"ye_DBꫯr-]7+[}`Sq 6[U'˴k^N5F =z'fӰp<:ϐ}ko}[eI.&i|z]ixZOzMuYNO4Uu) #O^o'v=$7h ^/^{ʟ }ݣO}S{-˃ _TYi#}ZHʫNK>-/V:FyAkv1jH&W͓3] .-vL|ͳf%},b~ŧn4i2) +[V7 K)8<#0dؼ㏏b A p'{sY ispa-9;ū:°(OZ,R^Yڸy7F /6a*mޫ1xͥ^zI9tJuonځnicǎoMj+K4_z],+_V䖥KùN((Le5F c=v, C d! Snݺ:[|ɣ?~SgZWUÔ jҕ8lrFr!׿wpϾsX3`0'o>U˨jgLt7=XԐL*ɱ!>S4,&/Sq=|EeM(OQkL>_׎ ;ot 7iFPǯr>ڴ;#ЇN!ͬ9餓FVzQ! 7u_{TKСGmINS6m0]#z^1q|}{ߋ_+GM 4ZKHK{wI::Im",ӦEiT4e((L+ 'OQlF 6‘N;p증/G\sM87k? yl@Xx+&?b! (mQ /+*RIũ8՟!5Ftj&~G~z=GyNh$ېZE^ry.ڙ oD MBEu&Em( / TFg]+l;)}Y\Y87)v;# 闾s9g쿪abzWM^n9"$4aNWW5aÆ`TUg\B/K;kx64mY8+/Szq} +#&l{+^1+YZ~}B^M?ڰ 榳n\iKP[v|zu(,oYx,MYxn_#`r!CK+ ʦ-#7M Ke=eNW?>)Ie;#0 :j)?DiXݖ!Qjvnà@}چeqq=_t(GrӲIi9#0 lM69)-6sѸx_|UW]U'5$XMo- O{S9.IDinڞ4&>GʫRkOTNr^#Gf}A N4jweΝ/:va3dD ["CIyT "pFnY˖gI##F>>;S:裏V J_K CbF}kQ!3,آ#%T_(ʎ#iI_%UI[#\02d؍7V'Fkgٹ$y~vF`j&Mz].Ljv`)=iZ.A7IfR`! !&XJ ўi1IA\aJnS7=UZ,tZ#`L;gyx1nN`7=7!İ5I2ѤEyah15|5EeE᪳((EeaGnY:yq0ߺuF 3xj~ѵ16~Sm۶Pr̟|H@ bb<1*nY^yR680c9fLaf]SQAش&cmG#@;2 0B,x qYUʇ+K>W)CiQ^F ƥիWUUV Z}X7m7(vC$0:1ڎ;ƚ>Q'8B 2 ,\*|(U{ȏV@d?56ȏ[d‹:`"!>vge(2y*y[n)^ =ef:>+a&|`< }X>_QtE4B|3F`Vi_etV%5f{5dwq{{'Zkb}7tQ?Es<_ʼn@ mh T]#`! yG#WX1{+"kȒ\?q֥mTR|J+e%' ؛ֵ,H}@ `Y s(G#%}3aw>'14| O@裏Xೕܛt#n *PqnnEGb F#Y*ߛڹ6Q?c+뮻Fءa%3M?azuS"LovB܊6qB\+~k 4]!/;c Ln3Ymؓ6MiEh;"L `Y54D/W(ol %B=nc /E3l$Sn ]lGˁC, `p>{x mG@䠨fdIkAbQ*mEkbs*Y?a:sOyF2Iú= iӦA?ġA1d36NYΓ*_ P3~`hދe/ @g|Kg00oc_hpjM ;HH_xex9r6@OrsNb'$dzQŚtO1%My` "qYz¯k$Gܨ;y#Ɣnmt7}&$MR+Y!Y e@p:DgEpˈ+=[f ?. ~iy|-Aό]~ x6^g##Ҳʮ!|^y1&Ƞ 6lS ?0! UoZAGy,>AYSb_,(L!8]Y=K&a􋈑1Aߪ+%Mk[煵6<}7n8v;x QlC PI"<njR_'ҩ%=}AM$*k`I@5iu;#`#gn2ObH `vN~nRUajX" 7A8GkUs#`0rgw%OA32ɜ\ڰb#O8aάo~YZ4 |=`O3< dg LCFj0#ؗoQ]sM֬ͳd@|#ɋk:>%U ^ om0F:LP3ۯ{k^~|A6mq Y鄠SE-"0Md]BED*=B&t>-5F{D1G:fh-c-[F{©Y@`~0Y`A&,u?dr1@>/1FxEc0 6s?z䣏~/@ڔ̛X',fP?$B@;vi*CF,*̴?Y^C/\,!y睕7+" G)0m۶g챀 @/R_D~X.Z,i 6FED d?7v3f/YHa C{#ڸD~ "!*dvk2m! }!W^~4M}7n jw;lBpL˄\dIe*5V'E?LTE{c @d&EP$H!CxxQQAdvci3Z*\#``&F",h wxl_R:`N氠"Ebj9ɀlL{( kڐXDj0#`@URE]q~[b}v@GN2:kRYX  { Y"x,mrZ#`@QMBUƩ gui1O.P~6M=#P#`ƞg /|<àii;Ɖc(@1Ael,]TFXԂ#€;iI@iqO PF 2ZB`m*!fp(## |ءE>sC{--@X-_ %X+ KϡCZ&!P6?M R.3F`>`̘Yg1K-ctf/5. +S%b!hx1@}j7@Ea,HK r8F73G"s|*wlFxg'm$!8AbYeC"xXD?*|',jXRFi ;6F ;B^3|"y3k}zb<y [̎YOb9A^G5Nͦbwd 7~FA.%F_RaGط1tS gki&2Eb]G"5C&C @+ЖfzcHȋUG;@pZzx.乍Z2qRvx1C5}wH< >a_/ 1(/p0Qo*;ڵkb%Mio$dzV R#`&#Xw5$#Bqh8.'֣{y$DW`1Z&i'"ʣXg%/ll3$69 ,A{ { mNėDc%ٶedC i4le~Z[G83@X&m^4`搂b &)Zx7$qy^GYp1d!6 B0PkO P'dRdvI[ڜDlZoRxGxv%%%M162V qU>|m0fv,"-7ރ#2@n'_P/2G >"'dF]Ϣ~%yFl xaJMj [s/ 5 &i !1!hqu3`hcɠ 8AFڃ2 D2A/k\K]a/6 w^Ɲe'A8& B!z:$/&/)n̹aNd0f@$H6 PX$,_{|WU%"$RR  Z( uAWN?c[-ձ֦d@)Q ))-B"4LywBdesϽsϽ3^{s^{uq{;_k:r:Na9fJ3v|w?,G8Ǩ *) CcfC3¸3 uNtīlb 9+8唱5zĝY[7{xpPAŦm. %C^Irsi}uJ08`S踊ʡe!cJ˱μFT|ԼHT hE$ĝK:qXeQўӁCg-#Or豝,JrUoje/&: stxtDLj_a(mc D.eMLi˪㸅䑪^238LS1CH)>6IDATdN.++QN>Q[TOu !WGGmUG*>Ezs2F:TeR\*6ms#:bR:k%U,c"I'6e}k"c̊M\ ȉ'eY:KOmX/(ϕ<^l_L@Q(dxՑFxR&9,^z1Gj/YQYuJlǫ#0Tz\+6=׮]sr´ؓ3F$LJ.UfƮytc'l ;@t[#`E@sL6#P1*@ŀڜ0F{@ =vni"F@ *#`@8PsPm#`*E@p5;PnneZ,cG9nw-#0Zo> ֏֡)b|jFy=Z8=&wФ#`0(ҧ`4Fua@w0#ų suL)}8H872F`XYnjj &MPiJ<CRC|?KFC7C߯cֵ?:&Ԅ>ؚ0nrN1@F)1Z3g?6I yHqG>K,ر0F` ؍yp"PN(ۊ^쐊KeQ?m97>0o޼Zvk poA pDg %fv#_?铊Oźdrӣ.Ϟeۧzy}ʮ0F` ؆owW\ SD/uri9k,y:yrȪϒI?Mvy:iuў(7F`nv裏 q G'N^}\nmb9CZָ(OTΪS;S#`#/jsH7N<0aH8ɩ>oϢE}եOj##6i9@Dü0c={^ysH^|+ lO: j 8K/+ otl}ɣz۔mWֵ+k ԋi9+NvL0ֽ7 y-AЏte[V?kWjۮ>2o@1Tڦ >:|chr1jG%ŒT<9G)SG[^rhzeQ'/#?7!{ n喁0_vh s.OTHb}7ط~N?S#` zҤIg/j\ .?؁?)k{_E<veDYCF X~/kܹ?hx?1~+.EbKN4ft~Irv~Nur1mn^7F4pg;Fms=w;,GI(|Ze8ґvhݴ,[i۴,=S#`" <뤓N|Mnߘ6m?@ øܴ-GjOL,Y-TthYN-Knݴ)eO ZF4&Ox4Qxs'|%Vi:txK˜CsO^Yc}~sM#`@lOlݺݸ_VM CEW?藑___ghEc؎))G[On,%,,ǐ%捀0M@k|~_Yv {yvnmi Yέ:Yz%^VY2U%k&K&;F"nw'#p2 XuYg} xA,XNeycZOd-W~^T}.lD]F ӧ߆ƽ˿W<+,<q޽p¡|:g[FǦ$>:8b9fUiy#ʊ<<9meI&gQ]eF`5ӷ3`',31oyCz )('~[;vc#XWwEګCϲ%:]/*;Y2եr_ʖ0!ZZ;=߁W茌xdw[Z`SL$ϟ|I蘳w/u3v|?B9WI򜻜`ZߩhSTϺAr#`@lz6wxM7=Ej2駟 { wm8b LW}/T3u)W%u,E5<r#0)} u+H|. }N~6vӧ_ |@m葉[PgpqۆGu5o3g>m`El t0#ȿ%KG"v JηM;KG4'yJֹlf.~7rp ŧz '?> K%96Q6JQ:NNu>ڋ:JG6ctD6Ңg# bgC~Nmp VϘ1%K.}7(w.C~ raSsEu2ZFGeiڣgQґL:#`:D`%֑9ۿwcP_N;Sg}lr!E~r`J//0}wE:kCէ2ԑ((>ҍ捀0 ṅl.w@~PbiUwq0y˖-{#>辯ܰ*[ua];*c]D~kSv3F`؎ދuqի9o<ߩG Wρ|z;Mtxxpcg@ ={uԩå~'m߮M_bjX!zx֭[7X pP!4u'?O?p ſJr IPI-m^~열F}W*am>wW/}iP~_3 pg<0)0r'_mHe[4ֵ٦veHWmMyẟ|͛rߩ2@0O#8b>Dȇ sf 47nx2.so@)2T_vٕ0CJELӽfzfhFp0D'‘G|aÆ`@W]$'OA)$LOʔWV]KFtwވw}UWsn$4ht8iӦaBlm۶_@sBCܳQ"_m0[PɇkA޽{5\畜F#t0;찕Nk͚5GL24\g AYWU&eR*c@-/t"/B~o?W @oG}4_ɋyA/ɓ';D@_ ȕ4 HL2ur*S0! Gp}C__u ͡}yt"LX^ntl}" `P?4jWl_6vs/@Wf\t}_Օ%79!lBXv^YzAUf2w~Xt΍(&\O:!{t̙~~)SxYO?rix/[!x -8 y*raF4Fps g[ ge@86p"*Mzg:o:tTpУ[J@Y0ː1y|M/[pP'k ʼnw+&ڒ%K¯f`b0|D> 3 /G^ig>5(;"pP_۸A<F8;'⫅S!k=k]e݄56R%^^Ǿ/U!t=_8W^s޶QrE`ŇM:Xqg hp,Ȏ?NHēYV_N'>4SycU*X]c-x 8Vs8x~mdF˗Oٴiqv:zXdo݃7"S6yxRʲ2:>ҺN彶Ui_vc6b >Пǹբ?i|Oz<,Xh,ä㰈?ʇeuX>t_P>ZJju*}J[[3ln];c'ZRo{;FH^O,sϑ{~Nz8.(8!Q XޗYHZ]X^ǶUݒc܎<㘴؆_cD@bh Nw2F`/|&.'~ᯅә't#@LE09 G8#(;Y~5x:=ׂٟb{i׶mߎƼw#D9@Kp,o9񛡳 n^7]y啴d@8@77U#p]wMY~s'So*8C#x 8)ǀ6@r&Ū}<AHc_m]eAoa-DţGkxm讏}c[a0F#`0F#`0F#`0F#`0F#`0F#`@x3IENDB`ic09PNG  IHDRxsRGBDeXIfMM*i @IDATx e}W!"4cK>$Hd93d3d2g<>'H7ph%!R4R$[`ľ tM M~:^խ{oWz0F#`0F#`0F#`0F#`0F#07v#wC9'|rpO#oCV{~#{@pW]=H{Xt2='BB]B] {4CS~pplp~TMXHL;C޳g6m}Le$6Ft @h@/>Zۚ V*Gέ .bU{x6#d!X>ׅT<@;Bڇ:w/~bc/o{9=Cώ e]{l^ pVkpx"4e^0ܻn?p0{"\pa?> qCUSo~1{]f6˅۱$aK {m}ի^_ƽ]&Ln/H_ ఆ9 ' 򡛛ͱ 5`?ö` e/A;}sD`.ob7 oxÁ+W<'?{a=!`_,x? ݡ%cw$0qT{#OI`]%ldZ{0smPsx袋5aVtzh`O vsL@YZn7=A ?xGo7a1B\@aY˂3\{pkx)z}UW=s/r =sVj۷bC_,mp$(hj<y>Qrlyy z_=@ ~S2 wA\Uj㙍AuݏH&6-!fE mжÉ *Q8%|aӄCWv~%gyfl!p& 5Oz|Bn?F1L&>B?Olj 0i5ᲤG`sm }L D  XXBQxh֊˽'^V - Kasn,ˋ~^Ey䑣?|PWX{ [2Rjylx}]vO6Q c7)֟?Rs \ݮw0hB) va7791:#ƂabŊQG5k- xDŽ@.@~\6c`K|m~%h`yWo6s ܴplab Ap/A~G~KXi# Ν; GO j9yLx_м쫃}~ۜIl[jX"2{g#h GydraIá_ :l(x`I=4m  /͛{Gp iٛ5kv>jzm &;va~EgA?`=’‰%X&T|`۶m#cgпB <wl0h>P<3};M>:cG5Fn#2/! +^|?1l5Ȉowl(}"VƢ[/*n76l0 ֡wF ;@Ƨ&fwqa3ೡ3m7 g`lWˣ?F6m |NƳ1F`1`O֭[=,+̉7 _|kN;p#>`O7.MiA;GC8~5 ItI'N>,|pF`xcbD Ssׇ԰!`8O4M}^BCzu#` wq/7+O?n,=N /~ ?rxf>#` >@n wvV8m>Ҧ^ {F@]y \O;K_RpFdE3 ``f[Ўxr KGŽ3f<#q;[o|ト:BoR4'Kgo;`{Qgye/{gKFop >TxPKm,]G?Af/8uYg5 }O]0F`n`Kh wOB*]X?裏kƖy#S#`vmkvi!k&_ c[Hv:׹g}3~Ȼ2#` `yoo{cx_"e@60#tv7fm0F AZkfEk ²yz3R:-w{0Poۙ^zs;⍀Xz|~^጖enppc lڴi,O=T^W#`^|Ѯ]婠}z\0FrOtxK_:~xl0F,)h/I0h9N'?3/=*'X|(=_r벌0F`h᫯z|@ބf;9 ؖ \tEݙ Z״Sqk׎~ѪU`0F[_s#_c_qWlYnӲA̟SM;#S_F#P֭[GKAH N.첃m_ºSvCf .c?kc0F`AH}7Ki⪫15q z߃_=\0:묳rr0F``ؙg9z6W2@׽?Unrz%|IY4^#`N;m6 h|rDnᆟ(A?}= Z.Q((e#`#ܔ %gZTO [o7GCsf}{G6lQ0F#0Fp'O ܾ}{T?yυo]wf)F!pwmGMg~7o}g1F#0izl{§WUr܂vbo؉鏅?-oMۑF#H@lfnzg~i/n|_o0Fu6¡>YgoA0]zg)pB:'5c s//9#`@Xb6458ώ7͚Sf <󭦍0F. aL_9ʛN QG4,-c=,F#`ZE~FSuЇ>gmb:S9\|ūz꩟㤾&~Ik0Fy7f ዶ {(fUXrvܹ?(s9gtYj 5F%GkFAp7BB +@gKafM,3h3#`ȁ2My96bЖmUh6R4aYMg(hfI0F nT BPпhTX̝/%/yIn90FիW}F`'o uB:Yg_g7z#`Z@`ƍ[4A>";nԹ5J>*I#`@g09;BR24*BN@x*&&!&mp^#`0)|TQ&_@=;\.YT76F#` T} 2JpXSprl0Fp,}SG;"5@3)G T=I#`0CC8vr]Aӆ#s#`oSGD^Nּ['lҘ0#$ac0F`(ppS @2DеNAGxёG9{v#`TNPC); NZ2p%F#P{cAצ;ɦ#6mdsd#`"OM5wzwMUvF#`@l۶,qwm:#vl߾}ys'g$4m#`#t%n4M5u`P9i,y{㍅up>#`0M`BʗiM=PӦC X Pv;0F@Y?xO[ }c75` 6F#`F&&X͝$t3 G p '4l0FTEkY֗I9K=ؾsF#dF4l$e:'0&6hg0XqY.#`$4d_col3E͖k;v~Rf0sEf:'{!l@ pSPqR #`6 tMw@PPSO=ť0Fl0[ϹS;o@!0amݔ9oR#`?4)nz.ʜڸYKn0FtII%]{nA+r*@es"\22ʶk0rm-_?j9#ڀ;wf9$2)n: 6F#06<ǁuqeKicN91m9[n6#`&%-fC?AN?ڵkT9w߈`l0F Ƞ܆rof)o0 9砃mܸqtꩧO1F#ܖ-[ZYg?C5"gϞ7oΦr~A;m0F``Ϛfڵ_U@^6 .Y:l|h !|`c0!dlY?koNsK* N ,1FA1ϸ\EӛJaC8f 7a `<*zS*},4 *d!XV9lD1F`2R-c|W_Z-c:u]-1TkYTsOm۶,E-[$nևK~ NiDi0CҌXLH!(;cKfpN3#g&:6ofަʍ p> T!0 w~#``%~jfmC({! E6!""0M/̠O y詟ei0`!.,_H3 E9#0441[cC[/U>.{^ M)_?iȡbub %fDX&- 0-㍀0]">_Zch3O{ ]פ'R Q`\kTԉ fBP I6 zɣF4AKB1jH3j=gM1KAvbhX*eB;XʅR4CH|^H[e!6F6` 1iC2*+gY— ]&"%IŃS$hD@ a'By\##`"ԈmϤ||**%n7uKw4V <7lFX^< d[ik@D4ҍx#`5 ;XM^J,D6I SE8J2e:>VA8tepC)#"l.A$,&P=BCձO4טo߾}l{KKtUWBSFHB9㈥祭jRB@>h:/xCffhn5'f,=>*K1h$DYRT0:,M[d%*Kqȏ%/RXK#f>F=E26E3b,􋐪f;T|`V0@$ a}оY۬|ԁfB`R Ta  {qs/Kv[ KLp韅~{$2syBfEA ( ֶ4ԭ9o v@}@ p,$#B;R3yBJBپP]3/"/;xإ3K/hnau$e@ 4%!E@K! 4Ůs4 ㄄>ƕ<ΚL= r @4 t[L&B,lRrIkAe;"Աok,/4L=}ލ6r @ 7 c,c2ЖA\rlA 9i &!,6F`Q` w*E5 ABxM*59*K_n!Ey*{ݺuc p|q :w8+/.,)#ɒ@yI!py9@K˕_|f{j9v082˜mB-c=kس p4ԭS gZn{@pED06F '< 9S4״x|(ˣe yQi!#|6:o͚5*@e:xQS7- AY_oQ !].WQ6<] i{Y0ˊJ.ݙ_VNxɀ2 /&!f- *dEA$B19_D0ASdw _.J0'8Ɠ 0YLL2W 6Tm* B!by2/P/ vڪV! 15E&0% k/. Ϲl8\-V8 |2@c2,}7x:h!8ݥ2бm EmP| mO}}M¥U!< EF,,)" }?Nj|fPKyzC I65JKҠ$vTG{8$CGli=#Cۗ|XN|3VJQR@ 63k:.@1F9xGy'x7EĂ>;# LDw_2 `7v˟Qt@ pXk ^/7^Wj]p(ܽLdra{ GH3vHA||2N64t~л{]❋߻Ok]<#`-4-!8 WYY>S@ k1C@ =\ڗGCh۰Xd ع/J#I3B?9D #.ڥv@SxS+!>suLB`:3 0fh 01v!"K\~Zcb2lLdB @l@X?L0Ȉ_|`BcblCD΀YZ/a+g `!3,&T&yl.&""`Ab]T"lH/" ԯU b +́AL=`<<Fq S$+ޮGL25 P$=$!7kY ]qbA.?D@D!]Ahs{k`5L_v"`2 l/\HC@( #\+\d#l2Ea%\Z4iyFE.ar%عpIgchd)`p@\r< ,]nYZ i^ ?B"(eO>`SS&Kka˥-`ulW:Nr#0&559AE$YE=a9)(?aqa0Ȍ̀8 3 c Y/4q|ꗠVU)_WLF0q]\qcx X*l|-Zi:׵p\L^q?F0 zC I~j"^zs.#`0|OF6#s9 s^^s#`@:>\KXΜ&D6Ft @fMjP72FE.r%LJq0F Aݎm5{s#`A 3ne @]J3%` @6FdF 3&uqF# ]v-Շ&Sk\FN~~иu8oL1z90 @'2uX[T)Pd0 ,<\ne!}]+Pq ;ܛĂ"ԽAxȏ_WFE`.zNJlCiO(?njTE錀X`rG]~  áq;ca+ȍȏ/3*vXV˜x'?N;!˿̆{J%\qEnQXZF*/w[y0CA U[:!t& WuթiCQ&F,}Gu)\OKJx]%aeE U;#ap:w=EB.?ugi7y(ߤi #MMs0KuW^ye'x{P&Jn7ͣU몒^ipOˏqIe7F,:fxeL᱐8ϤtĕU&'NO:]Z"k#`]r'oG0eKBcQ[+Q*e囖wZiqb+\7V]#` ;oSsX5WSVVYV͟_~)7dlXB~u;%tg܈Q[U|iJ-Iqe(Cz-+FF79?]և0+hվ|>)8!u<ƕ_m F~#`0]{A} /sxN 4qeq\_4uҺ'~#`!o9ˮ[V }s=# [WS.aYoDx%eX/|INwgϞ=G>_o _J(4;v FK6u*' iqi|DӮEeaʕ90F`N@=0 ~ 8(nZ4wn[--7YL(&,OWg#0~#?O^|A_z|Qd4 OHg?-2)`bip|Ӹ6;W^ژve0#`@NO9GZ#M-ea};=9ڥq?O])*Oa 44Mz8s>2B--qX/'(Vu)̪iҕ?F!#jMec h>#*g̔SsKBgv>ꪫF\sM"o_ԉ:yQXQyu7K5FaGC6Ueύ!?>gN A/6Y&Mj5\*+q|QQ9Ey[Ԏ#wRܢ #`;l<{??hka/yReqI=/ =Tp}ѣs=wD@£}ӶIB((>]9E(((Ì0CB1=lկ4/q aQa|i(?4.bu9tw}@A+RuLiȤ4ħⰴN0EU^TP\m0CC`գ׿c9fܴe/hk%x  %јyء 5M} pŠigQxQu0FLC+_Ygq3}{ߛVDs6j&:\~oٲĦSO=ut7:@I]鵚B\=-'/+ ,‹&W5F SN9eWjtś8c}_@|[S ͛+?܌TVB²5(-ae]Wv(NӲgEi#`F`ƍu5kL bv_ط7O0cd'a-MgyA"r3b7X/,Y',nSN\Y1)}V_#`B`ʕcqUcUN_y|(]ΰN@l:?#G|v1Q6Z7៦`L( W-+ 'ﴸx‹&7nF >{p̞Ԟc=vt뭷NJ25/xUEm Nh41Ztv-(\(}~ܴp/M?)\i딩r'Uv0`FO>pR[] s6Z`iO6MkB-rqeT'WzwR^O˛b3K#PUVI'qj8!Eػ!3;NT'9 /Dm+c: pաx [xܲ4 Ǖ?g0F Kƌu1NL&8slv̚u'z!Mgæ ,4.nэ+I\Qq5~ԖIY'!I5~#`"~'dn i*hԘ0QyK+i_SvČM#"M䬁7:~Z$O*[qCcIqZ0M`8872rQ{Me\26ξ㽨aSZ'amdu& ) L:xhZ:-#:V']մRVY7F0rT/pvLS_t54B"6:0MrqŊx[7"$&'. K;8):tOKCyUTM~#`,0F#O;;4T-,@rW@k2,{~;>X xҔQ4UڒQix|4rO|4Qi7F!7`,crTơt`%ٳQz,35 <cR]'8IfRfv5=)hv=tEZ TmxLY9O-&mJ#,iJc#PM6gfk=Xvm:%9Z @| 5,K_0p&W6.G~ JҔLW>i,IQ'8#`T?{]"V?N;#̒٤4<[P 6 @Jq7%J[7+/ UتEe-J.M}mr!ذaXϡ=C5<@?}{Gzbg=q|P L@@҇9|I aëzf4oUtF?hMwC7h٘tpVN/;nrӍC}|@ݳ PDB0Im M-#4y1TYBUHUq:#`1NCc7ۺFIcx6m۶mSSb6{G4Tiue@vJUNJC9MReMj㌀_ټ =tO`KnG^rC̚2L"2 :RJ VaqYO'.Wq=#0|{\OB͚5ƣ \ϝ;;v`ͻG}tlyqD!@IDAT"ȋ0tQ8,e9pF>c2qvd^_wLV}7|.{q;'̀hFG?6mM8(2M_T꺬M-K$Ͳyx1Ek׮ }?E5|ҍlg˖-u݇ 9cC I\DbXEXw#+[rOש#`>V^=/#涓 gl㓿kgܭZPSALXUZ92 pK 4M5qp|?Ϋ2'⫔4FJ?" ϒs.s7f-nz#<\853ikpTi0З@=|Sz0g3y%iZ¸z[׺vr 5PzXdEX5Jg(Dp! J&BȮh>>[9%0!r>ʦo!4 ٴ R@rT"7|Æ8  $/$ ScifAʣ 4ڙM7}&GD@dknZZ@} <zT6@@1tM#$4<_FF !uwUQ ?/契栬" qee;|~@. iδ` `^4ׯ_?"_3C"&u\xZi=! \b|Ogy3qpxJع9/Ź{」[nznr tA*~e|m˓<<<,+xhbL" fc  :b1a(N/q 7d?50_ 4W.qa[%iB 6@fzjު-^fsTms,cn !9 J5fe_  y`>L3*B(#}Ps0F:hxYE3vi4g>y_UIn  YC,d. kDZ2n(G1Wj*0,IG5n3sG֏NfUbشiXÔ+ k0F0vjϸ]e_syf+a!]KsOcĹ Ѕ(BᏆv) G]{do²!T$< zڵcMp> cB.<#0060n6>5]" EPeI }4c}jC 6I}X^\$@̲2 X#` fU WZcXzcgUW@yh&@P62Y ʇ!U7 pd BK7I{l13o)^ @ݙ03j%|dK _@3@iOaR DXa#%B?F( k.Z8b44=/}% % 19@{0D5F]Eq5uCgܵv`hvML5k/2ߤ" h 6l]@\acC?11F`:D+ƞئ"ۼ"^޲f܅H\ҧy2m-Mf"9(h;bcf" mmѵ51R/ +Ҭ!3ok [ău}fo}QF `*R Zgw^@!$Sj Z>^7L*pAFpBУlyQʼD<4Z.`6^\Ԝiߴ BQ,^am7}JYKY& 44&3 ߢyDXfK- rJɩ;:e\P4 @Dt A .X; {6tCGw1IB_H 5q#йkg )`pjPwu4O; 4ԇ44.r1Q(Box BpHcAzh ̯c2D#h="LH㶩!@p#XMBRc&0fDpEp.?Xi3(.+A8][OO{M6Mn^Rt'dP{66 Vm yA!cfU˟%6 ɤMJTB~ 0c yvJ+ ׊#̦|m3\ eA+?-MzP/w[զB}el:Ih^Uq>M'b r19_.CZS WL\ x8}|W<^ w!nјcdC~i RN,B`a% DDD &h)K,y&*ź{LPBY2!`$%`IRPer,{qypezUA 㽚K3,ֹMP(El# y;ǼE~o @FpC?!" @ D{5xbXTNZ~KyLǢo^@f:N8 Ep0`ĆqϠFi 5CEFw(&9ߥvu @FD[wX" fw7ԝ)<͘ps&vCAB=&AC=n %-̬]81a)9fR-~[ȀB:_Nx$lK0Ȉ_kpAg0k|{ ꉵ"h lYa?zU]#7&_` 5,8kYZUԣ͎qfiيjy|c"`fŢDbStcNb?DA~qpx{ҽK%0ȈqjY>z7ne!uK]l\pOi+`p 2Fhp`o'vtљ!aP.XP72F`!x^uBP| zwne!-]:θE`~[n@^D% U 5C~2F,/alwEEgRPړ\ʖ7R/15F`Ax?]p,%Hfա6~/ S\/+umL7ǰUW]8_G@;P#nQl)oR^ZU#|uۙOtթ IS$fig|qUu_%/i^nQEqTAiX`883YurQG,&ENJƑgRIq*+.JzÍ4pӤeq6F,_+=|uձ>둠K*mjG'U%M_q᱿,]QYheB e;#t*t]vϺ`'tUN+gRLuwJ..;G]E/pcQ_GشxR*eͯ)\kX"=ӯ躿:w]w$R JƗy>)4O|(CF,8>vNvٮ;U}Xޢ0-KS|U\(+,r8]ʯtv͒Vy#`O}J\tEo.ꌅrUzin|ey,iʟqXtx~Bʕ+exJɍ",iz|ei /K˙.tƥ#'~F7>#áO"HS,)M9 7^r%P7c|~= g!13 Y2ؒ.hQăfkKdStMT }M{3*7FLDq ᏻ׼syur{%^xBi"o] "0\L|-_!m߸Q{U><]bp lHM2MR}m"$c"7`noo׍x޶"ye_DBꫯr-]7+[}`Sq 6[U'˴k^N5F =z'fӰp<:ϐ}ko}[eI.&i|z]ixZOzMuYNO4Uu) #O^o'v=$7h ^/^{ʟ }ݣO}S{-˃ _TYi#}ZHʫNK>-/V:FyAkv1jH&W͓3] .-vL|ͳf%},b~ŧn4i2) +[V7 K)8<#0dؼ㏏b A p'{sY ispa-9;ū:°(OZ,R^Yڸy7F /6a*mޫ1xͥ^zI9tJuonځnicǎoMj+K4_z],+_V䖥KùN((Le5F c=v, C d! Snݺ:[|ɣ?~SgZWUÔ jҕ8lrFr!׿wpϾsX3`0'o>U˨jgLt7=XԐL*ɱ!>S4,&/Sq=|EeM(OQkL>_׎ ;ot 7iFPǯr>ڴ;#ЇN!ͬ9餓FVzQ! 7u_{TKСGmINS6m0]#z^1q|}{ߋ_+GM 4ZKHK{wI::Im",ӦEiT4e((L+ 'OQlF 6‘N;p증/G\sM87k? yl@Xx+&?b! (mQ /+*RIũ8՟!5Ftj&~G~z=GyNh$ېZE^ry.ڙ oD MBEu&Em( / TFg]+l;)}Y\Y87)v;# 闾s9g쿪abzWM^n9"$4aNWW5aÆ`TUg\B/K;kx64mY8+/Szq} +#&l{+^1+YZ~}B^M?ڰ 榳n\iKP[v|zu(,oYx,MYxn_#`r!CK+ ʦ-#7M Ke=eNW?>)Ie;#0 :j)?DiXݖ!Qjvnà@}چeqq=_t(GrӲIi9#0 lM69)-6sѸx_|UW]U'5$XMo- O{S9.IDinڞ4&>GʫRkOTNr^#Gf}A N4jweΝ/:va3dD ["CIyT "pFnY˖gI##F>>;S:裏V J_K CbF}kQ!3,آ#%T_(ʎ#iI_%UI[#\02d؍7V'Fkgٹ$y~vF`j&Mz].Ljv`)=iZ.A7IfR`! !&XJ ўi1IA\aJnS7=UZ,tZ#`L;gyx1nN`7=7!İ5I2ѤEyah15|5EeE᪳((EeaGnY:yq0ߺuF 3xj~ѵ16~Sm۶Pr̟|H@ bb<1*nY^yR680c9fLaf]SQAش&cmG#@;2 0B,x qYUʇ+K>W)CiQ^F ƥիWUUV Z}X7m7(vC$0:1ڎ;ƚ>Q'8B 2 ,\*|(U{ȏV@d?56ȏ[d‹:`"!>vge(2y*y[n)^ =ef:>+a&|`< }X>_QtE4B|3F`Vi_etV%5f{5dwq{{'Zkb}7tQ?Es<_ʼn@ mh T]#`! yG#WX1{+"kȒ\?q֥mTR|J+e%' ؛ֵ,H}@ `Y s(G#%}3aw>'14| O@裏Xೕܛt#n *PqnnEGb F#Y*ߛڹ6Q?c+뮻Fءa%3M?azuS"LovB܊6qB\+~k 4]!/;c Ln3Ymؓ6MiEh;"L `Y54D/W(ol %B=nc /E3l$Sn ]lGˁC, `p>{x mG@䠨fdIkAbQ*mEkbs*Y?a:sOyF2Iú= iӦA?ġA1d36NYΓ*_ P3~`hދe/ @g|Kg00oc_hpjM ;HH_xex9r6@OrsNb'$dzQŚtO1%My` "qYz¯k$Gܨ;y#Ɣnmt7}&$MR+Y!Y e@p:DgEpˈ+=[f ?. ~iy|-Aό]~ x6^g##Ҳʮ!|^y1&Ƞ 6lS ?0! UoZAGy,>AYSb_,(L!8]Y=K&a􋈑1Aߪ+%Mk[煵6<}7n8v;x QlC PI"<njR_'ҩ%=}AM$*k`I@5iu;#`#gn2ObH `vN~nRUajX" 7A8GkUs#`0rgw%OA32ɜ\ڰb#O8aάo~YZ4 |=`O3< dg LCFj0#ؗoQ]sM֬ͳd@|#ɋk:>%U ^ om0F:LP3ۯ{k^~|A6mq Y鄠SE-"0Md]BED*=B&t>-5F{D1G:fh-c-[F{©Y@`~0Y`A&,u?dr1@>/1FxEc0 6s?z䣏~/@ڔ̛X',fP?$B@;vi*CF,*̴?Y^C/\,!y睕7+" G)0m۶g챀 @/R_D~X.Z,i 6FED d?7v3f/YHa C{#ڸD~ "!*dvk2m! }!W^~4M}7n jw;lBpL˄\dIe*5V'E?LTE{c @d&EP$H!CxxQQAdvci3Z*\#``&F",h wxl_R:`N氠"Ebj9ɀlL{( kڐXDj0#`@URE]q~[b}v@GN2:kRYX  { Y"x,mrZ#`@QMBUƩ gui1O.P~6M=#P#`ƞg /|<àii;Ɖc(@1Ael,]TFXԂ#€;iI@iqO PF 2ZB`m*!fp(## |ءE>sC{--@X-_ %X+ KϡCZ&!P6?M R.3F`>`̘Yg1K-ctf/5. +S%b!hx1@}j7@Ea,HK r8F73G"s|*wlFxg'm$!8AbYeC"xXD?*|',jXRFi ;6F ;B^3|"y3k}zb<y [̎YOb9A^G5Nͦbwd 7~FA.%F_RaGط1tS gki&2Eb]G"5C&C @+ЖfzcHȋUG;@pZzx.乍Z2qRvx1C5}wH< >a_/ 1(/p0Qo*;ڵkb%Mio$dzV R#`&#Xw5$#Bqh8.'֣{y$DW`1Z&i'"ʣXg%/ll3$69 ,A{ { mNėDc%ٶedC i4le~Z[G83@X&m^4`搂b &)Zx7$qy^GYp1d!6 B0PkO P'dRdvI[ڜDlZoRxGxv%%%M162V qU>|m0fv,"-7ރ#2@n'_P/2G >"'dF]Ϣ~%yFl xaJMj [s/ 5 &i !1!hqu3`hcɠ 8AFڃ2 D2A/k\K]a/6 w^Ɲe'A8& B!z:$/&/)n̹aNd0f@$H6 PX$,_{|WU%"$RR  Z( uAWN?c[-ձ֦d@)Q ))-B"4LywBdesϽsϽ3^{s^{uq{;_k:r:Na9fJ3v|w?,G8Ǩ *) CcfC3¸3 uNtīlb 9+8唱5zĝY[7{xpPAŦm. %C^Irsi}uJ08`S踊ʡe!cJ˱μFT|ԼHT hE$ĝK:qXeQўӁCg-#Or豝,JrUoje/&: stxtDLj_a(mc D.eMLi˪㸅䑪^238LS1CH)>6IDATdN.++QN>Q[TOu !WGGmUG*>Ezs2F:TeR\*6ms#:bR:k%U,c"I'6e}k"c̊M\ ȉ'eY:KOmX/(ϕ<^l_L@Q(dxՑFxR&9,^z1Gj/YQYuJlǫ#0Tz\+6=׮]sr´ؓ3F$LJ.UfƮytc'l ;@t[#`E@sL6#P1*@ŀڜ0F{@ =vni"F@ *#`@8PsPm#`*E@p5;PnneZ,cG9nw-#0Zo> ֏֡)b|jFy=Z8=&wФ#`0(ҧ`4Fua@w0#ų suL)}8H872F`XYnjj &MPiJ<CRC|?KFC7C߯cֵ?:&Ԅ>ؚ0nrN1@F)1Z3g?6I yHqG>K,ر0F` ؍yp"PN(ۊ^쐊KeQ?m97>0o޼Zvk poA pDg %fv#_?铊Oźdrӣ.Ϟeۧzy}ʮ0F` ؆owW\ SD/uri9k,y:yrȪϒI?Mvy:iuў(7F`nv裏 q G'N^}\nmb9CZָ(OTΪS;S#`#/jsH7N<0aH8ɩ>oϢE}եOj##6i9@Dü0c={^ysH^|+ lO: j 8K/+ otl}ɣz۔mWֵ+k ԋi9+NvL0ֽ7 y-AЏte[V?kWjۮ>2o@1Tڦ >:|chr1jG%ŒT<9G)SG[^rhzeQ'/#?7!{ n喁0_vh s.OTHb}7ط~N?S#` zҤIg/j\ .?؁?)k{_E<veDYCF X~/kܹ?hx?1~+.EbKN4ft~Irv~Nur1mn^7F4pg;Fms=w;,GI(|Ze8ґvhݴ,[i۴,=S#`" <뤓N|Mnߘ6m?@ øܴ-GjOL,Y-TthYN-Knݴ)eO ZF4&Ox4Qxs'|%Vi:txK˜CsO^Yc}~sM#`@lOlݺݸ_VM CEW?藑___ghEc؎))G[On,%,,ǐ%捀0M@k|~_Yv {yvnmi Yέ:Yz%^VY2U%k&K&;F"nw'#p2 XuYg} xA,XNeycZOd-W~^T}.lD]F ӧ߆ƽ˿W<+,<q޽p¡|:g[FǦ$>:8b9fUiy#ʊ<<9meI&gQ]eF`5ӷ3`',31oyCz )('~[;vc#XWwEګCϲ%:]/*;Y2եr_ʖ0!ZZ;=߁W茌xdw[Z`SL$ϟ|I蘳w/u3v|?B9WI򜻜`ZߩhSTϺAr#`@lz6wxM7=Ej2駟 { wm8b LW}/T3u)W%u,E5<r#0)} u+H|. }N~6vӧ_ |@m葉[PgpqۆGu5o3g>m`El t0#ȿ%KG"v JηM;KG4'yJֹlf.~7rp ŧz '?> K%96Q6JQ:NNu>ڋ:JG6ctD6Ңg# bgC~Nmp VϘ1%K.}7(w.C~ raSsEu2ZFGeiڣgQґL:#`:D`%֑9ۿwcP_N;Sg}lr!E~r`J//0}wE:kCէ2ԑ((>ҍ捀0 ṅl.w@~PbiUwq0y˖-{#>辯ܰ*[ua];*c]D~kSv3F`؎ދuqի9o<ߩG Wρ|z;Mtxxpcg@ ={uԩå~'m߮M_bjX!zx֭[7X pP!4u'?O?p ſJr IPI-m^~열F}W*am>wW/}iP~_3 pg<0)0r'_mHe[4ֵ٦veHWmMyẟ|͛rߩ2@0O#8b>Dȇ sf 47nx2.so@)2T_vٕ0CJELӽfzfhFp0D'‘G|aÆ`@W]$'OA)$LOʔWV]KFtwވw}UWsn$4ht8iӦaBlm۶_@sBCܳQ"_m0[PɇkA޽{5\畜F#t0;찕Nk͚5GL24\g AYWU&eR*c@-/t"/B~o?W @oG}4_ɋyA/ɓ';D@_ ȕ4 HL2ur*S0! Gp}C__u ͡}yt"LX^ntl}" `P?4jWl_6vs/@Wf\t}_Օ%79!lBXv^YzAUf2w~Xt΍(&\O:!{t̙~~)SxYO?rix/[!x -8 y*raF4Fps g[ ge@86p"*Mzg:o:tTpУ[J@Y0ː1y|M/[pP'k ʼnw+&ڒ%K¯f`b0|D> 3 /G^ig>5(;"pP_۸A<F8;'⫅S!k=k]e݄56R%^^Ǿ/U!t=_8W^s޶QrE`ŇM:Xqg hp,Ȏ?NHēYV_N'>4SycU*X]c-x 8Vs8x~mdF˗Oٴiqv:zXdo݃7"S6yxRʲ2:>ҺN彶Ui_vc6b >Пǹբ?i|Oz<,Xh,ä㰈?ʇeuX>t_P>ZJju*}J[[3ln];c'ZRo{;FH^O,sϑ{~Nz8.(8!Q XޗYHZ]X^ǶUݒc܎<㘴؆_cD@bh Nw2F`/|&.'~ᯅә't#@LE09 G8#(;Y~5x:=ׂٟb{i׶mߎƼw#D9@Kp,o9񛡳 n^7]y啴d@8@77U#p]wMY~s'So*8C#x 8)ǀ6@r&Ū}<AHc_m]eAoa-DţGkxm讏}c[a0F#`0F#`0F#`0F#`0F#`0F#`@x3IENDB`ic05 5ARGB,[¦S$B/uXЗmQ|qlplplplhg!!T9ulqlqlqlnj11.!vslqlqlqlpBNOΓG2~t( B\rnW<UKZcgeecbcaaZSNUhsffzp^\^QtbvfZWin^WzcVUe Wļt]Wɾwgb]W˿}vqlgb]W¶{vqlgb]Y¶{nvqlgb]Usq¶{vqlgoTU¶{vrd¶©W̼‚^Wƒ¾jb]Wĺwqlgb]Wĸ{vqlgb]Y¶{vqlgb]Xz}¶R{vqlgeVU¶{vqvzc¶ô[÷ €»cXý‡½tb]X·rlgb]X{vqlgb]Y÷{vqlgb]X÷{vqlgb]÷{vqlga÷{vpl ·UKZcgeecbcaaZSNUhsffzp^\^QtbvfZWin^WzcVUe Wļt]Wɾwgb]W˿}vqlgb]W¶{vqlgb]Y¶{nvqlgb]Usq¶{vqlgoTU¶{vrd¶©W̼‚^Wƒ¾jb]Wĺwqlgb]Wĸ{vqlgb]Y¶{vqlgb]Xz}¶R{vqlgeVU¶{vqvzc¶ô[÷ €»cXý‡½tb]X·rlgb]X{vqlgb]Y÷{vqlgb]X÷{vqlgb]÷{vqlga÷{vpl ·UKZcgeecbcaaZSNUhsffzp^\^QtbvfZWin^WzcVUe Wļt]Wɾwgb]W˿}vqlgb]W¶{vqlgb]Y¶{nvqlgb]Usq¶{vqlgoTU¶{vrd¶©W̼‚^Wƒ¾jb]Wĺwqlgb]Wĸ{vqlgb]Y¶{vqlgb]Xz}¶R{vqlgeVU¶{vqvzc¶ô[÷ €»cXý‡½tb]X·rlgb]X{vqlgb]Y÷{vqlgb]X÷{vqlgb]÷{vqlga÷{vpl ·ic10cPNG  IHDR+sRGBDeXIfMM*i@IDATx%Wu[ssZV"H 6jD olfl'x=x434 $! $L0r+Ԓ:sέ^W{B]~:vuϩkJ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ &b u DouĉiҤIs;6o9Zu,JZO -vNznƍjyȆ'OM[6~geomIcAۦr+ i{ZKO~r͚5s@@A K [ne9=:gSnLs'sYdio-gt-'۶m)xklJru:-ZoK C~evk9z[m]W/; !аwg;m=vo|v!;M89uԝ6A $@@iJCͅ ԞUV-0G~91 ̉Yxq:VKƧν볇@4A" F ڷCbs=d>  D֠T@/V\9u3]jNuۦy}^ny@@4ta͖5$adwmYwqy2  p@?I[n]lZnbs0g@B eMXG% `Kئlw.lˍy}6[d%A@"n\Gz{xOP.ZeyB|F@$x4&^yZii78C n P R4 n ~ggKm)G=x˩>z9@*#F$R\:@舆#p5L3?qijԥ깷e{?1+R J h.-{}>m>}]wi? J&P2p.I o=ag˹j|2߹@pj q  M#O_~W^}R /FIi@e˖̱?zҪ|WYf2=@  Z@u|ʢ>|i  > S 8 d[z/L~MO !3 L45k_u@9U @ ?W=z5g{O zЫ109` Y~n{Uz@@gCz-_u3' ĵ (:)Z#pݏ 5@ jQ7/@n<Ƅ^l/ٗqמA@YY[No&&\k>h :@R@7o:Ӟ|;>շџ`@(H$ ,a{3Ţ.J PUʄ"}<{ /'U 'A#Ȁ'mZז=z$@A@Y0 85FL辜 ,"& 1qkS5Ԍ@ s!P7f$|iٯ^K,Ϩ[] 'vs5^˩@pw3  (@9 '`,|_=o0g |ݩY`1 P"R&$p5̞0a/G_M$4)S{`Ol|ӥ>O=|dž|zbM @8%ζq2oܳJ@(hDE'͞jm}6^AH 4NiUV-kG:Ֆg5ͩ^^tR @ L:k׮+ܹ3 Lj@z5ŷ,i]wyshF57톀Mww9 _iyeR4sB=d_>k; " %ر#پ}{p}f΁i4r%&yL&Jy#rʩS97[ά]%0x&s^Kwջ+F0@FMDYa@Ұ$M{;l&}R MjAo\j^ozika8F2eJ`}9ʚ]@臀 Pmۖ`˖-iu8f*@:omZc~ ݾܿ&y)3oh$+.\:ƯI :PThgE ($' 67M Ibr$#Lu]wMvYVg Wn% g_νի% @hE h(L:V U - &9@ju}E-_jYkpTX '(ОK [-k.^d va"0>N.{3,_|Iz/geA" Q@C|AE 3RM u<}&p_pq H`@^f׬ҟWJ @ ٓ 6[✍ @%q2:@cXzvuvsM{ïf&[Ufï<44`@ tE@.h,0&Mvr]whh4F7˕{3f%ۢ,CL: @@O=TO&˱osuO]P.rXBlbYe[-Է&Y>sK?xw1J @H`˖-O<<ݻ;y9z}΂iҔr#G￱)rWXN|D$@ ph =Xsp ǒg&wܡa$0 `jWe27ٳS_=˖-U}6B d'ܸqcȦVa^WDE⎿9lu`yQ6 @(={( Gӧ&N/mx>4@Mjժy6yoVّW p® @ صkȜ[n_g&gb\*@ȭ3m6+bũ袋E @;֮]/;jCd„ _23*v;h6]GYm|vǣT䬳J.t&k@SE@ 0sz!>hrС1Έ{ oQßhR"j믿JsrSUlCtґiӦt>C 4''78=iuwƀ/s4oo:}UA/Əx!'A &8|p 1:&-k"3_K]e &{k_ˌ @18vX&?V=Oobu@9]oNf̘QI@ ,),`d nUV-1MgL.u~ӦM+ C @$hh~m-vljP 믿J]bY)hU~_~ybyv].@ &p!@C"#`u~"-[lyrA(X IVX\2={viB @k@5/i/}~{B7@-dnV\t%ŽUJd…\B @${;N'@rg ? {‡m54V&#\Ԋs,J?JE!@ l޼9<Xan=DȩdwXqs*bfΜ-oI^% 'A @axgo}[ɶm@h6ڇUwMv7tf5=*)B]qZ'A @!`<|߯No[69'C>" VݠɊ- . yߞ@ ԗ& wuO㿶f͚m,q9"[2ahh(y;ߙկ|N @$ /$_גM6i`VِN<&p@Z[&9rӶCY!W^ye710aBLF@ @GY  @#0䢋.Jnݚe@&Xzް^uQ "6bNs6׼&YjU2{ (@ @ \Ӊ7nNZ$A~f cW mvIa;W_}uַ5Q?  @@?E|Yg%K,I4I)sLh.쀽` x-n߰MӲ9ȏޗs9AڇQ @@ %^xaaÆZ%ɓc/po׏xy#dXtMOYg?'  @@|H^ /Yt!eiC{;/#&|DP(F4mޮo|k&4iRb @ PSP'6<:_ Ya2`? D07|\se+h/wɕW^,]S@@ @`K.Mz_H'׿ϛp \$g+k+Cn`nl&A @;wnu%G 6'8ޔv-ٸ 6߿4^2.7cƌ@t"C @ȉׯ_|8lڴjSFi4` x__=? [negݙո!6^e5rhh(yߟL<9D  @i&LXurg/ G'=G>0ʶQu]S}|߬Y1z  @@hb"CLФB $?6R}Jޗ𪿠c @ L2%hVfI/Ԝa׿En,hMٖ,XS9 @@PѬH-W$aG?zfh6mO#㓬?Q4~;ޑ}9 @#a_l;5mbg`5-˖-%  . Yreq @ ''OL6l9_|cjG4Sq`z!s+i) @@u/_l޼9ٽ{wuFS7_xcڵGݦXZP 7|3߉ A @N@CC6 Mg  2j`ժoֈo{ےyf@ @ȕ:2('묳{.*Z4/aQ ax96G> m"9_BKϱ})  @?K.$}?mQ|.`Μ9cǎ g-@ @ gyf244P{>l](#:ɓ72^w*@ @P\G? NKfm-5G) bŊ: @ @p!nm:_s?s *e:mSNM,YҺ @ `mɂ ۷CQ 6-ȆV>F !-[Bhl @%pg$hǏ2G6DpU//_A @ G@~CɞWs)w}[rlC-ZTnKr5@ @5#0dĉI|ԢU0#ۛ ^oĠ.~ڽ;+`ҤIxڋ"!@ DC@az]ak B͛oL @# iϞ=Η Ѥh"0G 5kV47 @ P$OL. ;B(-ĉ ƙ1cF<@ @" ]{Z ;fLgrL>\@ @Q6mZ0@k}{7κ;="ED$@ @&Qŗkd)Sc$#lƒPn$@ @^/nrN)׊U5!@ O@S(\;XfpuMOiT(UP @@ p`"r-IޢV^=IǏ6C @(@E' ~Wr.lDž"=ztk@ @Nȑ#DM%Y:t(B66e_A @%OtNnۢ ԣ U!@ Ԃ&Tg#Ĝ;Vy{8p D&@ @}\n!Dj] 6P-@7D3gZC @zC{nPƎٳ گ)*@ A`iMx[TӃ?®]e˖?A @$ )N+4 `ʑMJbO7C @蕀Gz^7mnQ 'NL&O!_jp&eB @5ߦ7 ߿?˷mۆDK` @ K!8"!ɓ!ݞ"DG@o-P3IN0AI @ `}`P:9BQtS ɒ%KnGʇ @ P.ۡn A N<&M b5֭[ŋ3 w)B @QزeK0>B8NNPEg̘Hڹsg2o޼Nmv@ @!p{ ޽,Z $gP07xcY( @ G8cǎeP:@5G̟?v\@ @P:kC4i#hJRP4 @A @H@cCq_~Z^ZԩS^(MtRg @@c(L'zk[RzڧM9r$ܽ{w2<qDY\^s]A @j@@dW_.i|S*!&M  @ S!u1\&P&n @ ԙB5ߙرT)S"ϡ @ ԑ\kҿ&`K\k׮ R(%hPD"3 @ :yD3쇘dۮ]B4T% & ۋb?M8@ @9Bu4RP@C.!}a  @ Ўu^<Ӽ4RPP"s  @\ @ NСC\uJS 6^P#>lm6])$@ @TKnݚhI>!XmܸqɌ3ݻw㹽,!@ zعsg}S2hߟ0ZVyW?>;wn:ԭӁR;.\LHV@ C(d!Ϟ=u02ȠWٳ>;J MX fV!@ x'HVn@Kh}hyy%guVJ8 A @ȃ&Lz_ƍm$~M̙̚5+}}fZR®]H Ы I @z% B멕/?Gu0ZL ,H.d:ؚRʗl&A @腀BOXqL}K#J=GP . YhQB ?; @ oy P$|}`K8SA@ -AZ{ @ 9[lIԁ!rCN붷=v1W= PDyЄ9c @ 8Z\!J\$?1}6@ऌm߾-[Ѐt$@ A@yu; ~~ c41h  9|B_Оv@ N@~} 6o뽄j0{キ6&VlNۣ0 CCCo<#`Ed8В6^mʔ)%]@ @U~|С*c +ȉ=6T3suL zkm߶mۨhF߇kn9k֬T8 @:Foݺ5yk7\!mI@r̙3D@IDAT'@j̊T_(@BĀ&1 @ t&_7=c=ֹ@^:={v1c%9 x+"@Nxp {$PLٮW @ P_umC!&O`@RԻ/Y}".;mڴd-|"4ǁ 0 @("|YT)]gcَ0._βҫ7)`,gYӧOOrׯy8t R_viӦ4@N4l @I@ѹ8\aUt ]Q =PZ"ʧs{! p4@BnnpkE$n0q" ʹ @D F_uUfgt'Vl[wz:E hA80gΜ4< R2&$pHD$@ @`pr5_T(_9z 啀P k Ѝr Ho!Ys}x%K/MDhv+ %L2s@ DE@C} !WH@(r%@"<]4p**@_e% $n~P ",\ @bv6"cU2YGțh:=9ɚ_!>$@*Xޡ95MnR5,@Q h @! _y gؒ㏧@c{!jrĕ;!@"@iGj"Be}e["Y  @H҈`E9=֤=裥QeBȓe s<@Eb ,CBP @D@zWcMp^n]aÆXٕQ/2(g| lUo=7Nd8jhBY$(I4'L @@goe=ǜ믐 0 T.r"z5tMWT4W QBJ]K 4,@Q9[% @@,y#O?ty^AXN+G_QB+,W^xq}}Q-@< @ @@ ^eEVJ>' ׬x} [U_ R,XqzSG(|FBA $Ph@t eE?hh`x@-5 @ gzun/b$"S6 @@ND`݅$NK\ . @/_ϗnjRG_TTe }^C˙ @Tz"K*"u}N @@;ªg9Uvm}g#P뾮$V_LP/hI5IK!(%5lr1$(@yʔ)iT"7[A A@ݖ/b3Ϥ5Ew@O{$Y{M`(PxS(+dɒ^QR-e2i `ֻ @ ^zlU&cV2qFIʙ${M`j8e}IDE={4K/Q$(3y`Q) TK~E0jtuw5_Q!N'p:`TΟ?Px ]θ8P} 0"T/@bN @xY_HϽ~+ӿqFĐQEfͫ^m۶w.@#BBT… b ޢx*@Yο0S. @ȗ&Ï:Wә4y @M[_xQF%I(*I a۷oOH PEQ\@ ѹWosA@!֐^ֈP5ŋY_&"ŀb|@k|a: @4LTϭ광SK:t0Χ[j~(<^5އB_R CM>g@S?4JO H @@1*_ϨZvgyk?:sj94BI V_2c-[: P.ZPD 0@ @:/r. luRV96!Zba{9sy^  /_9tR .V][*U Լ'ٖSPw"CUxDPv{o}Te)K|P;*D\ qsK0Դt@c\PY[lI6oޜFq8!БaǢQ%@4SU@@4\ r׳ ipۯ )p)%tG;NQ%\_:rntW*C׭cT_=/h'SL>2emZf= @3Qe1ͷ ԡml);q(9R%i,:yd 8z"'\7 xdeE&(ixn@=N=,zNP\={׵3^ıv4щ|TG d1f,aNP_paVP*^"qGEHp;@@E$zUo=oWL$Ե{ݳHh~e: R6x3he }V ! % =bQZ%P!@|:EN.-zݾ}{ۯg0B#ZTd~v1^rH rũȀҊvDJ* xfQ. hA!~}  F@޳N~I3_C]^q$ !$"EY:Cz#ʳ@ohEkWfxڵ5AhjwYo uJ KqOgU#9,g0 O X $g,%~wޯub!KKX9!ExUTΘ1#>y`lb@/NldwhIʸrVQ[yJ @M =r%zv3zCt VՑ@["~ʱS4@ 즺r0=^N Y'rB?F=iV=5Dŀ$"y8lG v_,!@g%9޻ݜ1s~e @s~ =!*{g͚Kx1%HɅ5m$@@H$ĻsxBCj9ڳbk|xMK6ȅ27@JIvBc5g}EPTWڪk]٭lR;~Rìj~߇ m9ӧOOĀld@zt7',\ Jd6eMh$ d)@:wC,cl =ڙ&@hrTw9R.'IE,X _ʰrݜnx!9|2ApNuaU_ 1KPZ>C@u98.4Eïڳzu PVJ GNIv+ϝ;w\a[R]͛fM u.0ZMr=j. dI@$g|}vG" _jrޟ@{Oaz::U/|r=x9֏XnjP]SD[oq Z}Z?>C=̿0>j{Yjk =Yqd+QHˡk:T@αrLq}>7]T?",{@B@V(Z@~\:(8J=gw F'P_Ϭ:sfII*7?ab6*044:AsSjWAbB-:+NBc@ L-w;Y3=oDeN aEʰ ݴgыqR9Vz`=Hh]F!$hjCCНOWUgCRd(U +4ݻe:CmCJ8괞uذj5M%bEo[Իzו@][.bp+H/Ô} )֏c(AHy)=tH#{OmZB/;_Kp KSk9Nw 4[3ʑ+)J~}줊$( b{s^RYA@\BC'cnˮ{Y}uO;֪_vo~/u, hO@'z.p_N{fl@Lbj͈)E(R\ 2(9\zŤpZ}9zQ/r/z:?]`זp0Z ˖scbco5C@~WaU "[Fz@/E(%dsN< "bg&BDֳ4X:oW/|[='ֹPOcL%044VDKD[:A? :˟}ʮ׿ȃ@)R(,\)6mZ̙^E=hxQa:'tQ@)UM,!@YwXξ~>N~j A J #Zah{.X['ÈE UVQ@Că@~c*gchPA iRFࢇNNЃG qaX@JzIw$ʬV@m\"ԯډjG=!G6eL#$|>խ5R18u =EwObjgr$ |8RJQ,jEj+knOC?ihzE \XB@} %&]>8mc,@ Խ5% a_Kpq<,& 0-H p :%f &@hRk׬h֬r27/R"J]zȊ%b(:K|ZJ`,!C@=~s <\ ) nphZ[ǥ"$|^HZWvcY ĝ|d}/Y'3:^CyT= > {h=+r2b!!>lBV}\K {Qk<7@'ȰrW6@=&MJzҳIzk>f y]uIe$r} @~vul9#Ku@)5'?5l^tEK>@g=4zsBݖF0gΜ3FPԐu6(&C@(7@/86//E-\煺$ 1к> wo;vGu-ׁ Љ@'2l?7ݟz(C=\ҏh7@F;A;VCp޿#mZv^= c  @ q:~Og– ȁHК?@ BڽQT\҅4iuD%ݘi{!@?qPd.Q:9omg=(g?v-CJCFi-^{PY0@[Y#NzZWֺYmJL?Eܠc <ww;ݮYg!hi_a; @ȓ@4)+w<,玔!P:9Js]fz;Ƕ:يi_۳c ԁ@Z6vz o0\n:~cǸ)mvN|!@ h<<9J=liR܏i]?Ǘnݶcױ$@ TX0 c1a@n:4ҋBuϾ~f:߷yyeu?ei;  @5Km*C%L^}1mXB @ 㫸(ׄ@NTp @ Nt&l @@SƍאRM@ @hZ׬5kE @@[m1v@ @u'P~8`` @@.rH!E@(.e@h%g@ X Ғ ƥj @@iJCͅ%/9P@ :@C+5F%Wd\ @4B@ ԡ @PR P*n.@ DJ ҆Z1fu! 6B@  ǍJ$P"l. p@ J ֖^5f PFD@  􅍓$P&m@ J ֖^5f B@  !@"6N*@ @@bN@+I @ DoF!,Xp7.@)x>@ Ã@Bx~D!5*!8@* `@Ǻ䡱`= Գj5@][!@@1(력@U @hGR(j4 #@@u2 @ճYlP  MQ4# @u8ZE'߿oPMnR;Էus>Ǵ'PCm}-1-[Gp,!@@c |.ƚG'/Tbl&ש6w)s7KuZ~~rӫ=@ PKg͚ZZ> Z3F[F ΝǨAf*WE}ygeQX @#[oXՎRx>kjch<]ݶv=ݶ~-{I~^v۲]rz9 @־*zasǮU+dg3A k RF2%9 Ԗ~s{֏ax|[mqd;b]ŲSt=)ڏSZ~e^yԭr @@#菫8 >l3l]:J.@b2|{)Z^-My%[Bi0 @֮X⫵KT{?mqK8v;q^DePO<ΰs[Z @g>GIBt 6ݨv8jh;^z]@ G?}Ǩݏ [D7XmZ9)92~sɯes:OYl @{Z+zo^k\5!P#׫-^ ɖv[:.Ѳ5Z'>C D~z74G5 sk5\gwFsϏo ۼί:eX|΃ @hjcE)ё#GL8Be9:_!\/.]d|Ql-\o  @AggΜσ0"#+P7 ,I\$d(3!(J8,HaQ%)Q.G .lj٥** JDHTU Q$ EZ,bX,wE7WLOϧfOxʸ6{H 8"'#)VoK̪m$ @(쿏|86 m)9Yx~E?-b=0͇ئ_cYWqyu5ooym  @7Y~7#4i[oY~#xfJ$O1":4zXdUݟu+o]t&/ @@|St#:y+'?P7#`F^ʪWiL>45/Oy]7X"z܃ @!lӿ8dɒgF| 2MҖs :iǒ?LLy2[՗ @9/8qG~F ?/'O|#jUZɪ*̱b~h>U39 @68>:*$챉>^.{[3,V77Vz];;LY,] qE(Uuz_\- dT> @@֟{63o]׾{ʻ[YO=#uh3ívѽbڐ}[^Ⱥ!(n4m @?e=\p:U&5vؑfXv^{zY=ʮuMt*KLws2y39uqӷ=2|S_ŭzN*܇ @蟀wǏM++}ƍ?Oi馛.Φj =_TmuTv˲CXԋڮS- @C^yYfݲsΏKNz>;eY=쳳۷]΋{eƔo]3Oͫokӵ}{nvݕ+ah@1L @ Ј@{n[&9î߽{?0kO9c`M%~EV]T/}K}kpGAQ6>/K]M2獛s@ v3im꜅NiSmײOUYY5J=0h9i @`e3&9Y_;=9߿2k_ΎZ׃%'orTnoG]'իYVwGYeu ! @`H/N/Gdayv|;\fJj^ fui) lJ! 7+6kOP"پURuߧ>]€Ȃ @_g& O9ve{ܗ9&v ٣>~N3i+|xL[]cO]|ʊ DɓȿoueNR7_&5./^x%\2Ӯ hc7+^lUsyN=7}1ݢ{Ųmz#nEUWʲs@ ך6AdGd}kl`;m=ϤfYFh{oFy C; Rk{H*:P6 @^yƿ$ BdJ)z}ZছnҨ賁80g?;ӌB?dHcd˴} @@ߩWu*ĉ# 3: i8SFk}Fw&97N*ʶr}>eUa~eK5> @?Zy[Ee}J< ~e֠?Q5i"{OC.oK磝}C) @u :z׵_uuJ!$Y#lXodlgW)Piڰ3(woyw &)>VO>d՟t @_3Cg9&?xm6?䓳|3Uʩ2|e`C/+3kV﮺UIںq @`8i_}SV߿뮻 Y^Lw,YȀZOmx}јzTv?PgQbEĹ@Дi^- Mޒ*S7߼3zu%ó.h9"r̨X+f]ާzf(|6,4U39bb҅e MdJ.Mֈ @PL#Ǐϗ+L*ױ+.}/Lާ >ftU}{٧?iT x_M 2U|([ftշ(&5I;|9 @ pєgM~Ҭ'|v~9dg|CZߗ! rfi9uf7nqGz+akfCxNɡ:\uN[~7{({=wNIPGbu(s\fTQ> @hO@F6Sk?|+~ {@IDATݻ?nRSYѴi&6:=\cMg2:J+w%>|~v^LS6ei@ Ќn?v~|3RK>~fҒ`ٲeWXkvsٹ;;N3 1Uo&J?KW&i> @@x_~K/ip4;udvyp% >>To-qdl~ˀ)sv`c_o3~op) a̫a/r0)iȸo'}Z\U5n:&m @@;ꏿ}|OnHg_K_R;r7}W{I .;,4wk*P=tr A3 uCҹiZuINUr?nuv h}M6UU9կ n dUV?1Dr=Wʐꪫf+Wt#5+34;U9'&oI^6&UmZWҵՅ*܇ @gЮy{fzk~m̀9}n$˓Ԗ-[n%΍|;XpŖ-0`>:1M86Ikc$mLuD@ 04 /0__gTv#e5i2+I&ic_W0!- @*MH6kӇsEO'twqxεџ&57+cp.gRpB̐[ĦN؛j)dmhIBo i!@޺+fߝVwK_fû zLv֭+s>nM_bo<. F$ԧZ-JTErtM^m4C[m5э @ w{~ц۷offVI[:'O迪, \zQ[¯KOp={M1<<ذaC MSQ!!WEVo7]dr]:52}zYc$ @ޮ6k#Z P0c\)(UdW_}g$Yv,0nd萑bvg8$#ӣ/8kGz&[V}QӶ^שcY @`:^;{ދM>۷/V8bly+cC6Ε'F׮yTWѹ`FS]M3v9ƥmH~|[&  zF k׮i36)}H&7L٫f\2pm1k,T:FwuҦʪkaW9WYu_Iȇ @}Tjz(8Smz'_bh=@7=VeЛ!W/1yMoyi۔&[]]8 @X|ynkACOr%%]}Rr9􏝚#'g3KKiT.ZVk]]_ʃ @hWM׮CVG-9ŖZV턵wuךO~򓇝k=MXXA֡;oAWf^QWڳ.+ϢZfy6%7 @35?6E_6za#dahXdշ,]/Ӊk @`H[l]s5]v[6e?I?lzn kFi6#@4&% eu0í1oiz,Ϋ _s_R}(׎ @ ,/|_#c 19caYgeШ2+Mu%߭cCo<)e^@D@;_qzۆuZHS,\Y@e_@cyh^y啡Px)W'NKDƝk@6-!G.OY>A @A`ƍ%Dc Xl9BŐq 9~:o0^2`3xl[_Vnndk @ iwؑO߼ys"zy{M*T;1Xkޤ"s&@u?`:C|,34+@u 6F}ȫ#Q& @ \p/|vWVHf@:&)ZPCO Hacfqa3GAp!:~]a2ohǗryQߦ}jZ6!@<Sn۶-7/(y~X,fX7_R1x_5kCKiìא۰]+cQ:_|ɑߢ @(Ц~^ziߪUɼXO+_/&?Çh&0gY 'fb ֥ܶ2 ÕmR=wꞧZ_@@:ԏݺuknkKvLTd7`Y C]rXQ S i fqgqvj2n}BOnBu !ʕmD:XݜzHXGG9i^Q~2.bV@Q/ߟͨ w3MT !Se[U빜J]fKy ;~m7"7-+ Xl8 frԍv-6eԡ='@kVƷFm/s{/MWWvt!䆐Bf @`ھ.hv%}x沗'e1l(H X {'XZC{M 6b2z壎G|~ rh@sԩ 6]HqgxbXeUμc?^\ @ٺcǎ߾}~*d NO/Ishr,;88p i0l@kC9=G(ai}1/ut|9:rZ2e =!@[lɍ~F.k)$RJ#wk׮]SxQF-ІrPg@3npM!eTd},]L\{lA d/рUZ5W^x!TC\䒒u4C-}Ih;9rt=~њWut r[z3Mm,ʰ8dY&ϲLC9 @qPQ;kvǴjۧthFcYI^.ft/^h pgT$irn&֭[,2DV61 @MuּsZQ:~ b^dzSTB5'NƍsQjĊV63@Xsatu %ܾu˙w>Oǩ]wL Ж6_woK<h5^՗.S :d8sG]3 }8\gIsƀ[]FCwEKV= @@Zm۶|=boJ=&Ǧ4_u҈vt%hj6Xn],*% Цzl@/8~8Lyz.8 @`zVZ?T?qzdF1MKmW8YŶtڻwon!h g~饗C_4z C!_mZ\?gW|]( ۰aL6[fM~ Wg=C)|HLŴ*yʐ!)Z#'I 'M6FݵDBvs=HݦZI噔@_,z 퐹zCd!cŊ3#ҍC@ ] ״~W߈_~9?Z=cQI7I9WSl&@߰giԘy[. X~0X{,.-/1 @~ h棌|27FiZҬYn_-&=?J29Hk'wRTkd$PЬf(iP/|K_1ס1ub@ cƾM_b;iϮGyd: RQI:DI=ypB~Cѣ!碌d@teK~Pkzx>~ @ш ~;6a4?׿|iٵ@Ke%PAdj#9´gȘ9y!c 2]C\}82!@}6_%KT"%+Tٳ>BL :b 2V͓'OuD~YΥ:YS@S:Kn}8Lb@ Ȱ618L-C]N9hvF g@'y8O^z|&^B(uj1Ŗ~pOus` 04j@#6_?CL(9b'+_aF@<4Әzf*hcEPF@KZt:t(-OoshKJ!PUy枻r@5SC,I @P@FHO+̉>kd=裏Szjzӫ:D.SN cٺuk:I8YrA_)gb]Zp sٌ]12Gg@o}?Sciq>6y4#gϞ3 n 죽{Fo[O-O`ݿKsa-l- s=o΢/zS8S@Cѕ4!@h٪٨bLoǓ\7afucе0p8\YK/44Fyۼy3H#K&?谠N9!0&FJ0I @ ՈիOcO*m3z]1^=CX04G#/k .Q|&Z }dE%p7͔ih@#S17, @`ZnQ}6_-%@`(h__?{gp6|_/kIR@#1xi U?I@rB7TE9 pN L~dW_MƾuȑN@,4ȣК=~WǠn: xQ-eΝC@=`9-F֜roáXr (6,@ Ș6oFdK9|pgY} ΏtPnxG Zuz7b r^urTLL-.Mh)WZ,m,`=e¤ 0m Q|W,ߓi?)^{7iԿSu6']hPim۶m+MW/lF@,oe4i66fhp|R^Ϲf S<3QQv_Φގ]AcRSo> Gu|f* ZS `΁Yt{ '=Dz{gcx0^C3-V?hlAU`%t'!C*@4L34.o Ui\  x?:r((k)i I@ߧ71oF~gLf|@2 e?ph#;vWuZ6'y 5:e#/rP,&uf#%>/.$`ƽ˨׹}OǏڳ$-Ux衇fG䴋в}NE!@8|pWnȠ@H6 !ul9 A Pj:$GtO[0Ye7Y p".@w}`)v*^tM9 .}WȨ7^ƻ}.MѬɱ={̾oo ؐ8l^7杈&u!- `њ\)P}o/m,"gm` K`Ѭ7]ٹ9bs e2s5ʛ^Өd &7 y AO=[V2uKR6GN A$k>Ь}}QPSwʂ& ɗe$a`^}.^/we*9=}.*Qu;W~3\b'@~gdoAD/mV=sI>!dz0+PErWŖHf(AeL})^znݺg 3CtLn9-p?5~}]7Y_ivnLsv^w wC3oZo<{Gf]gHkeزZ;oNur9<^>w2=@3Y}QP^I}I0!kJQ׈Zq hhPFX6wOhk{=?|v_D2e$k&@zۤO 4+@pgh6F"@ @ol?E_u+/2qօYz 7'M fw^7dm:42/G}YZ b @L@kϰ ꨍd"ghBV=8}ie˖j/# @@dO}< z~ߘi!>8znyOMl&a `մY7oΧ+}}ٽ CjV9B(2 @ '5ÿ%}-K}}s/s4Zm۶3k c|S@YtW ڬٓX6:WjV@ YֿJp .[nͧƻj6/f^8PӓBKEGf OKs@ 1 6Ө?x^)7:ek92ݠ rl;vN-[ Bw9#ToD"dȆ @@4!-ݧd<={$a`޽{g6m\,m45 E 6= 7M߾r ֭[W6 ԗӔ|CzjVѬ⒉R`\ @BA]"ꩧpp ǾdRY~L#Šk "jꍜZC:HoMD WY6r!@ O~FS_YK3̞|IֿI pD؊. gƍN,Gk$\#Z4T%]"r A{hyf9MB @"Z:~k-oMmV)8"me}hý͛7/ _eחԐIk׮["+dЗ r΀ԑ @!4[<5"e4 ]5^ {(kex.О_@ș 0gL @ ~f\OdB⍵S @䭭/#94@UAmҧX-i91t_fO\[C h ҩ{a =8FڷolÆ vݍ' k5SAoԫMw GbI@ 0.K?lF,!)jg 9`2dk[6~y.Mϧ'i} WȻ1sk;vO9З{ ϱ!)# #~m@]r &@0# /d7 6#]#@rZC 8k  @+fmbs'?sa9!bŌЗ߁З\cuHwx2еD@34+"d @ Zkذn1[ѯ_jwq$h vdjI2%,[,7je%AEW+#\֭[s}L@{IeX9bg @ hڌ~L/T>^%0+"8=}ھ2BMuױjժ%c΀-[#rhތ\ ZX, @`4~3P\C^H'},}h_իW֬YTMk<ʐ˴,w2#tCFZZa`v@hȇ @ 6ʯ7k-M}ynz8S2:5Æ :uźk+GdtkV;3@T^T;@x'  M@D'ZGBsٽ8M#G9\o[{Y2\d/1wf~l'T;@6,ӄ PIƾ:YKh'm-9H[jh ` Ư_>?TGKkfRP rؘE1k-b@&Q}PZ~ n-}?n,ɽ|m2t۾*p\re~uVzYc(gЗ{ՠ gf % @}PFY&߻woHb8I]@#! S:d@3k]9,Ƈ@'ٟ(0c_])7V_ֱش0.-w}A*~З!q=ر#Yrw`?Vb l61 @`4}3/-RX۷zT{m9U8%֔|@$X Ot=>{7#l۶m.Ƃ 3^ 5uΈsm>֒oVǟМY9fXbj݌f{Ǭ<)xRK}:uhƂ9f4S} O@Lw_}%B_g5گc"`LՓq rF׮];$e/Y)xVݽԴ:b8ojshY: 2@?Z)f+IMh JFFWS)hM41H-/92 20ܰad+czӦMwf hVS@ua! ,&' K@NgN[0;tP.\bD@?F2jI4B{1Pqv[2ɠ9oM9 @`([wFew3eAT C0t |a6Lm 43@z)yiЯt`޹f1ꠙ9G 0v-4c_)1;__o%c_FHT[6@Qի VSSa3 HifzZ*?Au&l@uӂ#Gg!b@3c_ǐԯUG ,'#Ia`Asl޼2T&^ۧzLubu>bYN ns 93A P\=9 iQoeix\5h3O?@Gke$k悖 ȁa{W;h hfq3Q[ seF|+~փ"܏4_6)0PwkJ؃;3@;ܜRGK6hu`43@?r #}3_*k3\RC@ Dg֤6HPwʟ5x _{Imp @T}R1@ԡCo)NCjOèiCv9t91=:k }f,cLm}WҮ1:@@ 2 cyA > 2 IjAT_ 3@RꥣP{)`;==@[@[䋓X[RdjrɓjydY#@τ9BNeĸ@}{gtѯNSppc䌀- @dRGutHu?@ȹꝺC@uu9K fsr8 0e]fcMɰ6~kS[Mp I"eK[#2e8HJ)::ya3@SYfFh;s@?جf@] 0]-w z^4ҡE7DZ"!>C/~y"mymYקњ3XƱ:>)[GG?HI@Se 0ƷԬfLӾ~\8N0^S]2`[z@\5KfS$C4@/9kͰw zn2ZD{K@XHC@ )w3A׌bБC@uugFuWg@3'MV='rA$CL̛!_i< kgL}}OI9"EGB?2P4}\7n̫b}N5Xݵ!)=tjdEGC98DP{8 B!P;ZR7^WL@(zd[}:6 EC`Z֖fH @@?Em2834Cf(2Eg9 % B{:Bs>+Apg.݌{ϖ~ /b/ Є߈'f:lFL,G[.:w=ݢ3D`:b0qRDsr,siiP0b$3͠/5IaSS-@`p&~lgѴf͚PgQd!/|H͐i)ϐ8iF0 0L5{D@ϫr{ngASM V_lo#@'`md ׬rF:2[pד8T2lـ#`u\lx45>)X#vٍ-u0 ?3 >=o{lYgq.?ݷL @nێfk>&f4C@:OLX~}PzXSu{bͥg܌3\gقAs&+i޼y-[]kfQw߽nj;L;uZtv.ҍ{|9ʋߏ9_ w 0LT~5F?WZ*gAfsAƒ.Â;ڡv&0F"- 0ޙ_u!Z2!qZTFmsA-PH 18*QAE(HrC@:DO [2q&@IDATӟ -m, qH0vg lڴ)9Dԁ& qⳘߨqZB 8bht@X|y)8!"9Թ)@EȾ[&. !*8q0AtuB<4Zn Z řťjSbO  kȾhe hC7_ЎPiŷ虵Nbh ہG% "BFp#O(ȅDAi*sJlmis@:@vRp 4cfHh @ ]mw~6c_Ssۊ ^&STdCE\ǀ۾A3S e\:b oꏯFh J@-@\1Pd ;O35) '6Tl TCM2#_q*Mҥt@8L`–L&5s)sutc!UWT7s s@N !`Ng}fj1u? oBkJjH`\꒼&?,Qbæf͚UVr s]OW@={XFYZjR pxʼn0Isl@2mvmْ%Kf+W(c[7!! 5\qY TH%? 6@UcFM{lHAs Xli,b[6QU=l3 =:f@o "#0F+2S(>sT`:vxLl鯩pg @c3lƾw,z E4~Od r\ u<63_@uU9 ǀ{n63 /Ӝn |ۆhٽq荖 yU|r *v;:CZƊ@{ ,_C`;GC:wcnx' @ 8h(!@ &E@v+SQw힛(́)0PLwf؛!6UX%E} @hƋ=#l5$PX@?{kv-6#,+N01kl*5LAs׸J7/,7/!@ ~8ojHcMO(kv躂}vl 1aY3@0Gbsus1izC&`uf& 09E-_hb{=l#A1}]Qt $gEF`^G225Q@)}{3uMvF| +Hi¼ei@V{tdGd( q3\v^Lk]+) +{e@0 ף @7f@  J@6Zsykb}4.yXY @`8N Љ蕀5Zٍ w螥+=e2\ @Z&VyĪIu Љ fl{MgKcٍs嵴V;W> ΋y-=1 @?8DR@<"!ЈG{&睛ޗkvƖvQ\ޮ);-wWub@ 06j(*{j)s)h>\ @"A FԠPdhT]dB 8w25$6fsΨGy@ #`GA@̀ @@p$ЈTGX"  @ .8j)`@1@  D@)8X"  @ .8j)PG@ @- h l kJ͘S@ *lBPc*8FH@ ЊV'}Ҧ,@ @ U8Rmل AU0FBE@ VpF> 6e @HT[6zH1  @ 0p%E:"2 @b$ VA380!@#`0\H@ #1 :A8@ @O8MY @p dÿr?< @f s#b8_8D @H@2f'OOࡢ  @ l@Xd*V' m32 6JICfԚ t'qtO=F&U1FH! @hB@Z}(O8MY8x @\=yI,8O!}>p @K`ҥO-?)9􇍒$Oڔ @ k_~^OSr0`ԏbq,]pc$@ O9@Ufd$ZJP @@X߯l+#yh8n_̔]S_[1 @He.:_u ZգJ  d @8blˏ|#G3nԝO㮻6HhK b{uW]sӖ]sp@ x >z!.JTcn](v-3]tpIq@&Kx[)>%jRj׈4#ovӸ8_LxŹ[]s.FCm $Gg5j&jtSz<ߪkuug>+עk 暌EϘ @@g_g Hj@SߤhD N*W`J .ӹ$`L?] wTYv5}& @$OI98YGs5y@E/*׭<vML]S4hJ @ 9ۓZsd @jD}u.^_LNV8D(_vg&ߧLdA @/89?a @K aV'禷kn⽘?ϫO(up[ebKs@ 09޸?Z':?bcMNeFZe "N.]̺iLP]~] @5?^̨k0Ggސ0\@(tQ-C=+*]}v&X2HC IDN Ѭ$FzZ^Bi.I!@tdgOZd˗/Tnja5qCuzk]ey">C I8tdutMfדxL'P2cZS>d4-3dz1Y>%(n,_< @K{s):Y6܀?Ƣk^[qFV<0 @`24^ۤw}c 7T'#*!W'moˬm2&޼kGq&O]٤ @5Ow}{F]'P-[dѡ,H9&[3kMcE,ۜmoKYhӺ @$e}>Nio>57B h]cѥm򶩷QRH!F3mʫWtE,_ϖJE2Bk !@G7玍OvO 4vodѿo\1hj5M_W\'4M_GXXݛky_VVGcNp=qj)q62Cak{]?D?[&: @w{3I9ʷr#YwlW 53BU%Pzϓk1~5BnɝW}f#u@ 0jod{u-:(?IxzWw`Gֈ >U>ٴ,W*k~_@ @ ~;Hɑ:YgK~2-P@C m#`1Of2Urʴmچ< @QEaMp7ߖz`M 45Κ_OY|L~L#A @ Dʿ>'Q@ܲ_΢ɽ3M*&i>eɟwUS0b)6V11B@ # ԥs& po t5*'bDU1_Y@V+ @&;3kGqzNzCUQ2uVɪoeUKչ}rze 9 @%6QjHi~8>y ֈ@ > >& U̪WU*Ut_ @ U`?ˌj C.[ p$|W99M@WMkϭΊn( t'~{ァ$(?[7s wyne:.W>5zTz?W"~LA ?*/2><ى'@`1ؗnEg9Vy2P~YU Zr @,ͽW_oqiIp=o+2R]ڷo!"C`SC3 }DVh @@Snecp mWwJqd}w, @vm{>ϟu༜m^t,=&P՞Uj W֦\ @ M'OK7x㶝;wYvq˦hw*C('0Nd%`"ff+*]$ @@ӎ;vp9~ݏu]?w _[nl$=>sL$°dXdڽ1ҵ},#. !@@|g;j~a6ЫK?sw~̽7I;?k_hO9a!.ye%=Űb.d}E:-ڠ,nI@ PgOs3hio}n ݘ{ɖKY[/,{Eȑ#u3> C*/22suJWuߕJMUuIY @ Op^7w}y<F:z>C5~С pYI:p|UPV3}|F @N@}6oS6d>5O$Ї:m_SO=V<0L{J_uLf׌1{U: @@ԟ{[mΞ4ѣg5F):2Am=#]Đ!߆"yf4.JPY'e>YV @ 0v,3g# ?я~t&mC9]$kh=@G4җ"dY0Cͽf>ʪ[e̫}W.K\C ahU)㽓o@7~Wu6KFw+ouYUɤ-\rlɒ%`n][t/t!ˮS7wy)ؽi,.kvtmu<#d:Tɒ '@ E@UV3uhSG}kZSLj@?OxCG)UFP*rjŦզNn~Md-sr@ FF}"}F/F Vgyƍg֭+Q6b=$v^]|eʮ-J^SY!KKJinsd/+w?۹e2+Uly-v:?J|\e6$);@ dY޽7~%Mf@fhи.krIykMcEe~:]) LF}_N6۩,xESl4<&H73<3_|,ZrZv^]|eʮ-J^SY*KfͿv{u-J#g;է/[L)Zܪt}M=c@ǀL @;d"EN,{"Ҧr7x``?ygk6{'{,5\#-J/;ec2bD !S  @Ѐˑ#GfϠrGGYPe%Ї>tio ߚ}_ꊡ1rC")3f}2s6Ƽ2@J@:J}L/cÖlY?-KڵY'Fz[:3{}SAm&::i-N҄T\,mU:C t' 4mr+10 o\9Nr߻woA`+'PǠSξ)Q}-Tj-LJ3K9S+ @hÇ==q?vx ,DzF]Sý7k'bܾeϲ,9ObXct}ʔ@TUӯ,c??Xt G /|veI:Ќ@CJbCNrߞޖ4KWGf,C Tsϲ7Ͷl2>PZ? e؇w b]&k̫b15}}gU_9YiPkMe׭s6).eo,A ,&m۶ڵkO'ꪫWٳOp;?яO}S{+D:/_z-yƃfæCNLyhF&ʁP'QMɳtnVNaWԯI @`-[6{{3+J+"_zoeYc?7.Lu9AeLpd{U)'fXe$ZtK'͸i-Չ @^Zx/I;vȗF` wܡM I6n؝M :p5VZU[24 ^܄MW$_r|- @)&}{uuw{OI:D-Ye&Xf֫%b2:w6V|0[8Ga} ^yKbq蟂2kפuv5_7m[m֫|7]躸er>:= @c'5@moɟĉQ q:?[p{RyR"9֭[o3[n~ Om\3`r}ʬQPsC. @uwvK.7|ǽ*D'd2qt2_z3=Ծ6S5F]Zpjiҫrr  @64{g5:L x|WJ< ӁA&} Ք #iϞ=A˩+\}Bofyn%ȼSޒ aifFU6erc֩oufrPWtOd-m>ӣM6yEqd.Xɾ?/{p֣<_l+=rC\c4)7sԶCo7 @d]r%TN ܜ4C23Z!5&Ҷ ڍsԪpd6gW] @<ZW|<^W-[NPIX^rmqd0cke9BۊKW^y%'ԌXX}waTfۼMY$řw}ꚿ^) @ظqcnk?ùkexGw^r7.{OaG9byO8˲c ]Sf舅pW51Ȅ @ M2wؑ۷oOb3ez5]=I8?)Κ^4}\랛VUNdXܶr}rr@|+YZyA:Ɛ?H91Nk|AF:l#@6o/ݬ<{_eY^W]u1Y{ A@m۶E]TO.8a0W3Ba9ev-8z؞C3Y+`mMp4m׺%Gzյ^nPz , yYH @k]UW]h_~R 9Ut؏92ڇ2$lV9`L|sӼdor[ݻB/]F~@ PE@Kkw9+f[nm/*'z5z!)gt5,AW_H7` Z`U~heer  h^HFСC8dä҈֥<8Yߖȕn>]o݇.1AE:Օ/҉{ @.=5lm9o~b:b #{25@g_|q D +pAgt>~%>E0pY*•9:&zQau:R}W  QGo Xں 3\nyW֕Wkr?ܢ}S, @\2Ժ~',& @~b2r%zs94}#Z$'i6zmnPi/Q착Cl`uǧN8Q6eG]( صkW>ڿiӦ~lܵO;0>|%^r@h4.˿ by=:%:qD~4#@m}3۹ҋ/Sj<$կXc2X !+۶m~gYSͳwhkpQCX7z͛SOK#uJab;7}vq~&>f+biO|܏t@ " Lر~*dvR{=SWI,[1b3L.a0̄lٙawfg†3 ޝda @&!Xllcْ,[u~oUݿ:귺_]S޻wo椝?Atw޽@ߤ2Ƞ#VUAq /\4HъsLzzՋf3`>W0̀"(kZ~]R%Uoʅ @9{F׬YSk$_XFkI` RƢ05O`m|2tJ~kZ>PW==R6t{1ayqRԵl $SM$/,Zrl#?)õO@z/uz ڋ`,n -Gr %c)\nhASp^UVyc˖T:/|╎$-~C%~Zvm6ڿbŊt+v$o_^F2_\kPŴ @JZK놀4jFf}^) ˾y4UϪ-KQaz@x6IJ@3׭[W!|=#Qk3B_nK`ҥ75$5h屈49i҆e2h@J\WrLe) P_Jnyʯ9眳3όnd9=I{JWmm^#y=4 u/h:8H|RuP>;@%R Ε\%-zCdp=t=xB@!m'4ꏋF5ȿL 6+aLuzZnMӽc !}S6{"J*w%Д]J\ æd<%Fx\B蒄 @ /E_S5ү\z| wuWz0xq$C4po 6p)z &1:Wl=lZFæ#!ե~ @J@,5q Tkm`M F5Sc_m4=Pd6 @ʤZKD̠>Ld gw븩d.C &9¿fq_KctwqGbu"h ݴElNke'\I:s0+aصQ@e{d @`>ɧQ~{7Jp?dȫCMϊK~FQnՔoHCCQ "n@T;#Ppʕ!0υaSFyCq5 PF#RW^y*53hղXm RN4 {(]dA.Q6OB *s8eY)d{zOÀdty !@gS N@35M8C)bV"cw3ҍeJ)*c[ٓy%+n ĦH:aUǩ֥lI@  PiF]GCaR=Wܹ3zrk#[neA_4F9i2u1:)F2h֊K@~8 Y/[ SG 0b("F< @_h:FKg~7S+G5H_%X!H~ڠ-F'H0BȤB_fen aKK F$U9mց!@U H~DR}>-pE@;/5v=̪hΏ^auΩz( G@Vy2 CWʳ: zx)s\*i˔M@@?Ј+g[%򵙞6UQZq5u!:}BN7_ 0Vmr)_^n A@V!]IP´Eg1< @ F;_|J8!~f̻{6mڴ`Ǐ9?i޽{3FpJ@$Y^/BھdI@'e7¯Y84I@KQ5K98i2ڲeKUJ>7!]u?٤ICvK@f/P=ye6@>S\~fiT+Đ?;jx+;UHx;K&1^)QeqFsNfmJ-"<^{F! n `w =+ :A-- gZ{-O~>akڔ /۷o_nݺl6h@Q@4;@ : ը+k ?<9+Mc-K֛n) Ykj9aख़b-dͽsl3⊃@tMP>[@0Хl@R5!ScoqʗN2M4WLvjscv黖d_g/f HܻQ uL嶡P@%}|Dߕ}띈@__#Kt]wes[> 9-Ek׮]tE-ڳgOv3)>F 2в5 (a 6@qL |8_8F@ 쳡'n۶m͛'C@EiT]]{bOAr\iIg|IZF53ldnP E@T}͗?~_BM$}Ga*N:mݖIzJhRJ4#ଳΊ kHnHTd1 }PH'in6 A9*,sc؇_:%@?_)h?< 3Xi#@dݕK%JPhUZ?u"Pؔq`(  6:1;C>{A{P@IDAT`LԷLg)9-s['\ fI_ ri2>i2d}Ck$/C%IU(! a+0kM P6?#!%'oLNc( %Va>s]#YL@>x`&^|8Fˊ6q@2x3vP_@ 5zvkF Bu5g:' }EtԜn)*+%Js9SeXn]hǶYme dl`Ny7 a@PA!Hb//ޏ]ٗ6BH闾e曓lNaF/+,P7>V(7doFɀ 8 _Nx Uz$gMCp</# =N?kP_ H'/} E{E? f)֩1TLQCNJg}FPTdwJf/>q8+9(@hP}#x: #ϞJ$p_J!=unmpO _`Re`R6ᓲOknS__reC9n. zIyQVwgi@s)lٲlCW+ QY:tpw߽讻Ok sԎI:I 3ȼhF }:Ye 1@ MA燇.o' 4 XhWCeޏ=ll'%:nE۶mK QʍFhw]v0ROk&,rRˀM%6 dY@K!p@xy2+HTz" ^J>jRz䳤')A@~ 23y]oʀ45K@MV{hjM ??znn5";rLlZkr1 x'"c>w귧+ʇx@}ʻ+o~ܾTD@}y)OOWrKﳥcj&eMr53t;/S@}n>dA{R"ԕ@<[ϭ2 n ex7 ɛ4 P^襸vgŠzBHt)Ω;mV(忪>z@C5r.#u2y@ahy@_v|ݐWΖ4l D ajA@a8 40mW,AMzOkv\QKYo?+UڬyCi2^ J۱cǢG' CSu`hڍv{gj1y{M!RFU[Wz & ۍCzB0 w[(üaҢV@j4Pr ]:y睋nݚZS$)/M#O;is@V_mq)oZY?ڵk3%Y+M*#F9x+? ?O|˔LdЌ !!4G@}i|AH)4:>$_F{']0i JY r d@)+g>)]9j"0tEr @L@}!ͤ mڴ)=ZQR榜A^F}=@d оV6 |ʁ @@42MvѧoC=_j0T5Wj)I_ qj=/ hz:fk_t n`i4R @ek.)qӆ_3QH)Lm'#kSRnW}xƢs=7{K79C|A @H1үQ!*(G?ʦqa;h]}&) ||@a| 272XbfVU'- @R">.F[lhʛA @M'|fxdl?%m|򴋩To @@@{I>0d Z믁@\|0&L)nH)}NO,mgH̀6t*Ce%'! @hFw5/~Fnڗ[H~mnݺl !6R?{hsY&ޠCa(/dp @Hm~{+{p\ AeLQpo. !mYb53gF]6C @)`XKW;4`蹝4%^@gH!äMXIyU)m<0xB H@}d5_18ݾ}{K֞"hQ=41g; ^ w)F9A~m/MEQy[yft@ 0j |v] ;3uٔW Aݻw/:묳=2hKں׬Yy"7)dV@]A @@W|_JpKeWr|{キLrDJ@d 4`Ѧxy?(Xkk ڷ@^O-Д6eaV@׭Ly @N`;vvo{yG@{lY Xz"mΗ45^F=4#iGb$ KdQMS*r6'o@ P\ZMzm,tLyK4  4i}@J4-꩙ 2X(!C|K'Kf{hGp @J@je+,;1@h̓0gZOGm8m<?d Ip Z"4Ieȫ| 2L @ 0Ҥ=fW?v}@t}&PFm8H W ,mO#R?ү; m߾=SowDYsgfl~ժUí/ k /@z[NL@KfͪhK @膀+R3}lg;w.ڶm[9Cts/P Z ԴvY>oiN24IF:+ڻ@S2hyf]Ǘ8@ hL^) qH-[d?\G@miRb5`ª)! R= / xʇq*6 @~)m,vJ-)ֈ?KLj kN.!@M"c@%

-X%9 @H@־Fu' `ǎVK'6Rh2CeyV^=ֽ=\cj^!ʻ=rۍAF^䵇 @>4_?]}iAv)_3$*K-3\6/. U(ʕ+3ߥ1@VuDPX*w! @M@}O4%v63kF8"`k_=֬YSy_ɪJ+N+iX1@G}Ğm/C,rRe˖m @IP,}p)&b>ۙ!S$& Rxez 71]yȠQm߈%Kden zܷd8^ `? @}PK} ) ]]ve>=׌+  /Ragr롞 Y. |dpc ,@R%KWRY_WPf0gd5ԃCK4ܤjժAT.9眓J^/.^2@Ȼq 2 @@ԗQ~)cb+c_^ȠͷV3EqZGY|ZrMmr8+ \"I׬Yy2 eP'2L.ۿ۞!@#5#AQ!1VJJ6S `UzIR»Z0Ye˖e-KKۻuR~k*/}Pz1T : >:vpc 8@" %ӕ|-}OLZ5})1eRndiKZ~駷Tlé2F0W&kʵ 4K zk_:g$'Y cnRՇ`tC˫=pHZCY2Rp)}9)2DՒmNk<̫>$K#7K y  @MȾ{Ce#-38`BfY75}]d g 5;A1@/ơ87vs9Ua dyF-p/(0;z@@HB6hWSJ?)M#u0.QIz$C@, M eCGֵAf722Vc  л\PW 2;CR5گM6O<$ `p49 Nd:𘜦&{2Hph~v[y׺~  inۀ" HReI X37y-}Q]KIO 'eڍ2"KЩmU_AB~ @N@]FS{/zem4گAOG jЋR KRR4b|ie:C]*&V}lC~ڵY'PN%ZJ7}AS/CtIʽqwMT FqRi=<`5@KNq:F\Så)4bK#^rU(SOuTɑݣ2Lz b_Rޤ 0R\-E_JsŨQ,0C# ML|du.T'pS)/j5k$g8C ƫ]UǼq@2 $1 n H|W=Իnۣ( pe_wc_x} ! m%Жr Ib,##bHx}CAu|v!όpEwl·8@)лO)t^ʽ(q)h~Q_~ `j;%qW@hZ6 L}Y@@)e BqҪ@=4 ;b)ᱳ2Cϸ@@B^0) ] ?8yg!Tz<4uNuroϐ `r&Z7urF\ɍ'e*4( z }\38#:21D!։WSJ{ n$=i4a>C &_peCŹ1M >Tu? t `H/9/&A@K%uw•+Wf^uW=e <.j+WJIc~x?WlI\uzʻe8 >>pH.# clD̋|CicqKۍ ^J>))ggdeޑ~*?ŘR7`>2辑q@Nq9O⧥z:ƕ' [Οc =NaЏG^d\GB7z U `|[Aup*R/u5Kg Su=>_ pU\]q ` n:-&x|:րw^Hcur5~iym(:u4ZP~K4K`r/u(c@wGї wJ-AV H ',ɑrEp!,N;-UuWg*d @}wpKg!eBN[NR q4 H*u4|8Zt1TnC@M/GK)q0vOּm&7 sB:(n C '^ nP P}7Kї3.7*C44\xryFOWTF) |/UV3N߅z/] 6 `h.y" (.ֺz.w3?7S@F aPF|~{a՜@{ X>^m|k;-agӥ(~Qp/!PGQ#B8@H3ܨM&vDJt䅙`Y3&7} #CG:Ol6Xr@5 QZ+ }TCHC!&J@-[y}0tuqÀByuµaTUICdW%~L3EN@ ܻyB "# 0it8;h G@K |>?47tr-oF|8@'gyʾB5&1& 8VY}=BSD3#fGhJ88 1缔z1pPG@ <*EC Tܢ A&Qtyg c΢wu//`HB{~뷔|ֳ\nY_%B CkсՇ4Hiֈz XWG3ta -;Yk@Jk; Ld]W>k#=^ @$F s U\h$c7wNhq ĔnЌk@auZP ~@B)c\޳4/q PjH1:VH^HxdO}E $פq -;C ʟWn C=b|~կ=9@H4m4RiMSn (n0,kӌW# 0ڞ ]s<tE+>R~41 ,$`!~EFDd 8L)rySüc˻ V\Xt{(@? P3@O{FL;WI C@0tQi!pG/)Nލc5WFO>9E9K R`¯<c! }d^*:tJ 0NtLl6N*ES\w¯taMO[^r@2́qw 'ܘq Cs^pڹ0 0lݾ׎KMHD@ywEa:?'%&~>;9Y/kq) +BJ/YCQ|x- < :94@`.n4_>7Y·ix2&{|^(-[a2(wÁ뷟S:\ȏP ZBS"7\5C!`j\:E DGLςpAa׆=ҥK{: 5 ߊf6P!'M{(>w~Cb& ANh %p&=l̂ɼ&OL07(/?)}^Q6Pyy'˙L?횼ߴs 0dܺ4"UJ^˕yW' J L-:W5^U(zq @@9q"UOu {b!jR!G+V񊓲cy?VA]C< @ `t-ՑIW!^ -Rʻzɸt+/ʇx@ PH9u1t!)Py芶+J8?+{t]+WڢsEy@&|@mWC{~u;sUG5y@@Z9:J9Xxq@|T'Y?CWpI/E[O \X<´U: @@0˗!Hi gwxʮyzW{ 9iqM  @ `dR V&VnϞ=x*Aq^\L@ @!̫n$ٴG T+!pNr'@  `@IU @ ` =%,)5AMP$@  `Ui peZL @z .K@YR @ PL@1DB@$ 110 @`0S2Z,my1~H@ PL@1DB@$  @@0$|89Z2 @@ `h$@!`0MIE @Iqː0֥n @`0퓩9d A!@ `q ]`@) @ L ` *PI!@!  @O@} @p @"`@9`rW7 A '0ŋb% ֖\ٮ  K`ҥ7cx'ۘ\? B @`65 d7UuU," "2C qؿcC9!`Q1D@'pdƍ1oa`J @ XJ;K՘DId%+43m: @mF}9mxo)L)`N @l >-oy}n /$ 'Z d @%`DE؃1X]eԌ @ fADJ!I`%,23nC MCҡTD͌ E S,tyqM394Q @s5lIV 5ѣhB 롶tX ! @=kAA~Nkh*@,F#OYϋˡ0t? @`>`v_7.O"-Lԕӏ~:_^\_5/CM(|&ˆ-t^2ϒ!gՏ @i6nܸ/-gK;HVϮ>)R"Ж VBm%,sz][ fmMA a0Ě pd 6: +lm躜:qMVhR0ykڬw(# @rС%ओNO $I,U9mףɬ6*Sf^^yqU*v2 & =?ji.8nqԲr98/ͪ[<5ɢSxM2q @ m0H[QF>n\mq*̩1rB L'`}O^}wOO7n&ʡ+sMR\(0 @j5QT__i{Fn6jMK9N=Bϯ ˯akT'na@ 4 X\sͶ4//( 6 D @Nz&쮯벮55E =C  n\r*4 }ȑgD%B@4WWqg3M,۴:y.vdC CFg>)RGc+C}⥴& QYkN*ίr,JY;oUB@ 0h7^tEt ʍ:,ds _RWG몦/of+yU֬P'- @H_]y啣/nTu5r5-${yBRfZcVc82Y:? @` l?~ _~qq2U7}ÂOVIݕ0V:^`'Fy*c|e&竴U3#= @Ho>t{ґIGg6kwX%i޼rTUcK?o\We'ˡI6'yA DO ƍE/i`|:XfGMoٹXUq FTnZ$o&Mב @%`}w+a{ fY}ZrN+)!룰I,Yg"#̓%U $C+_? :Z8\[ 3% d1Mwϲ?V>.Wl @6>/mwkx7.j}x[R|WuU^^f/N0=g8/7/-3@$[$%oXh ǁ^ve5 % )ey^ueb ^SF-f/Si @$^xồ1j'tҿ}XE ^X+{aܼM5 ]LʴEu˳n\2խC ,駟+Ͽ0yk!u{aD\t њ̫ yRyz[UϬ>/yUK!@@TСC_Y  `<`bѻ&N3qRbuyJm^\(aZ>)_ RB QvmܸQSȩ<(z}r;/4Q=B'޴ҷu%ˬfoQW& @ Zl&+mJأ` ^k10#z؅Ldv ٚ,뢰y{=º CN@ p}ýs܏Op8x^-S{}|~F T\<9k==! @ 5,Y򪫯g0h૖ HL*(@/(b- v,ʳ$ @@vYg7*`,ra(o5K)m;Ǥ{]Y0;C cܧJҿ HKHWͪ۬]%K绬+eA O9k3P"O<+*\F҆ UkM9?w8VE盐jE̪KrwY @o6o/'Z( g3oFK첝/%yCˆo vMU%/ݲ@Jc˰_k}TjP܉+k^߶`}MXRcb ˜UW&ϧ5YVss`\蕯|C]-?'E@/=U9u,s}Mrm#2* @O#qҥ/g?44G0}O+u{_5K9OKDD!W`ޑPPPN$OvO  @n}FH㓄=m_l" c[Pt=nqɴI;-?'** 'PQr聀?|O@HfL_e ʎkR,O/Yy.dsøY2J|rwɈ @@Gf]Qy33fa߾}/4V摮R9Rf)e҈It2ez^Ud  @#"p6(q:3"j~Ͼp%K>a$"E G%@iKWY2I@z&]6[=A `䦌]?u\1 @Cgmԧ)9n 0 !U%~{{}:XE䀪*yeiO?+mt.T~Cg1o~k$߼[7 @8`}Ҧ>0_VpOM?VM>y  @.ԑ#G޷aÆu3x `mjIv _!2!@J|J]~]̡ש\75\^?uaC ,Y_~ga*N 4e~Er `)zXXF-Z^m¶ӼU) @ AZ?&lC ʏs0'.4BnգQG>,3<./5)!@ O|b jD%*P WiӦk{߰%ihRf0z{W׽^6Ǽ-_Er֩#B #pi>n6/DKH/>dUpw?av}q8\I֦몜*up\dھoܦi)yA jX~7Y$N@ XW /qmK<ӎ_o]- &*xmjydk\F]&T}./ׇye͊{9@@>&%&IWS~lb@F7 DrWU넠굩a :}_?EԭKQC h`Ϭ??Bd9ЈMW/|͖۾6w̟t9C/T kaTyl뚺u{}["_@ }o?}L PH@!N/e fb!#宬r`^y:Sz3u[w j-m}lܾhv5JX[Bm}|u]wիlm Y4AM̫.Pn\@: p/n|ȔtPE 5hչKX*-e^3RcT4g<^Ǣ%~Wތ/Yvיͣ5i5Ǵ97WxUφӯ, @(M1l'O.}% !  $rR޾"p&ˡz*W(KM Ӵm;)g[崕 @`Z_Y6aݻ2@ L>?Y `6EKO`#foFcܷQ^dcUɺ @8loZ/ߛ\  `i cIolr.̿▵U"mș4† e?w6.sgą B~/Ї>p*#'  =g?ٛM{k,YJS.߿j "%k@U4OyT{VPxu @ J濲zjv+"M9x3 M]6dΝ/1%2|/%3,7< 2!@H~u֧m~;@C04l$`Q]wZ]*`Ou"] IC[tܑH@@6[?+&ڗ8㌿+)&RA_OXn݂˖-'wkLK͟ӷR~]-w˔4 $I`I}j$kS\:/I,H#Ckͯ0߻*qSµgSMPiir 1in6߿ׯ?,M@FD@Xo¬7%r|iGܺF]yx (АR$ A`{>Ƶ>1m܌$Ad5^+W|j}Y@}ۮ6+f*q]y=/_qݲ 6&kBNZ y bŊLP?ڒ{^f̟i>jȜW [)L!@N+zٴ~۸F;~K( c'`wo)Ԡ/)|{~c;>|N ym wƵ)yC Ps4[毷}wI A@TS Pl:\pQKGdsVy*ȏ= Y@TݼFeH `1eN9V  #G|ucrҜ'{@@3o2eo~Cz8ɚ 4FDCA@F X_j(o/Z}v$Kͅƀ8z / @`dw} `H z[ר^f 5KE%: quAf@/2켾6 jv2?n Pб/!6 @ :vc7]yڳ 5(/O?}^ˢ`/=O-Yev5K@_hD{.eN㼸>L@@)lޏ߷Y4e4 "@ L聀)G_ؽ{9K.}_hdPxQ:7 x(EǣD!@ u[?pnڰ=SC0?;@r֮]˄>Ϟ=>2(ll@V @hN{4~?.!`HXz]gҁ3lßx|?g @@_4R77`_Q.  B3gy^+lQ@38fKsv|y#@h>V7{F7>?5Z(,!>FhY^evf uJ.H/ 24JFmne(K@YRF~}7 U'| d0#~/4 ةVLٷpӾ}n?HyPm@C:MQ ɟ|ھ֭[apOYAB{.R7K?0:R@ =k3$@g0ضm۩G}u~:K ٠'{:B@@01noXʾ)@ *jxqf ' }OcX@ 2]5|6ꩧx~  I4BB` lٲe.mE^`3d Ь,@@`Քn};wnd|H @ J?T@`wyG.:jϵNsX,<;c;xC]X,qLaܴizœS3z@R5&@^m̈||ǚ8@`0֥n /PS4x/e+W< -puP~@@.n^#o ˗SmYj`@md -ܲ꡽2oFs@3Vysg ~^:xƅMWrabO^Oݧe8kOھa?oΔ|)K.|{l$@`|;kN>gY'Y9mIϲΦ~˯󎷇@xc=ե*W.,X̱Uk -XOxrmboPZe˖ma=*@u3 @ lڴ{A}8|@" d.8/N=0.<{ɼȢrk[5p0xDؾL&}V7[ߊ{s+8j8@h I]|M7c*^Uq>`2|5͞[:զL8@vϜ!VenPTo~5c`ɒ%ZgL2.H< \aϨlގP8z­|;mK P!9@u]#Xgm8 >:ldM9\{Q`֡-A>g[,,;#8/.L[|VD9Mv.+̯(0/U㛼른k=#:c?ۦ:B `~SC@3 ْٟܳ,ŋcʄfB ֘L ϴpc?ػw(kp PD@!@`&3jժզ0ySFd,񹦔h,^VZlxh3WUA,J̊U';Y#S^Qyc|6 o،m{& [='to{9 %.A /0Gv*S~V`WrYS,ug#ʄɀx=juԆvڱ^{29;~(GtQ)?fq (`!M߿]lx4LƁS-\n~_esv|✥YO9c g&bYtjrrsKV()[x]~?bڽﷸCv9{u^ص2GwWy @#`pMJ @I6KV>|dSeXdcS"3crOg&[x)2.ȝn>J)-ef'sߩodnO>+,,\L ?)..GC555jII +((@' ǝu$BSSSϲeV_SS*z1VWW],K ٯ'&& b]hԉm=vrDOg<7詯wN)H$"^vݮ!_#HfM ԓ#H&Z䫫+3"]'#Y.//8dii I#)F3ᰦ}e+∬ȲNŃG-VnkkKӓ $WUUqF1淤H5SycJ>% ,Vx()4-yU\ulQ`Z+9K ,,,|4330˽c/RX$8`G9+C١w X\ss#gggZT+Iej{{{ D=^yECJ`鰘WT yyϲ +F^2K؇w(dx kRpc,w+++e#`mkkX.cV=}oDžBtr. OiР"֐A >J2Yvư$w%K L!.ŲWYd_5TKI J̽f-DrAtCɽ+++ ls7yHhP@ [}Qç|eo~."`BTb/2 hJj,&d.FAаSRc(6yӱǂqD:OɌ p;r}AdR6ƿɚ/// @^ap*ʅ`\\qߑ\?/@Sa\$IENDB`info>bplist00 X$versionY$archiverT$topX$objects_NSKeyedArchiver Troot U$null WNS.keysZNS.objectsV$classTname_assetcatalog-referenceTicon  !"Z$classnameX$classes\NSDictionary!#XNSObject$)27ILQS[ahp{$sqlitebrowser-3.12.1/installer/macos/nightly.json000066400000000000000000000012111374246124700221600ustar00rootroot00000000000000{ "title": "Install DB4S Nightly build", "icon": "macapp.icns", "icon-size": 128, "background": "background.png", "window": { "size": { "width": 500, "height": 320 } }, "contents": [ { "x": 90, "y": 180, "type": "file", "path": "DB Browser for SQLite.app" }, { "x": 395, "y": 180, "type": "link", "path": "/Applications" }, { "x": 90, "y": 380, "type": "position", "path": ".background" }, { "x": 240, "y": 380, "type": "position", "path": ".DS_Store" }, { "x": 400, "y": 380, "type": "position", "path": ".VolumeIcon.icns" }, { "x": 90, "y": 530, "type": "position", "path": ".Trashes" } ] } sqlitebrowser-3.12.1/installer/windows/000077500000000000000000000000001374246124700202045ustar00rootroot00000000000000sqlitebrowser-3.12.1/installer/windows/background.bmp000066400000000000000000022617521374246124700230420ustar00rootroot00000000000000BMc |8 `c   BGRs~~~}}}{{{zzz~~~}}}{{{zzzyyyxxxvvvuuuvvv~~~}}}{{{zzzyyyxxxvvvuuutttsssqqqpppzzz~~~}}}{{{zzzyyyxxxvvvuuutttsssqqqpppooonnnlllttt~~~}}}{{{zzzyyyxxxvvvuuutttsssqqqpppooonnnlllkkkjjjiii~~~}}}{{{zzzyyyxxxvvvuuutttsssqqqpppooonnnlllkkkjjjiiigggfffnnn~~~}}}{{{zzzyyyxxxvvvuuutttsssqqqpppooonnnlllkkkjjjiiigggfffeeedddppp~~~}}}{{{zzzyyyxxxvvvuuutttsssqqqpppooonnnlllkkkjjjiiigggfffeeedddcccaaa~~~}}}{{{zzzyyyxxxvvvuuutttsssqqqpppooonnnlllkkkjjjiiigggfffeeedddcccaaa``````~~~}}}{{{zzzyyyxxxvvvuuutttsssqqqpppooonnnlllkkkjjjiiigggfffeeedddcccaaa```___^^^~~~}}}{{{zzzyyyxxxvvvuuutttsssqqqpppooonnnlllkkkjjjiiigggfffeeedddcccaaa```___^^^\\\~~~}}}{{{zzzyyyxxxvvvuuutttsssqqqpppooonnnlllkkkjjjiiigggfffeeedddcccaaa```___^^^\\\[[[~~~}}}{{{zzzyyyxxxvvvuuutttsssqqqpppooonnnlllkkkjjjiiigggfffeeedddcccaaa```___^^^\\\[[[eee~~~}}}{{{zzzyyyxxxvvvuuutttsssqqqpppooonnnlllkkkjjjiiigggfffeeedddcccaaa```___^^^\\\[[[ZZZ~~~}}}{{{zzzyyyxxxvvvuuutttsssqqqpppooonnnmmmkkkjjjiiigggfffeeedddcccaaa```___^^^\\\[[[ZZZ~~~}}}{{{zzzyyyxxxvvvuuutttsssqqqpppooonnnlllkkkjjjiiigggfffeeedddcccaaa```___^^^\\\[[[ZZZddd~~~}}}{{{zzzyyyxxxvvvuuutttsssqqqpppooonnnlllkkkjjjiiigggfffeeedddcccaaa```___^^^\\\[[[ZZZYYY~~~}}}{{{zzzyyyxxxvvvuuutttsssqqqpppooonnnlllkkkjjjiiigggfffeeedddcccaaa```___^^^\\\[[[ZZZYYY~~~}}}{{{zzzyyyxxxvvvuuutttsssqqqpppooonnnlllkkkjjjiiigggfffeeedddcccaaa```___^^^\\\[[[ZZZYYY~~~}}}{{{zzzyyyxxxvvvuuutttsssqqqpppooonnnlllkkkjjjiiigggfffeeedddcccaaa```___^^^\\\[[[ZZZYYY~~~}}}{{{zzzyyyxxxvvvuuutttsssqqqpppooonnnlllkkkjjjiiigggfffeeedddcccaaa```___^^^\\\[[[ZZZYYY{{{zzzyyyxxxvvvuuutttsssqqqpppooonnnlllkkkjjjiiigggfffeeedddcccaaa```___^^^\\\[[[ZZZYYYyyyuuutttsssqqqpppooonnnlllkkkjjjiiigggfffeeedddcccaaa```___^^^\\\[[[ZZZYYYtttpppooonnnlllkkkjjjiiigggfffeeedddcccaaa```___^^^\\\[[[ZZZYYYtttlllkkkjjjiiigggfffeeedddcccaaa```___^^^\\\[[[ZZZYYYnnniiigggfffeeedddcccaaa```___^^^\\\[[[ZZZYYYvvvfffeeedddcccaaa```___^^^\\\[[[ZZZYYYzzzdddcccaaa```___^^^\\\[[[ZZZYYYuuuaaa```___^^^\\\[[[ZZZYYYggg___^^^\\\[[[ZZZYYYvvv^^^\\\[[[ZZZYYY\\\[[[ZZZYYY[[[ZZZYYY|||ZZZYYY~~~|||{{{zzzyyy{{{gggYYY~~~|||{{{zzzyyyxxxvvvuuuttttttYYY~~~|||{{{zzzyyyxxxvvvuuutttrrrqqqpppoooyyy[[[~~~|||{{{zzzyyyxxxvvvuuutttrrrqqqpppooonnnlllkkkwwwdddrrrrrrrrr~~~|||{{{zzzyyyxxxvvvuuutttrrrqqqpppooonnnlllkkkjjjiiihhhqqqrrrrrrrrrlllddddddddd~~~|||{{{zzzyyyxxxvvvuuutttrrrqqqpppooonnnlllkkkjjjiiigggfffeeeddddddddddddVVVVVVVVV[[[~~~|||{{{zzzyyyxxxvvvuuutttrrrqqqpppooonnnlllkkkjjjiiigggfffeeedddbbbVVVVVVVVVVVVRRRNNNNNNWWW~~~|||{{{zzzyyyxxxvvvuuutttrrrqqqpppooonnnlllkkkjjjiiigggfffeeedddbbbaaaddd^^^NNNNNNNNN```NNNddd~~~|||{{{zzzyyyxxxvvvuuutttrrrqqqpppooonnnlllkkkjjjiiigggfffeeedddbbbaaa```___YYYOOONNN~~~|||{{{zzzyyyxxxvvvuuutttrrrqqqpppooonnnlllkkkjjjiiigggfffeeedddbbbaaa```___^^^ZZZ~~~|||{{{zzzyyyxxxvvvuuutttrrrqqqpppooonnnlllkkkjjjiiigggfffeeedddbbbaaa```___^^^\\\~~~|||{{{zzzyyyxxxvvvuuutttrrrqqqpppooonnnlllkkkjjjiiigggfffeeedddbbbaaa```___^^^\\\[[[~~~|||{{{zzzyyyxxxvvvuuutttrrrqqqpppooonnnlllkkkjjjiiigggfffeeedddbbbaaa```___^^^\\\[[[^^^~~~|||{{{zzzyyyxxxvvvuuutttrrrqqqpppooonnnlllkkkjjjiiigggfffeeedddbbbaaa```___^^^\\\[[[ZZZ~~~|||{{{zzzyyyxxxvvvuuutttrrrqqqpppooonnnlllkkkjjjiiigggfffeeedddbbbaaa```___^^^\\\[[[ZZZ~~~|||{{{zzzyyyxxxvvvuuutttrrrqqqpppooonnnlllkkkjjjiiigggfffeeedddbbbaaa```___^^^\\\[[[ZZZ{{{~~~|||{{{zzzyyyxxxvvvuuutttrrrqqqpppooonnnlllkkkjjjiiigggfffeeedddbbbaaa```___^^^\\\[[[ZZZvvv~~~|||{{{zzzyyyxxxvvvuuutttrrrqqqpppooonnnlllkkkjjjiiigggfffeeedddbbbaaa```___^^^\\\[[[ZZZvvv~~~|||{{{zzzyyyxxxvvvuuutttrrrqqqpppooonnnlllkkkjjjiiigggfffeeedddbbbaaa```___^^^\\\[[[ZZZvvv~~~|||{{{zzzyyyxxxvvvuuutttrrrqqqpppooonnnlllkkkjjjiiigggfffeeedddbbbaaa```___^^^\\\[[[ZZZvvv~~~|||{{{zzzyyyxxxvvvuuutttrrrqqqpppooonnnlllkkkjjjiiigggfffeeedddbbbaaa```___^^^\\\[[[ZZZvvvzzzyyyxxxvvvuuutttrrrqqqpppooonnnlllkkkjjjiiigggfffeeedddbbbaaa```___^^^\\\[[[ZZZvvvxxxtttrrrqqqpppooonnnlllkkkjjjiiigggfffeeedddbbbaaa```___^^^\\\[[[ZZZvvvqqqooonnnlllkkkjjjiiigggfffeeedddbbbaaa```___^^^\\\[[[ZZZvvvoookkkjjjiiigggfffeeedddbbbaaa```___^^^\\\[[[ZZZvvv{{{iiigggfffeeedddbbbaaa```___^^^\\\[[[ZZZvvvjjjeeedddbbbaaa```___^^^\\\[[[ZZZvvviiibbbaaa```___^^^\\\[[[ZZZvvvccc```___^^^\\\[[[ZZZvvvrrr___^^^\\\[[[ZZZvvv^^^\\\[[[ZZZvvv^^^[[[ZZZvvv\\\ZZZvvv~~~|||{{{ZZZvvv~~~|||{{{zzzyyyxxxvvvvvvkkkvvv~~~|||{{{zzzyyyxxxvvvuuutttrrrqqqrrrvvv~~~|||{{{zzzyyyxxxvvvuuutttrrrqqqpppooonnnlllxxx|||||||||~~~|||{{{zzzyyyxxxvvvuuutttrrrqqqpppooonnnlllkkkjjjlll||||||||||||~~~ooooooooo~~~|||{{{zzzyyyxxxvvvuuutttrrrqqqpppooonnnlllkkkjjjiiigggfffnnnooooooooo`````````~~~|||{{{zzzyyyxxxvvvuuutttrrrqqqpppooonnnlllkkkjjjiiigggfffeeeddd|||````````````SSSSSSSSSVVV~~~|||{{{zzzyyyxxxvvvuuutttrrrqqqpppooonnnlllkkkjjjiiigggfffeeedddbbbaaazzzSSSSSSSSSTTTWWWNNNNNN~~~|||{{{zzzyyyxxxvvvuuutttrrrqqqpppooonnnlllkkkjjjiiigggfffeeedddbbbaaa```]]]SSSNNNNNNNNN~~~|||{{{zzzyyyxxxvvvuuutttrrrqqqpppooonnnlllkkkjjjiiigggfffeeedddbbbaaa```___]]]TTT]]]~~~|||{{{zzzyyyxxxvvvuuutttrrrqqqpppooonnnlllkkkjjjiiigggfffeeedddbbbaaa```___^^^\\\~~~|||{{{zzzyyyxxxvvvuuutttrrrqqqpppooonnnlllkkkjjjiiigggfffeeedddbbbaaa```___^^^\\\^^^~~~|||{{{zzzyyyxxxvvvuuutttrrrqqqpppooonnnlllkkkjjjiiigggfffeeedddbbbaaa```___^^^\\\[[[~~~|||{{{zzzyyyxxxvvvuuutttrrrqqqpppooonnnlllkkkjjjiiigggfffeeedddbbbaaa```___^^^\\\[[[ZZZ~~~|||{{{zzzyyyxxxvvvuuutttrrrqqqpppooonnnlllkkkjjjiiigggfffeeedddbbbaaa```___^^^\\\[[[ZZZ~~~|||{{{zzzyyyxxxvvvuuutttrrrqqqpppooonnnlllkkkjjjiiigggfffeeedddbbbaaa```___^^^\\\[[[ZZZ~~~|||{{{zzzyyyxxxvvvuuutttrrrqqqpppooonnnlllkkkjjjiiigggfffeeedddbbbaaa```___^^^\\\[[[ZZZvvv~~~|||{{{zzzyyyxxxvvvuuutttrrrqqqpppooonnnlllkkkjjjiiigggfffeeedddbbbaaa```___^^^\\\[[[ZZZvvv~~~|||{{{zzzyyyxxxvvvuuutttrrrqqqpppooonnnlllkkkjjjiiigggfffeeedddbbbaaa```___^^^\\\[[[ZZZvvv~~~|||{{{zzzyyyxxxvvvuuutttrrrqqqpppooonnnlllkkkjjjiiigggfffeeedddbbbaaa```___^^^\\\[[[ZZZvvv~~~|||{{{zzzyyyxxxvvvuuutttrrrqqqpppooonnnlllkkkjjjiiigggfffeeedddbbbaaa```___^^^\\\[[[ZZZvvv|||{{{zzzyyyxxxvvvuuutttrrrqqqpppooonnnlllkkkjjjiiigggfffeeedddbbbaaa```___^^^\\\[[[ZZZvvvzzzvvvuuutttrrrqqqpppooonnnlllkkkjjjiiigggfffeeedddbbbaaa```___^^^\\\[[[ZZZvvvwwwqqqpppooonnnlllkkkjjjiiigggfffeeedddbbbaaa```___^^^\\\[[[ZZZvvvzzznnnlllkkkjjjiiigggfffeeedddbbbaaa```___^^^\\\[[[ZZZvvvvvvjjjiiigggfffeeedddbbbaaa```___^^^\\\[[[ZZZvvvkkkfffeeedddbbbaaa```___^^^\\\[[[ZZZvvvkkkdddbbbaaa```___^^^\\\[[[ZZZvvvgggaaa```___^^^\\\[[[ZZZvvv~~~```___^^^\\\[[[ZZZvvvggg^^^\\\[[[ZZZvvvqqq\\\[[[ZZZvvvsss[[[ZZZvvvlllZZZvvv]]]vvv~~~vvvvvvzzzuuuuuuuuuuuuuuuuuuuuugggggggggggggggggggggYYYYYYYYYkkkYYYYYYYYYYYYOOOOOOOOONNN[[[OOOOOOOOO\\\NNNNNNNNNWWWxxxNNNNNNNNNNNN[[[NNNNNNNNN\\\|||NNNNNNNNNNNNSSSNNNNNNNNNTTTmmmNNNNNNNNNNNNXXXNNNNNNNNNNNN{{{SSSNNNNNNNNNNNNuuuNNNNNNNNNNNNRRReeeNNNNNNNNNNNNRRRNNNNNNNNNNNNNNNTTTgggNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNxxxXXXNNNNNNNNNNNNNNNbbbNNNNNNNNNNNNNNNNNNWWWhhhNNNNNNNNNNNNNNNNNNaaaRRRNNNNNNNNNNNNNNNNNNSSS{{{```NNNNNNNNNNNNNNNNNNNNNyyyyyyNNNNNNNNNNNNNNNNNNNNNNNNZZZkkkNNNNNNNNNNNNNNNNNNNNNNNN^^^|||NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNlllvvvWWWNNNNNNNNNNNNNNNNNNNNNNNNNNN``````NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMMUUUlllttt^^^NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPPPrrrNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPPP]]]rrr}}}vvvhhhTTTOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNZZZ~~~RRRNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNiii~~~aaaNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNWWWrrryyynnnfff]]]WWWSSSNNNRRRUUUZZZbbbllltttsqlitebrowser-3.12.1/installer/windows/banner.bmp000066400000000000000000003375221374246124700221650ustar00rootroot00000000000000BMR|: Ⱦ  BGRs~~~~~~{{{wwwtttqqqyyy~~~{{{wwwtttqqqnnnjjjggg~~~{{{wwwtttqqqnnnjjjgggddd```~~~{{{wwwtttqqqnnnjjjgggddd```]]]~~~{{{wwwtttqqqnnnjjjgggddd```]]]ttt~~~{{{wwwtttqqqnnnjjjgggddd```]]]ZZZ~~~{{{wwwtttqqqnnnjjjgggddd```]]]ZZZzzzqqqnnnjjjgggddd```]]]ZZZvvvgggddd```]]]ZZZwww```]]]ZZZaaaZZZ^^^~~~{{{www|||{{{~~~{{{wwwtttqqqmmmqqq|||oookkk~~~{{{wwwtttqqqmmmjjjgggcccTTT~~~{{{wwwtttqqqmmmjjjgggccc```ZZZ~~~{{{wwwtttqqqmmmjjjgggccc```]]]~~~{{{wwwtttqqqmmmjjjgggccc```]]]eee~~~{{{wwwtttqqqmmmjjjgggccc```]]]YYY{{{wwwtttqqqmmmjjjgggccc```]]]YYYzzzmmmjjjgggccc```]]]YYYoooccc```]]]YYYggg]]]YYYrrrYYYhhh~~~{{{wwwtttqqqzzzttt~~~{{{wwwtttqqqmmmjjjjjjhhhzzz~~~{{{wwwtttqqqmmmjjjgggcccaaaTTT~~~{{{wwwtttqqqmmmjjjgggccc```]]]~~~{{{wwwtttqqqmmmjjjgggccc```]]]~~~{{{wwwtttqqqmmmjjjgggccc```]]]YYY~~~{{{wwwtttqqqmmmjjjgggccc```]]]YYY~~~tttqqqmmmjjjgggccc```]]]YYYlllgggccc```]]]YYYjjj```]]]YYY]]]YYYYYYxxx~~~}}}rrrlllXXXNNNxxx^^^WWWqqqccclllNNNvvvhhhRRRiiiOOOyyylllNNNwww[[[NNN\\\tttrrrTTTNNNllliiiNNNNNNNNNNNNNNNNNNrrrsqlitebrowser-3.12.1/installer/windows/build.cmd000066400000000000000000000020501374246124700217650ustar00rootroot00000000000000@echo off :: Output file name set MSI=DB.Browser.for.SQLite-%1 :: Set the ARCH based on the first parameter if "%1"=="" ( echo ERROR: You must select a build type, either "win64" or "win32" goto :eof ) else if "%1"=="win32" ( set ARCH=x86 ) else if "%1"=="win64" ( set ARCH=x64 ) else ( echo ERROR: Unknown build type="%1" goto :eof ) :: Suppress some ICE checks :: - 61 (major upgrade) :: - 03 & 82 (merge module) :: - 38 & 43 & 57 (non-advertised shortcuts) set ICE=-sice:ICE03 -sice:ICE82 -sice:ICE61 -sice:ICE38 -sice:ICE43 -sice:ICE57 :: Suppress 'light.exe' warning :: - 1104 (vcredist merge module installer version) set LIGHT=-sw1104 :: Compile & Link "%WIX%\bin\candle.exe" -nologo -pedantic -arch %ARCH% product.wxs translations.wxs ui.wxs "%WIX%\bin\light.exe" -sval -nologo -pedantic %LIGHT% %ICE% -ext WixUIExtension -ext WixUtilExtension -cultures:en-us -loc strings.wxl product.wixobj translations.wixobj ui.wixobj -out %MSI%.msi :: Cleanup del product.wixobj del translations.wixobj del ui.wixobj del %MSI%.wixpdb sqlitebrowser-3.12.1/installer/windows/license.rtf000066400000000000000000001550511374246124700223520ustar00rootroot00000000000000{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset0 Calibri;}} {\colortbl ;\red0\green0\blue255;} {\*\generator Msftedit 5.41.21.2510;}\viewkind4\uc1\pard\sa200\sl276\slmult1\lang9\f0\fs20 DB Browser for SQLite is bi-licensed under the Mozilla Public License Version 2, as well as the GNU General Public License Version 3 or later.\par You can modify or redistribute it under the conditions of these licenses.\par \pard\sa200\sl276\slmult1\qc ----------------------------------------------------------------------------------------------------\par \b\fs22 GNU GENERAL PUBLIC LICENSE\par \b0\fs20 Version 3, 29 June 2007\par \pard\sa200\sl276\slmult1\par Copyright (C) 2007 Free Software Foundation, Inc. <{\field{\*\fldinst{HYPERLINK "http://fsf.org/"}}{\fldrslt{\ul\cf1 http://fsf.org/}}}\f0\fs20 >\par Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.\par \par \pard\sa200\sl276\slmult1\qc\b Preamble\b0\par \pard\fi142\sa200\sl276\slmult1\qj The GNU General Public License is a free, copyleft license for software and other kinds of works.\par The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too.\par When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things.\par To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others.\par For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights.\par Developers that use the GNU GPL protect your rights with two steps:\par \pard\sa200\sl276\slmult1\qj (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it.\par \pard\fi142\sa200\sl276\slmult1\qj For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions.\par Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users.\par Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free.\par The precise terms and conditions for copying, distribution and modification follow.\par \pard\sa200\sl276\slmult1\par \pard\sa200\sl276\slmult1\qc\b TERMS AND CONDITIONS\b0\par \pard\sa200\sl276\slmult1 0. Definitions.\par \pard\fi142\sa200\sl276\slmult1 "This License" refers to version 3 of the GNU General Public License.\par \pard\fi142\sa200\sl276\slmult1\qj "Copyright" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks.\par "The Program" refers to any copyrightable work licensed under this License. Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals or organizations.\par To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work.\par A "covered work" means either the unmodified Program or a work based on the Program.\par To "propagate" a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well.\par To "convey" a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying.\par An interactive user interface displays "Appropriate Legal Notices" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion.\par \pard\sa200\sl276\slmult1 1. Source Code.\par \pard\fi142\sa200\sl276\slmult1\qj The "source code" for a work means the preferred form of the work for making modifications to it. "Object code" means any non-source form of a work.\par A "Standard Interface" means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language.\par The "System Libraries" of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A "Major Component", in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it.\par The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work.\par The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source.\par \pard\fi142\sa200\sl276\slmult1 The Corresponding Source for a work in source code form is that same work.\par \pard\sa200\sl276\slmult1 2. Basic Permissions.\par \pard\fi142\sa200\sl276\slmult1\qj All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law.\par You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you.\par Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary.\par \pard\sa200\sl276\slmult1 3. Protecting Users' Legal Rights From Anti-Circumvention Law.\par \pard\fi142\sa200\sl276\slmult1\qj No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures.\par When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures.\par \pard\sa200\sl276\slmult1 4. Conveying Verbatim Copies.\par \pard\fi142\sa200\sl276\slmult1\qj You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program.\par You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee.\par \pard\sa200\sl276\slmult1 5. Conveying Modified Source Versions.\par \pard\fi142\sa200\sl276\slmult1\qj You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions:\par \pard\li284\sa200\sl276\slmult1\qj a) The work must carry prominent notices stating that you modified it, and giving a relevant date.\par b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to "keep intact all notices".\par c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it.\par d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so.\par \pard\fi142\sa200\sl276\slmult1\qj A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate.\par \pard\sa200\sl276\slmult1 6. Conveying Non-Source Forms.\par \pard\fi142\sa200\sl276\slmult1\qj You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways:\par \pard\li284\sa200\sl276\slmult1\qj a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange.\par b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge.\par c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b.\par d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements.\par e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d.\par \pard\fi142\sa200\sl276\slmult1\qj A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work.\par A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product.\par "Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made.\par If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM).\par The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network.\par Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying.\par \pard\sa200\sl276\slmult1 7. Additional Terms.\par \pard\fi142\sa200\sl276\slmult1\qj "Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions.\par When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission.\par Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms:\par \pard\li284\sa200\sl276\slmult1\qj a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or\par b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or\par c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or\par d) Limiting the use for publicity purposes of names of licensors or authors of the material; or\par e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or\par f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors.\par \pard\fi142\sa200\sl276\slmult1\qj All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying.\par If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms.\par Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way.\par \pard\sa200\sl276\slmult1 8. Termination.\par \pard\fi142\sa200\sl276\slmult1\qj You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11).\par However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation.\par Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice.\par Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10.\par \pard\sa200\sl276\slmult1 9. Acceptance Not Required for Having Copies.\par \pard\fi142\sa200\sl276\slmult1\qj You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so.\par \pard\sa200\sl276\slmult1 10. Automatic Licensing of Downstream Recipients.\par \pard\fi142\sa200\sl276\slmult1\qj Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License.\par An "entity transaction" is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts.\par You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it.\par \pard\sa200\sl276\slmult1 11. Patents.\par \pard\fi142\sa200\sl276\slmult1\qj A "contributor" is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's "contributor version".\par A contributor's "essential patent claims" are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, "control" includes the right to grant patent sublicenses in a manner consistent with the requirements of this License.\par Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version.\par In the following three paragraphs, a "patent license" is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To "grant" such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party.\par If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. "Knowingly relying" means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid.\par If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it.\par A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007.\par Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law.\par \pard\sa200\sl276\slmult1 12. No Surrender of Others' Freedom.\par \pard\fi142\sa200\sl276\slmult1\qj If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program.\par \pard\sa200\sl276\slmult1 13. Use with the GNU Affero General Public License.\par \pard\fi142\sa200\sl276\slmult1\qj Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such.\par \pard\sa200\sl276\slmult1 14. Revised Versions of this License.\par \pard\fi142\sa200\sl276\slmult1\qj The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.\par Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation.\par If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program.\par Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version.\par \pard\sa200\sl276\slmult1 15. Disclaimer of Warranty.\par \pard\fi142\sa200\sl276\slmult1\qj THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.\par \pard\sa200\sl276\slmult1 16. Limitation of Liability.\par \pard\fi142\sa200\sl276\slmult1\qj IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.\par \pard\sa200\sl276\slmult1 17. Interpretation of Sections 15 and 16.\par \pard\fi142\sa200\sl276\slmult1\qj If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee.\par \pard\sa200\sl276\slmult1\qc\b END OF TERMS AND CONDITIONS\b0\par \pard\sa200\sl276\slmult1\par \pard\sa200\sl276\slmult1\qc\b How to Apply These Terms to Your New Programs\par \pard\fi142\sa200\sl276\slmult1\qj\b0 If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms.\par To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found.\par \pard\sa200\sl276\slmult1 \par \pard\li284\sa200\sl276\slmult1\qj Copyright (C) \par This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.\par 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.\par You should have received a copy of the GNU General Public License along with this program. If not, see <{\field{\*\fldinst{HYPERLINK "http://www.gnu.org/licenses/"}}{\fldrslt{\ul\cf1 http://www.gnu.org/licenses/}}}\f0\fs20 >.\par \pard\sa200\sl276\slmult1 Also add information on how to contact you by electronic and paper mail.\par \pard\fi142\sa200\sl276\slmult1\qj If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode:\par \pard\li284\sa200\sl276\slmult1\qj Copyright (C) This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details.\par \pard\sa200\sl276\slmult1\qj The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, your program's commands might be different; for a GUI interface, you would use an "about box".\par \pard\fi142\sa200\sl276\slmult1\qj You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see <{\field{\*\fldinst{HYPERLINK "http://www.gnu.org/licenses/"}}{\fldrslt{\ul\cf1 http://www.gnu.org/licenses/}}}\f0\fs20 >.\par The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read <{\field{\*\fldinst{HYPERLINK "http://www.gnu.org/philosophy/why-not-lgpl.html"}}{\fldrslt{\ul\cf1 http://www.gnu.org/philosophy/why-not-lgpl.html}}}\f0\fs20 >.\par \pard\sa200\sl276\slmult1\par \pard\sa200\sl276\slmult1\qc ----------------------------------------------------------------------------------------------------\par \pard\sa200\sl276\slmult1\par \pard\sa200\sl276\slmult1\qc\b\fs22 Mozilla Public License Version 2.0\par \pard\sa200\sl276\slmult1\b0\fs20\par \fs22 1. Definitions\fs20\par 1.1. "Contributor"\par \pard\fi-10\li426\sa200\sl276\slmult1\qj means each individual or legal entity that creates, contributes to the creation of, or owns Covered Software.\par \pard\sa200\sl276\slmult1 1.2. "Contributor Version"\par \pard\li426\sa200\sl276\slmult1\qj means the combination of the Contributions of others (if any) used by a Contributor and that particular Contributor's Contribution.\par \pard\sa200\sl276\slmult1 1.3. "Contribution"\par \pard\li426\sa200\sl276\slmult1\qj means Covered Software of a particular Contributor.\par \pard\sa200\sl276\slmult1 1.4. "Covered Software"\par \pard\li426\sa200\sl276\slmult1\qj means Source Code Form to which the initial Contributor has attached the notice in Exhibit A, the Executable Form of such Source Code Form, and Modifications of such Source Code Form, in each case including portions thereof.\par \pard\sa200\sl276\slmult1 1.5. "Incompatible With Secondary Licenses"\par \pard\li426\sa200\sl276\slmult1\qj means\par (a) that the initial Contributor has attached the notice described in Exhibit B to the Covered Software; or\par (b) that the Covered Software was made available under the terms of version 1.1 or earlier of the License, but not also under the terms of a Secondary License.\par \pard\sa200\sl276\slmult1 1.6. "Executable Form"\par \pard\li426\sa200\sl276\slmult1\qj means any form of the work other than Source Code Form.\par \pard\sa200\sl276\slmult1 1.7. "Larger Work"\par \pard\li426\sa200\sl276\slmult1\qj means a work that combines Covered Software with other material, in a separate file or files, that is not Covered Software.\par \pard\sa200\sl276\slmult1 1.8. "License"\par \pard\li426\sa200\sl276\slmult1\qj means this document.\par \pard\sa200\sl276\slmult1 1.9. "Licensable"\par \pard\li426\sa200\sl276\slmult1\qj means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently, any and all of the rights conveyed by this License.\par \pard\sa200\sl276\slmult1 1.10. "Modifications"\par \pard\li426\sa200\sl276\slmult1\qj means any of the following:\par (a) any file in Source Code Form that results from an addition to, deletion from, or modification of the contents of Covered Software; or\par (b) any new file in Source Code Form that contains any Covered Software.\par \pard\sa200\sl276\slmult1 1.11. "Patent Claims" of a Contributor\par \pard\li426\sa200\sl276\slmult1\qj means any patent claim(s), including without limitation, method, process, and apparatus claims, in any patent Licensable by such Contributor that would be infringed, but for the grant of the License, by the making, using, selling, offering for sale, having made, import, or transfer of either its Contributions or its Contributor Version.\par \pard\sa200\sl276\slmult1 1.12. "Secondary License"\par \pard\li426\sa200\sl276\slmult1\qj means either the GNU General Public License, Version 2.0, the GNU Lesser General Public License, Version 2.1, the GNU Affero General Public License, Version 3.0, or any later versions of those licenses.\par \pard\sa200\sl276\slmult1 1.13. "Source Code Form"\par \pard\li426\sa200\sl276\slmult1\qj means the form of the work preferred for making modifications.\par \pard\sa200\sl276\slmult1 1.14. "You" (or "Your")\par \pard\li426\sa200\sl276\slmult1\qj means an individual or a legal entity exercising rights under this License. For legal entities, "You" includes any entity that controls, is controlled by, or is under common control with You. For purposes of this definition, "control" means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity.\par \pard\sa200\sl276\slmult1\fs22 2. License Grants and Conditions\fs20\par 2.1. Grants\par Each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license:\par \pard\li426\sa200\sl276\slmult1\qj (a) under intellectual property rights (other than patent or trademark) Licensable by such Contributor to use, reproduce, make available, modify, display, perform, distribute, and otherwise exploit its Contributions, either on an unmodified basis, with Modifications, or as part of a Larger Work; and\par (b) under Patent Claims of such Contributor to make, use, sell, offer for sale, have made, import, and otherwise transfer either its Contributions or its Contributor Version.\par \pard\sa200\sl276\slmult1 2.2. Effective Date\par \pard\sa200\sl276\slmult1\qj The licenses granted in Section 2.1 with respect to any Contribution become effective for each Contribution on the date the Contributor first distributes such Contribution.\par \pard\sa200\sl276\slmult1 2.3. Limitations on Grant Scope\par \pard\sa200\sl276\slmult1\qj The licenses granted in this Section 2 are the only rights granted under this License. No additional rights or licenses will be implied from the distribution or licensing of Covered Software under this License. Notwithstanding Section 2.1(b) above, no patent license is granted by a Contributor:\par \pard\li426\sa200\sl276\slmult1 (a) for any code that a Contributor has removed from Covered Software; or\par (b) for infringements caused by: (i) Your and any other third party's modifications of Covered Software, or (ii) the combination of its Contributions with other software (except as part of its Contributor Version); or\par (c) under Patent Claims infringed by Covered Software in the absence of its Contributions.\par \pard\sa200\sl276\slmult1\qj This License does not grant any rights in the trademarks, service marks, or logos of any Contributor (except as may be necessary to comply with the notice requirements in Section 3.4).\par \pard\sa200\sl276\slmult1 2.4. Subsequent Licenses\par \pard\sa200\sl276\slmult1\qj No Contributor makes additional grants as a result of Your choice to distribute the Covered Software under a subsequent version of this License (see Section 10.2) or under the terms of a Secondary License (if permitted under the terms of Section 3.3).\par \pard\sa200\sl276\slmult1 2.5. Representation\par \pard\sa200\sl276\slmult1\qj Each Contributor represents that the Contributor believes its Contributions are its original creation(s) or it has sufficient rights to grant the rights to its Contributions conveyed by this License.\par \pard\sa200\sl276\slmult1 2.6. Fair Use\par \pard\sa200\sl276\slmult1\qj This License is not intended to limit any rights You have under applicable copyright doctrines of fair use, fair dealing, or other equivalents.\par \pard\sa200\sl276\slmult1 2.7. Conditions\par Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted in Section 2.1.\par \fs22 3. Responsibilities\par \fs20 3.1. Distribution of Source Form\par \pard\sa200\sl276\slmult1\qj All distribution of Covered Software in Source Code Form, including any Modifications that You create or to which You contribute, must be under the terms of this License. You must inform recipients that the Source Code Form of the Covered Software is governed by the terms of this License, and how they can obtain a copy of this License. You may not attempt to alter or restrict the recipients' rights in the Source Code Form.\par \pard\sa200\sl276\slmult1 3.2. Distribution of Executable Form\par If You distribute Covered Software in Executable Form then:\par \pard\li426\sa200\sl276\slmult1\qj (a) such Covered Software must also be made available in Source Code Form, as described in Section 3.1, and You must inform recipients of the Executable Form how they can obtain a copy of such Source Code Form by reasonable means in a timely manner, at a charge no more than the cost of distribution to the recipient; and\par (b) You may distribute such Executable Form under the terms of this License, or sublicense it under different terms, provided that the license for the Executable Form does not attempt to limit or alter the recipients' rights in the Source Code Form under this License.\par \pard\sa200\sl276\slmult1 3.3. Distribution of a Larger Work\par \pard\sa200\sl276\slmult1\qj You may create and distribute a Larger Work under terms of Your choice, provided that You also comply with the requirements of this License for the Covered Software. If the Larger Work is a combination of Covered Software with a work governed by one or more Secondary Licenses, and the Covered Software is not Incompatible With Secondary Licenses, this License permits You to additionally distribute such Covered Software under the terms of such Secondary License(s), so that the recipient of the Larger Work may, at their option, further distribute the Covered Software under the terms of either this License or such Secondary License(s).\par \pard\sa200\sl276\slmult1 3.4. Notices\par \pard\sa200\sl276\slmult1\qj You may not remove or alter the substance of any license notices (including copyright notices, patent notices, disclaimers of warranty, or limitations of liability) contained within the Source Code Form of the Covered Software, except that You may alter any license notices to the extent required to remedy known factual inaccuracies.\par \pard\sa200\sl276\slmult1 3.5. Application of Additional Terms\par \pard\sa200\sl276\slmult1\qj You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Software. However, You may do so only on Your own behalf, and not on behalf of any Contributor. You must make it absolutely clear that any such warranty, support, indemnity, or liability obligation is offered by You alone, and You hereby agree to indemnify every Contributor for any liability incurred by such Contributor as a result of warranty, support, indemnity or liability terms You offer. You may include additional disclaimers of warranty and limitations of liability specific to any jurisdiction.\par \pard\sa200\sl276\slmult1\fs22 4. Inability to Comply Due to Statute or Regulation\par \pard\sa200\sl276\slmult1\qj\fs20 If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Software due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be placed in a text file included with all distributions of the Covered Software under this License. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it.\par \pard\sa200\sl276\slmult1\fs22 5. Termination\fs20\par \pard\sa200\sl276\slmult1\qj 5.1. The rights granted under this License will terminate automatically if You fail to comply with any of its terms. However, if You become compliant, then the rights granted under this License from a particular Contributor are reinstated (a) provisionally, unless and until such Contributor explicitly and finally terminates Your grants, and (b) on an ongoing basis, if such Contributor fails to notify You of the non-compliance by some reasonable means prior to 60 days after You have come back into compliance. Moreover, Your grants from a particular Contributor are reinstated on an ongoing basis if such Contributor notifies You of the non-compliance by some reasonable means, this is the first time You have received notice of non-compliance with this License from such Contributor, and You become compliant prior to 30 days after Your receipt of the notice.\par 5.2. If You initiate litigation against any entity by asserting a patent infringement claim (excluding declaratory judgment actions, counter-claims, and cross-claims) alleging that a Contributor Version directly or indirectly infringes any patent, then the rights granted to You by any and all Contributors for the Covered Software under Section 2.1 of this License shall terminate.\par 5.3. In the event of termination under Sections 5.1 or 5.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or Your distributors under this License prior to termination shall survive termination.\par \pard\sa200\sl276\slmult1\fs22 6. Disclaimer of Warranty\fs20\par \pard\sa200\sl276\slmult1\qj Covered Software is provided under this License on an "as is" basis, without warranty of any kind, either expressed, implied, or statutory, including, without limitation, warranties that the Covered Software is free of defects, merchantable, fit for a particular purpose or non-infringing. The entire risk as to the quality and performance of the Covered Software is with You. Should any Covered Software prove defective in any respect, You (not any Contributor) assume the cost of any necessary servicing, repair, or correction. This disclaimer of warranty constitutes an essential part of this License. No use of any Covered Software is authorized under this License except under this disclaimer.\par \pard\sa200\sl276\slmult1\fs22 7. Limitation of Liability\fs20\par \pard\sa200\sl276\slmult1\qj Under no circumstances and under no legal theory, whether tort (including negligence), contract, or otherwise, shall any Contributor, or anyone who distributes Covered Software as permitted above, be liable to You for any direct, indirect, special, incidental, or consequential damages of any character including, without limitation, damages for lost profits, loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses, even if such party shall have been informed of the possibility of such damages. This limitation of liability shall not apply to liability for death or personal injury resulting from such party's negligence to the extent applicable law prohibits such limitation. Some jurisdictions do not allow the exclusion or limitation of incidental or consequential damages, so this exclusion and limitation may not apply to You.\par \pard\sa200\sl276\slmult1\fs22 8. Litigation\fs20\par \pard\sa200\sl276\slmult1\qj Any litigation relating to this License may be brought only in the courts of a jurisdiction where the defendant maintains its principal place of business and such litigation shall be governed by laws of that jurisdiction, without reference to its conflict-of-law provisions. Nothing in this Section shall prevent a party's ability to bring cross-claims or counter-claims.\par \pard\sa200\sl276\slmult1\fs22 9. Miscellaneous\fs20\par \pard\sa200\sl276\slmult1\qj This License represents the complete agreement concerning the subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not be used to construe this License against a Contributor.\par \pard\sa200\sl276\slmult1\fs22 10. Versions of the License\par \fs20 10.1. New Versions\par \pard\sa200\sl276\slmult1\qj Mozilla Foundation is the license steward. Except as provided in Section 10.3, no one other than the license steward has the right to modify or publish new versions of this License. Each version will be given a distinguishing version number.\par \pard\sa200\sl276\slmult1 10.2. Effect of New Versions\par \pard\sa200\sl276\slmult1\qj You may distribute the Covered Software under the terms of the version of the License under which You originally received the Covered Software, or under the terms of any subsequent version published by the license steward.\par \pard\sa200\sl276\slmult1 10.3. Modified Versions\par \pard\sa200\sl276\slmult1\qj If you create software not governed by this License, and you want to create a new license for such software, you may create and use a modified version of this License if you rename the license and remove any references to the name of the license steward (except to note that such modified license differs from this License).\par \pard\sa200\sl276\slmult1 10.4. Distributing Source Code Form that is Incompatible With Secondary Licenses\par \pard\sa200\sl276\slmult1\qj If You choose to distribute Source Code Form that is Incompatible With Secondary Licenses under the terms of this version of the License, the notice described in Exhibit B of this License must be attached.\par \pard\sa200\sl276\slmult1\fs22 Exhibit A - Source Code Form License Notice\par \pard\li284\sa200\sl276\slmult1\qj\fs20 This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at {\field{\*\fldinst{HYPERLINK "http://mozilla.org/MPL/2.0/"}}{\fldrslt{\ul\cf1 http://mozilla.org/MPL/2.0/}}}\f0\fs20 .\par \pard\sa200\sl276\slmult1\qj If it is not possible or desirable to put the notice in a particular file, then You may include the notice in a location (such as a LICENSE file in a relevant directory) where a recipient would be likely to look for such a notice.\par \pard\sa200\sl276\slmult1 You may add additional accurate notices of copyright ownership.\par \fs22 Exhibit B - "Incompatible With Secondary Licenses" Notice\par \pard\li284\sa200\sl276\slmult1\qj\fs20 This Source Code Form is "Incompatible With Secondary Licenses", as defined by the Mozilla Public License, v. 2.0.\par } sqlitebrowser-3.12.1/installer/windows/nightly_build_scripts/000077500000000000000000000000001374246124700246105ustar00rootroot00000000000000sqlitebrowser-3.12.1/installer/windows/nightly_build_scripts/win32build.bat000077500000000000000000000134351374246124700272730ustar00rootroot00000000000000:: Destination path - specify where to move package after build SET DEST_PATH=C:\\builds MKDIR "%DEST_PATH%" SET ZIP_EXE="C:\Program Files\7-Zip\7z.exe" SET SQLITE_DIR=C:\\dev\\SQLite-Win32 SET SQLCIPHER_DIR=C:\\git_repos\\SQLCipher-Win32 SET SQLCIPHER_TAG=v4.3.0 :: You need to change the date format in Windows settings to YYYY-MM-DD :: before this will work properly. ;) set RUN_DATE=%DATE% :: If no branch given on the command line, use master IF "%1"=="" (SET BRANCH="master") ELSE (SET BRANCH="%1") CD /d "C:\" if exist "%SQLITE_DIR%" rd /q /s "%SQLITE_DIR%" if exist "C:\\builds\\release-sqlite-win32" rd /q /s "C:\\builds\\release-sqlite-win32" if exist "C:\\builds\\release-sqlcipher-win32" rd /q /s "C:\\builds\\release-sqlcipher-win32" :: Unpack SQLite CD C:\dev %ZIP_EXE% e sqlite*zip "-o%SQLITE_DIR%" :: Update repositories ::git clone -b v3.4.2 https://github.com/sqlcipher/sqlcipher.git SQLCipher-Win32 CD C:\\git_repos\\SQLCipher-Win32 git clean -dffx git checkout -f HEAD git checkout master git pull git checkout "%SQLCIPHER_TAG%" git clean -dffx git pull git clean -dffx ::git clone -b %BRANCH% https://github.com/sqlitebrowser/sqlitebrowser.git "%DB4S_DIR%Win32" CD C:\\git_repos\\sqlitebrowser git clean -dffx git checkout -f HEAD git checkout master git pull git checkout %BRANCH% git clean -dffx git pull git clean -dffx :: Get the current commit hash FOR /F %%A IN ('git rev-parse --verify HEAD') DO SET CURRENT_COMMIT=%%A :: Get the last build commit hash from the server curl -f -L -o commit.txt "https://nightlies.sqlitebrowser.org/win32/commit.txt" :: Save the hash to a variable for comparison IF EXIST "commit.txt" SET /P LAST_COMMIT=C:\\builds\\commit.txt pscp -q -p -i C:\dev\puttygen_private.ppk "%DEST_PATH%\commit.txt" nightlies@nightlies.sqlitebrowser.org:/nightlies/win32 :: Upload the packages to the nightlies server pscp -q -p -i C:\dev\puttygen_private.ppk "%DEST_PATH%\DB*%RUN_DATE%*win32.*" nightlies@nightlies.sqlitebrowser.org:/nightlies/win32 :: Copy the new binaries to /latest directory on the nightlies server plink -i C:\dev\puttygen_private.ppk nightlies@nightlies.sqlitebrowser.org "cd /nightlies/latest; rm -f *-win32.*" plink -i C:\dev\puttygen_private.ppk nightlies@nightlies.sqlitebrowser.org "cp /nightlies/win32/DB*SQLite-%RUN_DATE%-win32.msi /nightlies/latest/DB.Browser.for.SQLite-win32.msi" plink -i C:\dev\puttygen_private.ppk nightlies@nightlies.sqlitebrowser.org "cp /nightlies/win32/DB*SQLite-%RUN_DATE%-win32.zip /nightlies/latest/DB.Browser.for.SQLite-win32.zip" sqlitebrowser-3.12.1/installer/windows/nightly_build_scripts/win64build.bat000077500000000000000000000134471374246124700273030ustar00rootroot00000000000000:: Destination path - specify where to move package after build SET DEST_PATH=C:\\builds MKDIR "%DEST_PATH%" SET ZIP_EXE="C:\Program Files\7-Zip\7z.exe" SET SQLITE_DIR=C:\\dev\\SQLite-Win64 SET SQLCIPHER_DIR=C:\\git_repos\\SQLCipher-Win64 SET SQLCIPHER_TAG=v4.3.0 :: You need to change the date format in Windows settings to YYYY-MM-DD :: before this will work properly. ;) set RUN_DATE=%DATE% :: If no branch given on the command line, use master IF "%1"=="" (SET BRANCH="master") ELSE (SET BRANCH="%1") CD /d "C:\" if exist "%SQLITE_DIR%" rd /q /s "%SQLITE_DIR%" if exist "C:\\builds\\release-sqlite-win64" rd /q /s "C:\\builds\\release-sqlite-win64" if exist "C:\\builds\\release-sqlcipher-win64" rd /q /s "C:\\builds\\release-sqlcipher-win64" :: Unpack SQLite CD C:\dev %ZIP_EXE% e sqlite*zip "-o%SQLITE_DIR%" :: Update repositories ::git clone -b v3.4.2 https://github.com/sqlcipher/sqlcipher.git SQLCipher-Win64 CD C:\\git_repos\\SQLCipher-Win64 git clean -dffx git checkout -f HEAD git checkout master git pull git checkout "%SQLCIPHER_TAG%" git clean -dffx git pull git clean -dffx ::git clone -b %BRANCH% https://github.com/sqlitebrowser/sqlitebrowser.git "%DB4S_DIR%Win64" CD C:\\git_repos\\sqlitebrowser git clean -dffx git checkout -f HEAD git checkout master git pull git checkout %BRANCH% git clean -dffx git pull git clean -dffx :: Get the current commit hash FOR /F %%A IN ('git rev-parse --verify HEAD') DO SET CURRENT_COMMIT=%%A :: Get the last build commit hash from the server curl -f -L -o commit.txt "https://nightlies.sqlitebrowser.org/win64/commit.txt" :: Save the hash to a variable for comparison IF EXIST "commit.txt" SET /P LAST_COMMIT=C:\\builds\\commit.txt pscp -q -p -i C:\dev\puttygen_private.ppk "%DEST_PATH%\commit.txt" nightlies@nightlies.sqlitebrowser.org:/nightlies/win64 :: Upload the packages to the nightlies server pscp -q -p -i C:\dev\puttygen_private.ppk "%DEST_PATH%\DB*%RUN_DATE%*win64.*" nightlies@nightlies.sqlitebrowser.org:/nightlies/win64 :: Copy the new binaries to /latest directory on the nightlies server plink -i C:\dev\puttygen_private.ppk nightlies@nightlies.sqlitebrowser.org "cd /nightlies/latest; rm -f *-win64.*" plink -i C:\dev\puttygen_private.ppk nightlies@nightlies.sqlitebrowser.org "cp /nightlies/win64/DB*SQLite-%RUN_DATE%-win64.msi /nightlies/latest/DB.Browser.for.SQLite-win64.msi" plink -i C:\dev\puttygen_private.ppk nightlies@nightlies.sqlitebrowser.org "cp /nightlies/win64/DB*SQLite-%RUN_DATE%-win64.zip /nightlies/latest/DB.Browser.for.SQLite-win64.zip" sqlitebrowser-3.12.1/installer/windows/product.wxs000066400000000000000000000442511374246124700224350ustar00rootroot00000000000000 SHORTCUT_SQLITE_DESKTOP SHORTCUT_SQLCIPHER_DESKTOP SHORTCUT_SQLITE_PROGRAMMENU SHORTCUT_SQLCIPHER_PROGRAMMENU LicenseAccepted = "1" NOT Installed NSIS_INSTALLDIR NSIS_INSTALLDIR sqlitebrowser-3.12.1/installer/windows/resources/000077500000000000000000000000001374246124700222165ustar00rootroot00000000000000sqlitebrowser-3.12.1/installer/windows/resources/background.xcf000066400000000000000000001017211374246124700250410ustar00rootroot00000000000000gimp xcf v0118BB 6 gimp-commentgimp-image-grid(style solid) (fgcolor (color-rgba 0.000000 0.000000 0.000000 1.000000)) (bgcolor (color-rgba 1.000000 1.000000 1.000000 1.000000)) (xspacing 10.000000) (yspacing 10.000000) (spacing-unit inches) (xoffset 0.000000) (yoffset 0.000000) (offset-unit inches) ~v logo.png!? "     %$# v~v 3\&NN$NNP]r} NMUlX Nl NZ" PNS{&LNW*Nx-NT0.NR2N{4BNT6N\7SNW8ON9[Yk9lg:}u::9986ı5ɵ3򭰳̻1𭰳ij/Ϳ,˾)񭰳̾%µ 뭰Ƚ筰Ǽ⭰ɿ Ԫͭ ü&INNNÈTSVc`vo|  ɴ˹񭰳0ʺ-Ʒ*&NN$NNP]r} NMUlX Nl NZ" PNS{&LNW*Nx-NT0.NR2N{4BNT6N\7SNW8ON9[Yk9lg:}u::9986ı5ɵ3򭰳̻1𭰳ij/Ϳ,˾)񭰳̾%µ 뭰Ƚ筰Ǽ⭰ɿ Ԫͭ ü&INNNÈTSVc`vo|  ɴ˹񭰳0ʺ-Ʒ*&NN$NNP]r} NMUlX Nl NZ" PNS{&LNW*Nx-NT0.NR2N{4BNT6N\7SNW8ON9[Yk9lg:}u::9986ı5ɵ3򭰳̻1𭰳ij/Ϳ,˾)񭰳̾%µ 뭰Ƚ筰Ǽ⭰ɿ Ԫͭ ü&INNNÈTSVc`vo|  ɴ˹񭰳0ʺ-Ʒ*& -G[l(UwK:t$'s(8, "/ J1X4@68:9X:U;/<=N>>>>>>>>>>>>>>>>>>>>>>>>>>>>w>=]=<==>> NOJ&N NvhTONC t^NvW N.k NM ` N; hN#XN%gN'£eN)SNQ+mNOX,|NRY-xNU.[ORY/Y/g]/ua/_/Y.~Y-]Y,lZY*s[ZY)q\[ZY'g^\[ZY$~`_^\[ZY!ga`_^\[ZYkdba`_^\[ZYkfedba`_^\[ZYvjigfedba`_^\[ZY 뙋znlkjigfedba`_^\[ZY ⛑wqponlkjigfedba`_^\[ZY➘zvutrqponlkjigfedba`_^\[ZYܟ|{zyxvutrqponlkjigfedba`_^\[ZY桞~|{zyxvutrqponlkjigfedba`_^\[ZY~|{zyxvutrqponlkjigfedba`_^\[ZY~|{zyxvutrqponlkjigfedba`_^\[ZY~|{zyxvutrqponlkjigfedba`_^\[ZY~|{zyxvutrqponlkjigfedba`_^\[ZY~|{zyxvutrqponlkjigfedba`_^\[ZX~|{zyxvutrqponlkjigfedba`_^\[ZY~|{zyxvutrqponlkjigfedba`_^\[ZY~|{zyxvutrqponlkjigfedba`_^\[ZX~|{zyxvutrqponlkjigfedba`_^\[Z~|{zyxvutrqponlkjigfedba`_^\Y~|{zyxvutrqponlkjigfedba`_]TPX~|{zyxvutrqponlkjigfedba`]SNNSY~|{zyxvutrqponlkjigfedbazSTY~|{zyxvutrqponlkjigfed|é`Z~|{zyxvutrqponlkjigfno`~|{zyxvutrqponlkjl|b~|{zyxvutrqponl؉Z~|{zyxvutrqrۇX~|{zyxvv ªޡkX~|{ ZX\ZX³^[ZX·^\[ZX%r_^\[ZX#c`_^\[ZX iba`_^\[ZX NOJ&N NvhTONC t^NvW N.k NM ` N; hN#XN%gN'£eN)SNQ+mNOX,|NRY-xNU.[ORY/Y/g]/ua/_/Y.~Y-]Y,lZY*s[ZY)q\[ZY'g^\[ZY$~`_^\[ZY!ga`_^\[ZYkdba`_^\[ZYkfedba`_^\[ZYvjigfedba`_^\[ZY 뙋znlkjigfedba`_^\[ZY ⛑wqponlkjigfedba`_^\[ZY➘zvutrqponlkjigfedba`_^\[ZYܟ|{zyxvutrqponlkjigfedba`_^\[ZY桞~|{zyxvutrqponlkjigfedba`_^\[ZY~|{zyxvutrqponlkjigfedba`_^\[ZY~|{zyxvutrqponlkjigfedba`_^\[ZY~|{zyxvutrqponlkjigfedba`_^\[ZY~|{zyxvutrqponlkjigfedba`_^\[ZY~|{zyxvutrqponlkjigfedba`_^\[ZX~|{zyxvutrqponlkjigfedba`_^\[ZY~|{zyxvutrqponlkjigfedba`_^\[ZY~|{zyxvutrqponlkjigfedba`_^\[ZX~|{zyxvutrqponlkjigfedba`_^\[Z~|{zyxvutrqponlkjigfedba`_^\Y~|{zyxvutrqponlkjigfedba`_]TPX~|{zyxvutrqponlkjigfedba`]SNNSY~|{zyxvutrqponlkjigfedbazSTY~|{zyxvutrqponlkjigfed|é`Z~|{zyxvutrqponlkjigfno`~|{zyxvutrqponlkjl|b~|{zyxvutrqponl؉Z~|{zyxvutrqrۇX~|{zyxvv ªޡkX~|{ ZX\ZX³^[ZX·^\[ZX%r_^\[ZX#c`_^\[ZX iba`_^\[ZX NOJ&N NvhTONC t^NvW N.k NM ` N; hN#XN%gN'£eN)SNQ+mNOX,|NRY-xNU.[ORY/Y/g]/ua/_/Y.~Y-]Y,lZY*s[ZY)q\[ZY'g^\[ZY$~`_^\[ZY!ga`_^\[ZYkdba`_^\[ZYkfedba`_^\[ZYvjigfedba`_^\[ZY 뙋znlkjigfedba`_^\[ZY ⛑wqponlkjigfedba`_^\[ZY➘zvutrqponlkjigfedba`_^\[ZYܟ|{zyxvutrqponlkjigfedba`_^\[ZY桞~|{zyxvutrqponlkjigfedba`_^\[ZY~|{zyxvutrqponlkjigfedba`_^\[ZY~|{zyxvutrqponlkjigfedba`_^\[ZY~|{zyxvutrqponlkjigfedba`_^\[ZY~|{zyxvutrqponlkjigfedba`_^\[ZY~|{zyxvutrqponlkjigfedba`_^\[ZX~|{zyxvutrqponlkjigfedba`_^\[ZY~|{zyxvutrqponlkjigfedba`_^\[ZY~|{zyxvutrqponlkjigfedba`_^\[ZX~|{zyxvutrqponlkjigfedba`_^\[Z~|{zyxvutrqponlkjigfedba`_^\Y~|{zyxvutrqponlkjigfedba`_]TPX~|{zyxvutrqponlkjigfedba`]SNNSY~|{zyxvutrqponlkjigfedbazSTY~|{zyxvutrqponlkjigfed|é`Z~|{zyxvutrqponlkjigfno`~|{zyxvutrqponlkjl|b~|{zyxvutrqponl؉Z~|{zyxvutrqrۇX~|{zyxvv ªޡkX~|{ ZX\ZX³^[ZX·^\[ZX%r_^\[ZX#c`_^\[ZX iba`_^\[ZXɾtbP9' ɤc9 a2ċQӋF!X $G 'v )+z-=.01 233 4444444444444444444444444444_32?22234W4444444444444󭰳Ʒ'𭰳Ⱥ"魰Ƚ孰ɾֺļҭƭ¡NjNNdONWXV[hdxr  ¬Ƴ#Lͼ/Ƿ,꬯ĵ)򬯳Ķ%אָǺ!쬯謯ɾ㬯ձǿϬŽQøŽ #󭰳Ʒ'𭰳Ⱥ"魰Ƚ孰ɾֺļҭƭ¡NjNNdONWXV[hdxr  ¬Ƴ#Lͼ/Ƿ,꬯ĵ)򬯳Ķ%אָǺ!쬯謯ɾ㬯ձǿϬŽQøŽ #󭰳Ʒ'𭰳Ⱥ"魰Ƚ孰ɾֺļҭƭ¡NjNNdONWXV[hdxr  ¬Ƴ#Lͼ/Ƿ,꬯ĵ)򬯳Ķ%אָǺ!쬯謯ɾ㬯ձǿϬŽQøŽ #>>>>>=<<=&=>>>>>>>>>>>>>>>>>>>>>>>>>>>w>=o=<;:S86+4 (2 k0&|,h)0k%D{!Lp%#@Ufxjedba`_^\[ZX¾{igfedba`_^\[ZX쟓okjigfedba`_^\[ZX ޙqonlkjigfedba`_^\[ZX䠙xtrqponlkjigfedba`_^\[ZXߟzyxvutrqponlkjigfedba`_^\[ZX ៜ~|{zyxvutrqponlkjigfedba`_^\[ZX~|{zyxvutrqponlkjigfedba`_^\[ZX~|{zyxvutrqponlkjigfedba`_^\[ZX~|{zyxvutrqponlkjigfedba`_^\[ZX~|{zyxvutrqponlkjigfedba`_^\[ZX~|{zyxvutrqponlkjigfedba`_^\[ZX~|{zyxvutrqponlkjigfedba`_^\[ZY~|{zyxvutrqponlkjigfedba`_^\[ZY~|{zyxvutrqponlkjigfedba`_^\[ZY~|{zyxvutrqponlkjigfedba`_^\[Z~|{zyxvutrqponlkjigfedba`_^\[Y~|{zyxvutrqponlkjigfedba`_^ZSY~|{zyxvutrqponlkjigfedba`_YONV~|{zyxvutrqponlkjigfedbad^NRY~|{zyxvutrqponlkjigfedbVY~|{zyxvutrqponlkjigfeõd]~|{zyxvutrqponlkjihqrb~|{zyxvutrqponlkwd~|{zyxvutrqpoyٍ[~|{zyxvutt ݈Y~|{zy{ gY|ZY[ZY\[ZY#v^\[ZY%g_^\[ZY"ua`_^\[ZYzdca`_^\[ZYvfedca`_^\[ZY½nigfedca`_^\[ZY½ 롖tlkjigfedca`_^\[ZY¿ tponlkjigfedca`_^\[ZY㟘yutsqponlkjigfedca`_^\[ZYݡ{zyxvutsqponlkjigfedca`_^\[ZY ~}{zyxvutsqponlkjigfedca`_^\[ZY~}{zyxvutsqponlkjigfedca`_^\[ZY~}{zyxvutsqponlkjigfedca`_^\[ZY~}{zyxvutsqponlkjigfedca`_^\[ZY~}{zyxvutsqponlkjigfedca`_^\[ZY~}{zyxvutsqponlkjigfedca`_^\[ZY~}{zyxvutsqponmkjigfedca`_^\[ZY~}{zyxvutsqponlkjigfedca`_^\[ZY~}{zyxvutsqponlkjigfedca`_^\[ZY~}{zyxvutsqponlkjigfedca`_^\[Z~}{zyxvutsqponlkjigfedca`_^\[Z~}{zyxvutsqponlkjigfedca`_^\\~}{zyxvutsqponlkjigfedca`_^\Ϛ~}{zyxvutsqponlkjigfedca`_К~}{zyxvutsqponlkjigfedcb`њ~}{zyxvutsqponlkjigfedc6Ԛ~}{zyxvutsqponlkjigfe ֚~}{zyxvutsqponlkjij ؚ~}{zyxvutsqponmlB ۚ~}{zyxvutsqpo-~}{zyxvut㚙~}|zS蚙 񚙘&jedba`_^\[ZX¾{igfedba`_^\[ZX쟓okjigfedba`_^\[ZX ޙqonlkjigfedba`_^\[ZX䠙xtrqponlkjigfedba`_^\[ZXߟzyxvutrqponlkjigfedba`_^\[ZX ៜ~|{zyxvutrqponlkjigfedba`_^\[ZX~|{zyxvutrqponlkjigfedba`_^\[ZX~|{zyxvutrqponlkjigfedba`_^\[ZX~|{zyxvutrqponlkjigfedba`_^\[ZX~|{zyxvutrqponlkjigfedba`_^\[ZX~|{zyxvutrqponlkjigfedba`_^\[ZX~|{zyxvutrqponlkjigfedba`_^\[ZY~|{zyxvutrqponlkjigfedba`_^\[ZY~|{zyxvutrqponlkjigfedba`_^\[ZY~|{zyxvutrqponlkjigfedba`_^\[Z~|{zyxvutrqponlkjigfedba`_^\[Y~|{zyxvutrqponlkjigfedba`_^ZSY~|{zyxvutrqponlkjigfedba`_YONV~|{zyxvutrqponlkjigfedbad^NRY~|{zyxvutrqponlkjigfedbVY~|{zyxvutrqponlkjigfeõd]~|{zyxvutrqponlkjihqrb~|{zyxvutrqponlkwd~|{zyxvutrqpoyٍ[~|{zyxvutt ݈Y~|{zy{ gY|ZY[ZY\[ZY#v^\[ZY%g_^\[ZY"ua`_^\[ZYzdca`_^\[ZYvfedca`_^\[ZY½nigfedca`_^\[ZY½ 롖tlkjigfedca`_^\[ZY¿ tponlkjigfedca`_^\[ZY㟘yutsqponlkjigfedca`_^\[ZYݡ{zyxvutsqponlkjigfedca`_^\[ZY ~}{zyxvutsqponlkjigfedca`_^\[ZY~}{zyxvutsqponlkjigfedca`_^\[ZY~}{zyxvutsqponlkjigfedca`_^\[ZY~}{zyxvutsqponlkjigfedca`_^\[ZY~}{zyxvutsqponlkjigfedca`_^\[ZY~}{zyxvutsqponlkjigfedca`_^\[ZY~}{zyxvutsqponmkjigfedca`_^\[ZY~}{zyxvutsqponlkjigfedca`_^\[ZY~}{zyxvutsqponlkjigfedca`_^\[ZY~}{zyxvutsqponlkjigfedca`_^\[Z~}{zyxvutsqponlkjigfedca`_^\[Z~}{zyxvutsqponlkjigfedca`_^\\~}{zyxvutsqponlkjigfedca`_^\Ϛ~}{zyxvutsqponlkjigfedca`_К~}{zyxvutsqponlkjigfedcb`њ~}{zyxvutsqponlkjigfedc6Ԛ~}{zyxvutsqponlkjigfe ֚~}{zyxvutsqponlkjij ؚ~}{zyxvutsqponmlB ۚ~}{zyxvutsqpo-~}{zyxvut㚙~}|zS蚙 񚙘&jedba`_^\[ZX¾{igfedba`_^\[ZX쟓okjigfedba`_^\[ZX ޙqonlkjigfedba`_^\[ZX䠙xtrqponlkjigfedba`_^\[ZXߟzyxvutrqponlkjigfedba`_^\[ZX ៜ~|{zyxvutrqponlkjigfedba`_^\[ZX~|{zyxvutrqponlkjigfedba`_^\[ZX~|{zyxvutrqponlkjigfedba`_^\[ZX~|{zyxvutrqponlkjigfedba`_^\[ZX~|{zyxvutrqponlkjigfedba`_^\[ZX~|{zyxvutrqponlkjigfedba`_^\[ZX~|{zyxvutrqponlkjigfedba`_^\[ZY~|{zyxvutrqponlkjigfedba`_^\[ZY~|{zyxvutrqponlkjigfedba`_^\[ZY~|{zyxvutrqponlkjigfedba`_^\[Z~|{zyxvutrqponlkjigfedba`_^\[Y~|{zyxvutrqponlkjigfedba`_^ZSY~|{zyxvutrqponlkjigfedba`_YONV~|{zyxvutrqponlkjigfedbad^NRY~|{zyxvutrqponlkjigfedbVY~|{zyxvutrqponlkjigfeõd]~|{zyxvutrqponlkjihqrb~|{zyxvutrqponlkwd~|{zyxvutrqpoyٍ[~|{zyxvutt ݈Y~|{zy{ gY|ZY[ZY\[ZY#v^\[ZY%g_^\[ZY"ua`_^\[ZYzdca`_^\[ZYvfedca`_^\[ZY½nigfedca`_^\[ZY½ 롖tlkjigfedca`_^\[ZY¿ tponlkjigfedca`_^\[ZY㟘yutsqponlkjigfedca`_^\[ZYݡ{zyxvutsqponlkjigfedca`_^\[ZY ~}{zyxvutsqponlkjigfedca`_^\[ZY~}{zyxvutsqponlkjigfedca`_^\[ZY~}{zyxvutsqponlkjigfedca`_^\[ZY~}{zyxvutsqponlkjigfedca`_^\[ZY~}{zyxvutsqponlkjigfedca`_^\[ZY~}{zyxvutsqponlkjigfedca`_^\[ZY~}{zyxvutsqponmkjigfedca`_^\[ZY~}{zyxvutsqponlkjigfedca`_^\[ZY~}{zyxvutsqponlkjigfedca`_^\[ZY~}{zyxvutsqponlkjigfedca`_^\[Z~}{zyxvutsqponlkjigfedca`_^\[Z~}{zyxvutsqponlkjigfedca`_^\\~}{zyxvutsqponlkjigfedca`_^\Ϛ~}{zyxvutsqponlkjigfedca`_К~}{zyxvutsqponlkjigfedcb`њ~}{zyxvutsqponlkjigfedc6Ԛ~}{zyxvutsqponlkjigfe ֚~}{zyxvutsqponlkjij ؚ~}{zyxvutsqponmlB ۚ~}{zyxvutsqpo-~}{zyxvut㚙~}|zS蚙 񚙘&444444444444443%3223o34444433v21/.C, *({ %K "YЈDMᲊW* ۺyW- |hWC+ &;@8 Background!? "     %$# 88-=M]m} -=M]m} -=M]m} @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @    {N='sqlitebrowser-3.12.1/installer/windows/resources/banner.xcf000066400000000000000000000142361374246124700241730ustar00rootroot00000000000000gimp xcf v011:BB6 gimp-commentgimp-image-grid(style solid) (fgcolor (color-rgba 0.000000 0.000000 0.000000 1.000000)) (bgcolor (color-rgba 1.000000 1.000000 1.000000 1.000000)) (xspacing 10.000000) (yspacing 10.000000) (spacing-unit inches) (xoffset 0.000000) (yoffset 0.000000) (offset-unit inches) ,0 logo.png!? "     %$#,0,0 MNN\trTN NOylNNvhNNq!cNNNN#xNQZl&XY~'}r%x"³YϾ]Yɼ濷j`]Yͽ ޿lgc`]Y¶E~tqmjgc`]Yû~{wtqmjgc`]Y~{wtqmjgc`]Y~{wtqmjgc`]Z~{wtqmjgc`]ZO~{wtqmjgcaTRi~{wtqmjjhe~{wtqÿzh󸦝rY쿴g]YϿΌoc`]YǺؼzmjgc`]YǽK{wtqmjgc`]Y~{wtqmjgc`]Y~{wtqmjgc`]Z~{wtqmjgc`]Z}~{wtqmjgc`ZTUk~{wtqmjgcTUz~{wtqmq|o~{wú|^ȵ 񽭢aZ龴w`]Z¸ྐྵvgd`]Zzqnjgd`]Z~{wtqnjgd`]Z~{wtqnjgd`]Z~{wtqnjgd`]Z~{wtqnjgd`]Z~{wtqnjgd`]~{wtqnjgda~{wtqnjg ~{xtqo| MNN\trTN NOylNNvhNNq!cNNNN#xNQZl&XY~'}r%x"³YϾ]Yɼ濷j`]Yͽ ޿lgc`]Y¶E~tqmjgc`]Yû~{wtqmjgc`]Y~{wtqmjgc`]Y~{wtqmjgc`]Z~{wtqmjgc`]ZO~{wtqmjgcaTRi~{wtqmjjhe~{wtqÿzh󸦝rY쿴g]YϿΌoc`]YǺؼzmjgc`]YǽK{wtqmjgc`]Y~{wtqmjgc`]Y~{wtqmjgc`]Z~{wtqmjgc`]Z}~{wtqmjgc`ZTUk~{wtqmjgcTUz~{wtqmq|o~{wú|^ȵ 񽭢aZ龴w`]Z¸ྐྵvgd`]Zzqnjgd`]Z~{wtqnjgd`]Z~{wtqnjgd`]Z~{wtqnjgd`]Z~{wtqnjgd`]Z~{wtqnjgd`]~{wtqnjgda~{wtqnjg ~{xtqo| MNN\trTN NOylNNvhNNq!cNNNN#xNQZl&XY~'}r%x"³YϾ]Yɼ濷j`]Yͽ ޿lgc`]Y¶E~tqmjgc`]Yû~{wtqmjgc`]Y~{wtqmjgc`]Y~{wtqmjgc`]Z~{wtqmjgc`]ZO~{wtqmjgcaTRi~{wtqmjjhe~{wtqÿzh󸦝rY쿴g]YϿΌoc`]YǺؼzmjgc`]YǽK{wtqmjgc`]Y~{wtqmjgc`]Y~{wtqmjgc`]Z~{wtqmjgc`]Z}~{wtqmjgc`ZTUk~{wtqmjgcTUz~{wtqmq|o~{wú|^ȵ 񽭢aZ龴w`]Z¸ྐྵvgd`]Zzqnjgd`]Z~{wtqnjgd`]Z~{wtqnjgd`]Z~{wtqnjgd`]Z~{wtqnjgd`]Z~{wtqnjgd`]~{wtqnjgda~{wtqnjg ~{xtqo| 'QọiFCx- 3,"f%=U(8))_)N))`))M).))s)v'L#BQC SʼnK4`~ͫoT, : Background!? "     %$#:z:&2>JVbn 2 2 2{=sqlitebrowser-3.12.1/installer/windows/resources/icon.png000066400000000000000000000157021374246124700236610ustar00rootroot00000000000000PNG  IHDR>a pHYs0w0w4.tEXtSoftwarewww.inkscape.org<tEXtAuthorJakub Steiner/!tEXtSourcehttp://jimmac.musichall.czif^XtEXtCopyrightCC0 Public Domain Dedication http://creativecommons.org/publicdomain/zero/1.0/IDATx]iy}s^)Q$u$$H DdR6bñ~$2@l8"r" -MR$Ga6P)Ǥ$2R"jwgfʏe{z{=4zf{75j'`PLNNdY!$c ?!$x lq%UXR T4M[R'N(,?[u rv2nam&lfV1} 4%\%xP(\я~T_uĚ1ns8{!p']6l P3iJBYމ'NJ099eJ~B rO  %x<-׫ MRȲFUU( :*dyScM K޴LNNƃG!܅:+x<DQaB!A~hZZRRbRB|>rmo_O<9 Io#<2rpNx<a||DX xjVAQr9dYdYiR)' uBȉW^y˕ΡCB&%I-Ƙ\I0117bӦMG$fr$dYF2fggVY^CG/#G>-Iғ>[o111T/߬`!bffW\ E1=]7cv_=q62Cs\(ʯ$Iغu+vލ;vܐ|*fggq%\x;H? }?۽^6hw|bbsvC(spEKC +G^ѓ|xaѸM$I뮻~V6MpY?mjBɓ'ueO<įB~(r?ߴi~angcHPUNӧA)m:t:_;yatQ%t4'|bxJUU'M$;$?.ǻ\.۷oh 1|DQٳ.\/BCB=r8hJRԖ[/_ &5EO,cccPjHHRJ%r9t" 8qFjrzm捿WZT%WN122D"YQV(0UUQ(P(077/[v5q1QjeMUU$IϣV}|IӂNDDBxb(Z^^is4-Z5c(X\\"TU896|>/J!zjU4Xg 4Υn tn8Spr,˂pM]CR mYZs dFlpX E~ABDQTP011!9Jr;G^)6s(RhEQ^UUvǀ%=eX(`t^17C\i-^~<@Vgh2[;88H$>sF3%I!śHRw)-ibDr9o5/7^ڱW$Iк eYԅFnɈmZJ"3b-1&?ZMJfC7^K!Dw/^7 R 4M% +pxYBiH~vf7Rwš7YZ2lӗiIJkk l+зl0<Bc@q׻>kiҍJ?35{Uc]cvoo45)J);clyv`r7j/Y` x'e~~窠S)6+Ǐ9}xϜ9Ӄ2ݬ-i;:dYC=d9ci㚦z NDvz w0Gpme_Yoj_tٳgU4n6o,;xQJ099ik"hضm[_`EƘzt lMVBavmغuk˻!4PJJf9gPc"zȬf hF4Ŗ-[}vKm( %Ƙl6"E) "(BbDZyRzL&-15IH$b9;)HRA*C(B$A 0n#YK4馼XXXr4N1DGA0*a1L&C?pcPzD(B8F<G,kU74 M|Ο?߱ Dp8fE[:(F=74MSANX I0@ `0P($4^#JDF_xt 1&$M?=H%xL~}ܜ)\I/Ϝ N|#${E̥IFGGEܼy36l D"R)+R˗/#U5.24=!A4Er9m 9ά_TpUd2q}x3 b' ˲`r}^v݂ZjR~Rl6y &ƈ(b{éZ n###ifPU.KDpM>ϵxs޿x5ŸdY̠zL&H$"J7MA/QVQ*ğ/c.3 #Aϗty-Q ;jTB!1ý!4@ha\C?˻`-.rw19 MK"<(4 e% ry (22GB^/|>Rij4 B,8?F1scw3N3z&v>DVclU <h[οC8n0*Oؚ`qZ zY3$ƠQV{.X/ r+Ч(ns-a$IWס0Y@}m|? F e[\4 /b$V㝮]! B*a3lVpX" `*f"V׮&!ˇi503|#02;hj'~خVݐcG?>gvܲH)]>ڶ;cl~NW/\^'6ܸY`W^xᅼyO#o_֣6 `ȠRh|볟9  ~GUUivv/rf蔁V^Am^`PrFEy|Sxr|="J`Mvcbʝ盪''']g:H$'n޽cn2]]7p:p1SN1h< ^oq;,x<gƬ+ڕx . ;vwݴHˊ-LWc%G8QJt+Bq+qoR{8XX,;wbmLbPMVP2_W5M[Wje6@+6n܈-[uPT<~:5L6m2cLD" 7u7kO>66 bQzf-15B acAO'P($+LnY$ID"bH$yIFeK]K&ύx] D B|#ۨE"od-!'ZA ĸ;EAĘoq=7&YK P1SOA"L0?i0C_KYX FwԵX eD@M+9R `ߧÆ)Κ05]>p cڸjyF00$I/45Ç0UB~?l[lBw;f*ct\_pׇnqcZ1#V'Xc=)XLoWBrĉ+Hu:t4c ) 9J遗^z;8>igݜk !}ǎ;]u:aI^sss~M$aBÔ-|af\ MB3uxYϪϟ}XCªF|@(Ym1 N[V+`%B4cK$pajjZcqC\rśf7kRUU͚m4mR:jBӴMRoq}.SJ3)Ji10>4CYgVąz믿j1UU(t4M1ƪn;_,k_k+_lXv?5IENDB`sqlitebrowser-3.12.1/installer/windows/strings.wxl000066400000000000000000000027671374246124700224450ustar00rootroot00000000000000 This Setup Wizard will install [ProductName] on your computer. If you have a previous version already installed, this installation process will update it. [ProductName] Setup {\WixUI_Font_Title}Shortcuts Select the shortcuts for the application. [ProductName] uses the latest version of SQLite, so you can enjoy all of its new features and bug fixes, but it does not have encryption support. It is also built with SQLCipher as a separate application. SQLCipher is an open source extension to SQLite providing transparent 256-bit AES encryption of database files, but uses a slightly older version of SQLite. Both applications (with and without SQLCipher) are installed and can run concurrently. This page allows you to choose the shortcuts for each application and where to place them. DB Browser (SQLite) DB Browser (SQLCipher) Desktop Program Menu sqlitebrowser-3.12.1/installer/windows/translations.wxs000066400000000000000000000263601374246124700234770ustar00rootroot00000000000000 sqlitebrowser-3.12.1/installer/windows/ui.wxs000066400000000000000000000054541374246124700213740ustar00rootroot00000000000000

1 1 1 sqlitebrowser-3.12.1/installer/windows/variables.wxi000066400000000000000000000074601374246124700227140ustar00rootroot00000000000000 sqlitebrowser-3.12.1/libs/000077500000000000000000000000001374246124700154465ustar00rootroot00000000000000sqlitebrowser-3.12.1/libs/DB4S_PATCH_05000066400000000000000000000221271374246124700173140ustar00rootroot00000000000000--- QScintilla_gpl-2.10.8/Qt4Qt5/qscintilla.pro 2018-10-01 15:46:06.000000000 +0200 +++ qscintilla/Qt4Qt5/qscintilla.pro 2018-11-21 19:51:25.870248673 +0100 @@ -23,24 +23,12 @@ !win32:VERSION = 13.2.1 TEMPLATE = lib -CONFIG += qt warn_off thread exceptions hide_symbols - -CONFIG(debug, debug|release) { - mac: { - TARGET = qscintilla2_qt$${QT_MAJOR_VERSION}_debug - } else { - win32: { - TARGET = qscintilla2_qt$${QT_MAJOR_VERSION}d - } else { - TARGET = qscintilla2_qt$${QT_MAJOR_VERSION} - } - } -} else { - TARGET = qscintilla2_qt$${QT_MAJOR_VERSION} -} - +TARGET = qscintilla2 +CONFIG += qt warn_off thread exceptions hide_symbols staticlib debug_and_release INCLUDEPATH += . ../include ../lexlib ../src +QMAKE_CXXFLAGS += -std=c++11 + !CONFIG(staticlib) { DEFINES += QSCINTILLA_MAKE_DLL } @@ -59,11 +47,6 @@ DEFINES += QT_NO_ACCESSIBILITY } -# For old versions of GCC. -unix:!macx { - CONFIG += c++11 -} - # Comment this in if you want the internal Scintilla classes to be placed in a # Scintilla namespace rather than pollute the global namespace. #DEFINES += SCI_NAMESPACE @@ -97,69 +80,20 @@ HEADERS = \ ./Qsci/qsciglobal.h \ - ./Qsci/qsciscintilla.h \ - ./Qsci/qsciscintillabase.h \ - ./Qsci/qsciabstractapis.h \ - ./Qsci/qsciapis.h \ ./Qsci/qscicommand.h \ ./Qsci/qscicommandset.h \ ./Qsci/qscidocument.h \ - ./Qsci/qscilexer.h \ - ./Qsci/qscilexeravs.h \ - ./Qsci/qscilexerbash.h \ - ./Qsci/qscilexerbatch.h \ - ./Qsci/qscilexercmake.h \ - ./Qsci/qscilexercoffeescript.h \ - ./Qsci/qscilexercpp.h \ - ./Qsci/qscilexercsharp.h \ - ./Qsci/qscilexercss.h \ - ./Qsci/qscilexercustom.h \ - ./Qsci/qscilexerd.h \ - ./Qsci/qscilexerdiff.h \ - ./Qsci/qscilexeredifact.h \ - ./Qsci/qscilexerfortran.h \ - ./Qsci/qscilexerfortran77.h \ - ./Qsci/qscilexerhtml.h \ - ./Qsci/qscilexeridl.h \ - ./Qsci/qscilexerjava.h \ - ./Qsci/qscilexerjavascript.h \ - ./Qsci/qscilexerjson.h \ - ./Qsci/qscilexerlua.h \ - ./Qsci/qscilexermakefile.h \ - ./Qsci/qscilexermarkdown.h \ - ./Qsci/qscilexermatlab.h \ - ./Qsci/qscilexeroctave.h \ - ./Qsci/qscilexerpascal.h \ - ./Qsci/qscilexerperl.h \ - ./Qsci/qscilexerpostscript.h \ - ./Qsci/qscilexerpo.h \ - ./Qsci/qscilexerpov.h \ - ./Qsci/qscilexerproperties.h \ - ./Qsci/qscilexerpython.h \ - ./Qsci/qscilexerruby.h \ - ./Qsci/qscilexerspice.h \ - ./Qsci/qscilexersql.h \ - ./Qsci/qscilexertcl.h \ - ./Qsci/qscilexertex.h \ - ./Qsci/qscilexerverilog.h \ - ./Qsci/qscilexervhdl.h \ - ./Qsci/qscilexerxml.h \ - ./Qsci/qscilexeryaml.h \ - ./Qsci/qscimacro.h \ ./Qsci/qsciprinter.h \ ./Qsci/qscistyle.h \ ./Qsci/qscistyledtext.h \ ListBoxQt.h \ - SciAccessibility.h \ - SciClasses.h \ SciNamespace.h \ - ScintillaQt.h \ ../include/ILexer.h \ ../include/Platform.h \ - ../include/Sci_Position.h \ ../include/SciLexer.h \ ../include/Scintilla.h \ ../include/ScintillaWidget.h \ + ../include/Sci_Position.h \ ../lexlib/Accessor.h \ ../lexlib/CharacterCategory.h \ ../lexlib/CharacterSet.h \ @@ -170,7 +104,6 @@ ../lexlib/LexerSimple.h \ ../lexlib/OptionSet.h \ ../lexlib/PropSetSimple.h \ - ../lexlib/StringCopy.h \ ../lexlib/StyleContext.h \ ../lexlib/SubStyles.h \ ../lexlib/WordList.h \ @@ -184,15 +117,12 @@ ../src/ContractionState.h \ ../src/Decoration.h \ ../src/Document.h \ - ../src/EditModel.h \ ../src/Editor.h \ - ../src/EditView.h \ ../src/ExternalLexer.h \ ../src/FontQuality.h \ ../src/Indicator.h \ ../src/KeyMap.h \ ../src/LineMarker.h \ - ../src/MarginView.h \ ../src/Partitioning.h \ ../src/PerLine.h \ ../src/PositionCache.h \ @@ -205,7 +135,26 @@ ../src/UnicodeFromUTF8.h \ ../src/UniConversion.h \ ../src/ViewStyle.h \ - ../src/XPM.h + ../src/XPM.h \ + ../src/Position.h \ + ../src/SparseVector.h \ + ./Qsci/qsciscintilla.h \ + ./Qsci/qsciscintillabase.h \ + ./Qsci/qsciabstractapis.h \ + ./Qsci/qsciapis.h \ + ./Qsci/qscilexer.h \ + ./Qsci/qscilexercustom.h \ + ./Qsci/qscilexersql.h \ + ./Qsci/qscilexerjson.h \ + ./Qsci/qscilexerhtml.h \ + ./Qsci/qscilexerxml.h \ + ./Qsci/qscilexerjavascript.h \ + ./Qsci/qscilexercpp.h \ + ./Qsci/qscilexerpython.h \ + ./Qsci/qscimacro.h \ + SciClasses.h \ + ScintillaQt.h \ + SciAccessibility.h SOURCES = \ qsciscintilla.cpp \ @@ -216,161 +165,28 @@ qscicommandset.cpp \ qscidocument.cpp \ qscilexer.cpp \ - qscilexeravs.cpp \ - qscilexerbash.cpp \ - qscilexerbatch.cpp \ - qscilexercmake.cpp \ - qscilexercoffeescript.cpp \ - qscilexercpp.cpp \ - qscilexercsharp.cpp \ - qscilexercss.cpp \ qscilexercustom.cpp \ - qscilexerd.cpp \ - qscilexerdiff.cpp \ - qscilexeredifact.cpp \ - qscilexerfortran.cpp \ - qscilexerfortran77.cpp \ + qscilexersql.cpp \ + qscilexerjson.cpp \ qscilexerhtml.cpp \ - qscilexeridl.cpp \ - qscilexerjava.cpp \ + qscilexerxml.cpp \ qscilexerjavascript.cpp \ - qscilexerjson.cpp \ - qscilexerlua.cpp \ - qscilexermakefile.cpp \ - qscilexermarkdown.cpp \ - qscilexermatlab.cpp \ - qscilexeroctave.cpp \ - qscilexerpascal.cpp \ - qscilexerperl.cpp \ - qscilexerpostscript.cpp \ - qscilexerpo.cpp \ - qscilexerpov.cpp \ - qscilexerproperties.cpp \ + qscilexercpp.cpp \ qscilexerpython.cpp \ - qscilexerruby.cpp \ - qscilexerspice.cpp \ - qscilexersql.cpp \ - qscilexertcl.cpp \ - qscilexertex.cpp \ - qscilexerverilog.cpp \ - qscilexervhdl.cpp \ - qscilexerxml.cpp \ - qscilexeryaml.cpp \ qscimacro.cpp \ qsciprinter.cpp \ qscistyle.cpp \ qscistyledtext.cpp \ - MacPasteboardMime.cpp \ - InputMethod.cpp \ - SciAccessibility.cpp \ + MacPasteboardMime.cpp \ + InputMethod.cpp \ SciClasses.cpp \ ListBoxQt.cpp \ PlatQt.cpp \ ScintillaQt.cpp \ - ../lexers/LexA68k.cpp \ - ../lexers/LexAbaqus.cpp \ - ../lexers/LexAda.cpp \ - ../lexers/LexAPDL.cpp \ - ../lexers/LexAsm.cpp \ - ../lexers/LexAsn1.cpp \ - ../lexers/LexASY.cpp \ - ../lexers/LexAU3.cpp \ - ../lexers/LexAVE.cpp \ - ../lexers/LexAVS.cpp \ - ../lexers/LexBaan.cpp \ - ../lexers/LexBash.cpp \ - ../lexers/LexBasic.cpp \ - ../lexers/LexBatch.cpp \ - ../lexers/LexBibTeX.cpp \ - ../lexers/LexBullant.cpp \ - ../lexers/LexCaml.cpp \ - ../lexers/LexCLW.cpp \ - ../lexers/LexCmake.cpp \ - ../lexers/LexCOBOL.cpp \ - ../lexers/LexCoffeeScript.cpp \ - ../lexers/LexConf.cpp \ - ../lexers/LexCPP.cpp \ - ../lexers/LexCrontab.cpp \ - ../lexers/LexCsound.cpp \ - ../lexers/LexCSS.cpp \ - ../lexers/LexD.cpp \ - ../lexers/LexDiff.cpp \ - ../lexers/LexDMAP.cpp \ - ../lexers/LexDMIS.cpp \ - ../lexers/LexECL.cpp \ - ../lexers/LexEDIFACT.cpp \ - ../lexers/LexEiffel.cpp \ - ../lexers/LexErlang.cpp \ - ../lexers/LexErrorList.cpp \ - ../lexers/LexEScript.cpp \ - ../lexers/LexFlagship.cpp \ - ../lexers/LexForth.cpp \ - ../lexers/LexFortran.cpp \ - ../lexers/LexGAP.cpp \ - ../lexers/LexGui4Cli.cpp \ - ../lexers/LexHaskell.cpp \ - ../lexers/LexHex.cpp \ - ../lexers/LexHTML.cpp \ - ../lexers/LexInno.cpp \ - ../lexers/LexJSON.cpp \ - ../lexers/LexKix.cpp \ - ../lexers/LexKVIrc.cpp \ - ../lexers/LexLaTeX.cpp \ - ../lexers/LexLisp.cpp \ - ../lexers/LexLout.cpp \ - ../lexers/LexLua.cpp \ - ../lexers/LexMagik.cpp \ - ../lexers/LexMake.cpp \ - ../lexers/LexMarkdown.cpp \ - ../lexers/LexMatlab.cpp \ - ../lexers/LexMetapost.cpp \ - ../lexers/LexMMIXAL.cpp \ - ../lexers/LexModula.cpp \ - ../lexers/LexMPT.cpp \ - ../lexers/LexMSSQL.cpp \ - ../lexers/LexMySQL.cpp \ - ../lexers/LexNimrod.cpp \ - ../lexers/LexNsis.cpp \ - ../lexers/LexNull.cpp \ - ../lexers/LexOpal.cpp \ - ../lexers/LexOScript.cpp \ - ../lexers/LexPascal.cpp \ - ../lexers/LexPB.cpp \ - ../lexers/LexPerl.cpp \ - ../lexers/LexPLM.cpp \ - ../lexers/LexPO.cpp \ - ../lexers/LexPOV.cpp \ - ../lexers/LexPowerPro.cpp \ - ../lexers/LexPowerShell.cpp \ - ../lexers/LexProgress.cpp \ - ../lexers/LexProps.cpp \ - ../lexers/LexPS.cpp \ - ../lexers/LexPython.cpp \ - ../lexers/LexR.cpp \ - ../lexers/LexRebol.cpp \ - ../lexers/LexRegistry.cpp \ - ../lexers/LexRuby.cpp \ - ../lexers/LexRust.cpp \ - ../lexers/LexScriptol.cpp \ - ../lexers/LexSmalltalk.cpp \ - ../lexers/LexSML.cpp \ - ../lexers/LexSorcus.cpp \ - ../lexers/LexSpecman.cpp \ - ../lexers/LexSpice.cpp \ + SciAccessibility.cpp \ ../lexers/LexSQL.cpp \ - ../lexers/LexSTTXT.cpp \ - ../lexers/LexTACL.cpp \ - ../lexers/LexTADS3.cpp \ - ../lexers/LexTAL.cpp \ - ../lexers/LexTCL.cpp \ - ../lexers/LexTCMD.cpp \ - ../lexers/LexTeX.cpp \ - ../lexers/LexTxt2tags.cpp \ - ../lexers/LexVB.cpp \ - ../lexers/LexVerilog.cpp \ - ../lexers/LexVHDL.cpp \ - ../lexers/LexVisualProlog.cpp \ - ../lexers/LexYAML.cpp \ + ../lexers/LexJSON.cpp \ + ../lexers/LexHTML.cpp \ ../lexlib/Accessor.cpp \ ../lexlib/CharacterCategory.cpp \ ../lexlib/CharacterSet.cpp \ @@ -391,20 +207,20 @@ ../src/ContractionState.cpp \ ../src/Decoration.cpp \ ../src/Document.cpp \ - ../src/EditModel.cpp \ ../src/Editor.cpp \ + ../src/EditModel.cpp \ ../src/EditView.cpp \ ../src/ExternalLexer.cpp \ ../src/Indicator.cpp \ - ../src/KeyMap.cpp \ + ../src/KeyMap.cpp \ ../src/LineMarker.cpp \ ../src/MarginView.cpp \ ../src/PerLine.cpp \ ../src/PositionCache.cpp \ - ../src/RESearch.cpp \ + ../src/RESearch.cpp \ ../src/RunStyles.cpp \ - ../src/ScintillaBase.cpp \ - ../src/Selection.cpp \ + ../src/ScintillaBase.cpp \ + ../src/Selection.cpp \ ../src/Style.cpp \ ../src/UniConversion.cpp \ ../src/ViewStyle.cpp \ sqlitebrowser-3.12.1/libs/DB4S_PATCH_06000066400000000000000000000061361374246124700173170ustar00rootroot00000000000000--- QScintilla_gpl-2.10.8/src/Catalogue.cpp 2018-10-01 15:41:57.000000000 +0200 +++ qscintilla/src/Catalogue.cpp 2018-11-18 16:09:52.796704316 +0100 @@ -77,124 +77,10 @@ //++Autogenerated -- run scripts/LexGen.py to regenerate //**\(\tLINK_LEXER(\*);\n\) - LINK_LEXER(lmA68k); - LINK_LEXER(lmAbaqus); - LINK_LEXER(lmAda); - LINK_LEXER(lmAPDL); - LINK_LEXER(lmAs); - LINK_LEXER(lmAsm); - LINK_LEXER(lmAsn1); - LINK_LEXER(lmASY); - LINK_LEXER(lmAU3); - LINK_LEXER(lmAVE); - LINK_LEXER(lmAVS); - LINK_LEXER(lmBaan); - LINK_LEXER(lmBash); - LINK_LEXER(lmBatch); - LINK_LEXER(lmBibTeX); - LINK_LEXER(lmBlitzBasic); - LINK_LEXER(lmBullant); - LINK_LEXER(lmCaml); - LINK_LEXER(lmClw); - LINK_LEXER(lmClwNoCase); - LINK_LEXER(lmCmake); - LINK_LEXER(lmCOBOL); - LINK_LEXER(lmCoffeeScript); - LINK_LEXER(lmConf); - LINK_LEXER(lmCPP); - LINK_LEXER(lmCPPNoCase); - LINK_LEXER(lmCsound); - LINK_LEXER(lmCss); - LINK_LEXER(lmD); - LINK_LEXER(lmDiff); - LINK_LEXER(lmDMAP); - LINK_LEXER(lmDMIS); - LINK_LEXER(lmECL); - LINK_LEXER(lmEDIFACT); - LINK_LEXER(lmEiffel); - LINK_LEXER(lmEiffelkw); - LINK_LEXER(lmErlang); - LINK_LEXER(lmErrorList); - LINK_LEXER(lmESCRIPT); - LINK_LEXER(lmF77); - LINK_LEXER(lmFlagShip); - LINK_LEXER(lmForth); - LINK_LEXER(lmFortran); - LINK_LEXER(lmFreeBasic); - LINK_LEXER(lmGAP); - LINK_LEXER(lmGui4Cli); - LINK_LEXER(lmHaskell); - LINK_LEXER(lmHTML); - LINK_LEXER(lmIHex); - LINK_LEXER(lmInno); - LINK_LEXER(lmJSON); - LINK_LEXER(lmKix); - LINK_LEXER(lmKVIrc); - LINK_LEXER(lmLatex); - LINK_LEXER(lmLISP); - LINK_LEXER(lmLiterateHaskell); - LINK_LEXER(lmLot); - LINK_LEXER(lmLout); - LINK_LEXER(lmLua); - LINK_LEXER(lmMagikSF); - LINK_LEXER(lmMake); - LINK_LEXER(lmMarkdown); - LINK_LEXER(lmMatlab); - LINK_LEXER(lmMETAPOST); - LINK_LEXER(lmMMIXAL); - LINK_LEXER(lmModula); - LINK_LEXER(lmMSSQL); - LINK_LEXER(lmMySQL); - LINK_LEXER(lmNimrod); - LINK_LEXER(lmNncrontab); - LINK_LEXER(lmNsis); - LINK_LEXER(lmNull); - LINK_LEXER(lmOctave); - LINK_LEXER(lmOpal); - LINK_LEXER(lmOScript); - LINK_LEXER(lmPascal); - LINK_LEXER(lmPB); - LINK_LEXER(lmPerl); - LINK_LEXER(lmPHPSCRIPT); - LINK_LEXER(lmPLM); - LINK_LEXER(lmPO); - LINK_LEXER(lmPOV); - LINK_LEXER(lmPowerPro); - LINK_LEXER(lmPowerShell); - LINK_LEXER(lmProgress); - LINK_LEXER(lmProps); - LINK_LEXER(lmPS); - LINK_LEXER(lmPureBasic); - LINK_LEXER(lmPython); - LINK_LEXER(lmR); - LINK_LEXER(lmREBOL); - LINK_LEXER(lmRegistry); - LINK_LEXER(lmRuby); - LINK_LEXER(lmRust); - LINK_LEXER(lmScriptol); - LINK_LEXER(lmSmalltalk); - LINK_LEXER(lmSML); - LINK_LEXER(lmSorc); - LINK_LEXER(lmSpecman); - LINK_LEXER(lmSpice); - LINK_LEXER(lmSQL); - LINK_LEXER(lmSrec); - LINK_LEXER(lmSTTXT); - LINK_LEXER(lmTACL); - LINK_LEXER(lmTADS3); - LINK_LEXER(lmTAL); - LINK_LEXER(lmTCL); - LINK_LEXER(lmTCMD); - LINK_LEXER(lmTEHex); - LINK_LEXER(lmTeX); - LINK_LEXER(lmTxt2tags); - LINK_LEXER(lmVB); - LINK_LEXER(lmVBScript); - LINK_LEXER(lmVerilog); - LINK_LEXER(lmVHDL); - LINK_LEXER(lmVisualProlog); - LINK_LEXER(lmXML); - LINK_LEXER(lmYAML); + LINK_LEXER(lmSQL); + LINK_LEXER(lmJSON); + LINK_LEXER(lmHTML); + LINK_LEXER(lmXML); //--Autogenerated -- end of automatically generated section sqlitebrowser-3.12.1/libs/json/000077500000000000000000000000001374246124700164175ustar00rootroot00000000000000sqlitebrowser-3.12.1/libs/json/CMakeLists.txt000066400000000000000000000001531374246124700211560ustar00rootroot00000000000000cmake_minimum_required(VERSION 2.8.12.2) set(CMAKE_INCLUDE_CURRENT_DIR ON) set(JSON11_HDR json.hpp ) sqlitebrowser-3.12.1/libs/json/ChangeLog.md000066400000000000000000005511441374246124700206020ustar00rootroot00000000000000# Change Log All notable changes to this project will be documented in this file. This project adheres to [Semantic Versioning](http://semver.org/). ## [v3.7.3](https://github.com/nlohmann/json/releases/tag/v3.7.3) (2019-11-17) [Full Changelog](https://github.com/nlohmann/json/compare/v3.7.2...v3.7.3) - Project branches [\#1839](https://github.com/nlohmann/json/issues/1839) - Quadratic destruction complexity introduced in \#1436 [\#1837](https://github.com/nlohmann/json/issues/1837) - Trying to open a file [\#1814](https://github.com/nlohmann/json/issues/1814) - Comparing data type with value\_t::number\_integer fails [\#1783](https://github.com/nlohmann/json/issues/1783) - CMake version config file is architecture-dependent [\#1697](https://github.com/nlohmann/json/issues/1697) - Fix quadratic destruction complexity [\#1838](https://github.com/nlohmann/json/pull/1838) ([nickaein](https://github.com/nickaein)) ## [v3.7.2](https://github.com/nlohmann/json/releases/tag/v3.7.2) (2019-11-10) [Full Changelog](https://github.com/nlohmann/json/compare/v3.7.1...v3.7.2) - Segmentation fault in destructor in case of large inputs [\#1835](https://github.com/nlohmann/json/issues/1835) - type\_name\(\) is not consistent with type\(\) [\#1833](https://github.com/nlohmann/json/issues/1833) - json::parse is not a member [\#1832](https://github.com/nlohmann/json/issues/1832) - How do you deal with json\* ? [\#1829](https://github.com/nlohmann/json/issues/1829) - Combined find\_package/add\_subdirectory not linking libraries [\#1771](https://github.com/nlohmann/json/issues/1771) - example code for ifstream reading a json file results in no operator error [\#1766](https://github.com/nlohmann/json/issues/1766) - Warning: unsequenced modification and access to 'range' [\#1674](https://github.com/nlohmann/json/issues/1674) - Segmentation fault \(stack overflow\) due to unbounded recursion [\#1419](https://github.com/nlohmann/json/issues/1419) - Stack-overflow \(OSS-Fuzz 4234\) [\#832](https://github.com/nlohmann/json/issues/832) - Configure WhiteSource Bolt for GitHub [\#1830](https://github.com/nlohmann/json/pull/1830) ([whitesource-bolt-for-github[bot]](https://github.com/apps/whitesource-bolt-for-github)) - Prevent stackoverflow caused by recursive deconstruction [\#1436](https://github.com/nlohmann/json/pull/1436) ([nickaein](https://github.com/nickaein)) ## [v3.7.1](https://github.com/nlohmann/json/releases/tag/v3.7.1) (2019-11-06) [Full Changelog](https://github.com/nlohmann/json/compare/v3.7.0...v3.7.1) - std::is\_constructible is always true with tuple [\#1825](https://github.com/nlohmann/json/issues/1825) - Can't compile from\_json\(std::valarray\\). [\#1824](https://github.com/nlohmann/json/issues/1824) - json class should have a get\_or member function [\#1823](https://github.com/nlohmann/json/issues/1823) - NLOHMANN\_JSON\_SERIALIZE\_ENUM macro capture's json objects by value [\#1822](https://github.com/nlohmann/json/issues/1822) - Parse fails when number literals start with zero [\#1820](https://github.com/nlohmann/json/issues/1820) - Parsing string into json doesn't preserve the order correctly. [\#1817](https://github.com/nlohmann/json/issues/1817) - Weird behaviour of `contains` with `json\_pointer` [\#1815](https://github.com/nlohmann/json/issues/1815) - strange behaviour with json\_pointer and .contains\(\) [\#1811](https://github.com/nlohmann/json/issues/1811) - Can \#1695 be re-opened? [\#1808](https://github.com/nlohmann/json/issues/1808) - Merge two json objects [\#1807](https://github.com/nlohmann/json/issues/1807) - std::is\_constructible\\> when to\_json not defined [\#1805](https://github.com/nlohmann/json/issues/1805) - Private data on parsing [\#1802](https://github.com/nlohmann/json/issues/1802) - Capturing Line and Position when querying [\#1800](https://github.com/nlohmann/json/issues/1800) - json error on parsing DBL\_MAX from string [\#1796](https://github.com/nlohmann/json/issues/1796) - De/Serialisation of vector of tupple object with nested obect need Help please [\#1794](https://github.com/nlohmann/json/issues/1794) - Output json is corrupted [\#1793](https://github.com/nlohmann/json/issues/1793) - variable name byte sometimes used as a \#define [\#1792](https://github.com/nlohmann/json/issues/1792) - Can't read json file [\#1791](https://github.com/nlohmann/json/issues/1791) - Problems with special German letters [\#1789](https://github.com/nlohmann/json/issues/1789) - Support for trailing commas [\#1787](https://github.com/nlohmann/json/issues/1787) - json\_pointer construction bug [\#1786](https://github.com/nlohmann/json/issues/1786) - Visual Studio 2017 warning [\#1784](https://github.com/nlohmann/json/issues/1784) - ciso646 header become obsolete [\#1782](https://github.com/nlohmann/json/issues/1782) - Migrate LGTM.com installation from OAuth to GitHub App [\#1781](https://github.com/nlohmann/json/issues/1781) - JSON comparison, contains and operator& [\#1778](https://github.com/nlohmann/json/issues/1778) - pass a json object to a class contructor adds an array around the object [\#1776](https://github.com/nlohmann/json/issues/1776) - 'Float' number\_float\_function\_t template parameter name conflicts with C '\#define Float float' [\#1775](https://github.com/nlohmann/json/issues/1775) - A weird building problem :-\( [\#1774](https://github.com/nlohmann/json/issues/1774) - What is this json\_ref? [\#1772](https://github.com/nlohmann/json/issues/1772) - Interoperability with other languages [\#1770](https://github.com/nlohmann/json/issues/1770) - Json dump [\#1768](https://github.com/nlohmann/json/issues/1768) - json\_pointer\<\>::back\(\) should be const [\#1764](https://github.com/nlohmann/json/issues/1764) - How to get value from array [\#1762](https://github.com/nlohmann/json/issues/1762) - Merge two jsons [\#1757](https://github.com/nlohmann/json/issues/1757) - Unable to locate nlohmann\_jsonConfig.cmake [\#1755](https://github.com/nlohmann/json/issues/1755) - json.hpp won;t compile VS2019 CLR/CLI app but does in console app [\#1754](https://github.com/nlohmann/json/issues/1754) - \[Nested Json Objects\] Segmentation fault [\#1753](https://github.com/nlohmann/json/issues/1753) - remove/replace assert with exceptions [\#1752](https://github.com/nlohmann/json/issues/1752) - Add array support for update\(\) function [\#1751](https://github.com/nlohmann/json/issues/1751) - Is there a reason the `get\_to` method is defined in `include/nlohmann/json.hpp` but not in `single\_include/nlohmann/json.hpp`? [\#1750](https://github.com/nlohmann/json/issues/1750) - how to validate json object before calling dump\(\) [\#1748](https://github.com/nlohmann/json/issues/1748) - Unable to invoke accessors on json objects in lldb [\#1745](https://github.com/nlohmann/json/issues/1745) - Escaping string before parsing [\#1743](https://github.com/nlohmann/json/issues/1743) - Construction in a member initializer list using curly braces is set as 'array' [\#1742](https://github.com/nlohmann/json/issues/1742) - Read a subkey from json object [\#1740](https://github.com/nlohmann/json/issues/1740) - Serialize vector of glm:vec2 [\#1739](https://github.com/nlohmann/json/issues/1739) - Support nlohmann::basic\_json::value with JSON\_NOEXCEPTION [\#1738](https://github.com/nlohmann/json/issues/1738) - how to know the parse is error [\#1737](https://github.com/nlohmann/json/issues/1737) - How to check if a given key exists in a JSON object [\#1736](https://github.com/nlohmann/json/issues/1736) - Allow The Colon Key-Value Delimiter To Have A Space Before It \[@ READ ONLY\] [\#1735](https://github.com/nlohmann/json/issues/1735) - Allow Tail { "Key": "Value" } Comma \[@ READ ONLY\] [\#1734](https://github.com/nlohmann/json/issues/1734) - No-throw json::value\(\) [\#1733](https://github.com/nlohmann/json/issues/1733) - JsonObject.dump\(\) [\#1732](https://github.com/nlohmann/json/issues/1732) - basic\_json has no member "parse" [\#1731](https://github.com/nlohmann/json/issues/1731) - Exception "type must be string, but is array" [\#1730](https://github.com/nlohmann/json/issues/1730) - json::contains usage to find a path [\#1727](https://github.com/nlohmann/json/issues/1727) - How to create JSON Object from my Structures of Data and Json File from that Object [\#1726](https://github.com/nlohmann/json/issues/1726) - please provide an API to read JSON from file directly. [\#1725](https://github.com/nlohmann/json/issues/1725) - How to modify a value stored at a key? [\#1723](https://github.com/nlohmann/json/issues/1723) - CMake not correctly finding the configuration package for 3.7.0 [\#1721](https://github.com/nlohmann/json/issues/1721) - name typo in the "spack package management" section of README.md [\#1720](https://github.com/nlohmann/json/issues/1720) - How to add json to another json? [\#1718](https://github.com/nlohmann/json/issues/1718) - How can I save json object in file in order? [\#1717](https://github.com/nlohmann/json/issues/1717) - json::parse\(\) ubsan regression with v3.7.0 [\#1716](https://github.com/nlohmann/json/issues/1716) - What I am doing wrong?!? [\#1714](https://github.com/nlohmann/json/issues/1714) - Potential memory leak detected by Valgrind [\#1713](https://github.com/nlohmann/json/issues/1713) - json::parse is not thread safe? [\#1712](https://github.com/nlohmann/json/issues/1712) - static analysis alarm by cppcheck [\#1711](https://github.com/nlohmann/json/issues/1711) - The compilation time is slow [\#1710](https://github.com/nlohmann/json/issues/1710) - not linking properly with cmake [\#1709](https://github.com/nlohmann/json/issues/1709) - Error in dump\(\) with int64\_t minimum value [\#1708](https://github.com/nlohmann/json/issues/1708) - Crash on trying to deserialize json string on 3ds homebrew [\#1707](https://github.com/nlohmann/json/issues/1707) - Can't compile VS2019. 13 Errors [\#1706](https://github.com/nlohmann/json/issues/1706) - find an object that matches the search criteria [\#1705](https://github.com/nlohmann/json/issues/1705) - IntelliSense goes crazy on VS2019 [\#1704](https://github.com/nlohmann/json/issues/1704) - Installing on Ubuntu 16.04 [\#1703](https://github.com/nlohmann/json/issues/1703) - Where is json::parse now? [\#1702](https://github.com/nlohmann/json/issues/1702) - Forward header should't be amalgamated [\#1700](https://github.com/nlohmann/json/issues/1700) - Json support for Cmake version 2.8.12 [\#1699](https://github.com/nlohmann/json/issues/1699) - Intruisive scientific notation when using .dump\(\); [\#1698](https://github.com/nlohmann/json/issues/1698) - Is there support for automatic serialization/deserialization? [\#1696](https://github.com/nlohmann/json/issues/1696) - on MSVC dump\(\) will hard crash for larger json [\#1693](https://github.com/nlohmann/json/issues/1693) - puzzled implicit conversions [\#1692](https://github.com/nlohmann/json/issues/1692) - Information: My project uses this awesome library [\#1691](https://github.com/nlohmann/json/issues/1691) - Consider listing files explicitly instead of using GLOB [\#1686](https://github.com/nlohmann/json/issues/1686) - Failing tests on MSVC with VS2019 15.9.13 x64 [\#1685](https://github.com/nlohmann/json/issues/1685) - Consider putting the user-defined literals in a namespace [\#1682](https://github.com/nlohmann/json/issues/1682) - Change from v2 to v3. Encoding with cp1252 [\#1680](https://github.com/nlohmann/json/issues/1680) - How to add Fifo\_map into json using Cmake [\#1679](https://github.com/nlohmann/json/issues/1679) - include.zip should contain meson.build [\#1672](https://github.com/nlohmann/json/issues/1672) - \[Question\] How do I parse JSON into custom types? [\#1669](https://github.com/nlohmann/json/issues/1669) - Binary \(0x05\) data type for BSON to JSON conversion [\#1668](https://github.com/nlohmann/json/issues/1668) - Possible to call dump from lldb? [\#1666](https://github.com/nlohmann/json/issues/1666) - Segmentation fault when linked with libunwind [\#1665](https://github.com/nlohmann/json/issues/1665) - Should I include single-header after my to\_json and from\_json custom functions declaration? Why not? [\#1663](https://github.com/nlohmann/json/issues/1663) - Errors/Warnings in VS 2019 when Including Header File [\#1659](https://github.com/nlohmann/json/issues/1659) - Return null object from object's const operator\[\] as well. [\#1658](https://github.com/nlohmann/json/issues/1658) - Can't stream json object in to std::basic\_stringstream\ [\#1656](https://github.com/nlohmann/json/issues/1656) - C2440 in vs2015 cannot convert from 'initializer-list' to nlohmann::basic\_json [\#1655](https://github.com/nlohmann/json/issues/1655) - Issues around get and pointers [\#1653](https://github.com/nlohmann/json/issues/1653) - Non-member operator== breaks enum \(de\)serialization [\#1647](https://github.com/nlohmann/json/issues/1647) - Valgrind: bytes in 1 blocks are definitely lost [\#1646](https://github.com/nlohmann/json/issues/1646) - Convenient way to make 'basic\_json' accept 'QString' as an key type as well? [\#1640](https://github.com/nlohmann/json/issues/1640) - mongodb: nan, inf [\#1599](https://github.com/nlohmann/json/issues/1599) - Error in adl\_serializer [\#1590](https://github.com/nlohmann/json/issues/1590) - Injecting class during serialization [\#1584](https://github.com/nlohmann/json/issues/1584) - output\_adapter not user extensible [\#1534](https://github.com/nlohmann/json/issues/1534) - Inclusion of nlohmann/json.hpp causes OS/ABI to change on Linux [\#1410](https://github.com/nlohmann/json/issues/1410) - Add library versioning using inline namespaces [\#1394](https://github.com/nlohmann/json/issues/1394) - CBOR byte string support [\#1129](https://github.com/nlohmann/json/issues/1129) - How to deserialize array with derived objects [\#716](https://github.com/nlohmann/json/issues/716) - Add restriction for tuple specialization of to\_json [\#1826](https://github.com/nlohmann/json/pull/1826) ([cbegue](https://github.com/cbegue)) - Fix for \#1647 [\#1821](https://github.com/nlohmann/json/pull/1821) ([AnthonyVH](https://github.com/AnthonyVH)) - Fix issue \#1805 [\#1806](https://github.com/nlohmann/json/pull/1806) ([cbegue](https://github.com/cbegue)) - Fix some spelling errors - mostly in comments & documentation. [\#1803](https://github.com/nlohmann/json/pull/1803) ([flopp](https://github.com/flopp)) - Update Hedley to v11. [\#1799](https://github.com/nlohmann/json/pull/1799) ([nemequ](https://github.com/nemequ)) - iteration\_proxy: Fix integer truncation from std::size\_t to int [\#1797](https://github.com/nlohmann/json/pull/1797) ([t-b](https://github.com/t-b)) - appveyor.yml: Add MSVC 16 2019 support [\#1780](https://github.com/nlohmann/json/pull/1780) ([t-b](https://github.com/t-b)) - test/CMakeLists.txt: Use an explicit list instead of GLOB [\#1779](https://github.com/nlohmann/json/pull/1779) ([t-b](https://github.com/t-b)) - Make json\_pointer::back const \(resolves \#1764\) [\#1769](https://github.com/nlohmann/json/pull/1769) ([chris0x44](https://github.com/chris0x44)) - did you mean 'serialization'? [\#1767](https://github.com/nlohmann/json/pull/1767) ([0xflotus](https://github.com/0xflotus)) - Allow items\(\) to be used with custom string [\#1765](https://github.com/nlohmann/json/pull/1765) ([crazyjul](https://github.com/crazyjul)) - Cppcheck fixes [\#1760](https://github.com/nlohmann/json/pull/1760) ([Xav83](https://github.com/Xav83)) - Fix and add test's for SFINAE problem [\#1741](https://github.com/nlohmann/json/pull/1741) ([tete17](https://github.com/tete17)) - Fix clang sanitizer invocation [\#1728](https://github.com/nlohmann/json/pull/1728) ([t-b](https://github.com/t-b)) - Add gcc 9 and compile with experimental C++20 support [\#1724](https://github.com/nlohmann/json/pull/1724) ([t-b](https://github.com/t-b)) - Fix int64 min issue [\#1722](https://github.com/nlohmann/json/pull/1722) ([t-b](https://github.com/t-b)) - release: add singleinclude and meson.build to include.zip [\#1694](https://github.com/nlohmann/json/pull/1694) ([eli-schwartz](https://github.com/eli-schwartz)) ## [v3.7.0](https://github.com/nlohmann/json/releases/tag/v3.7.0) (2019-07-28) [Full Changelog](https://github.com/nlohmann/json/compare/v3.6.1...v3.7.0) - How can I retrieve uknown strings from json file in my C++ program. [\#1684](https://github.com/nlohmann/json/issues/1684) - contains\(\) is sometimes causing stack-based buffer overrun exceptions [\#1683](https://github.com/nlohmann/json/issues/1683) - How to deserialize arrays from json [\#1681](https://github.com/nlohmann/json/issues/1681) - Compilation failed in VS2015 [\#1678](https://github.com/nlohmann/json/issues/1678) - Why the compiled object file is so huge? [\#1677](https://github.com/nlohmann/json/issues/1677) - From Version 2.1.1 to 3.6.1 serialize std::set [\#1676](https://github.com/nlohmann/json/issues/1676) - Qt deprecation model halting compiltion [\#1675](https://github.com/nlohmann/json/issues/1675) - Build For Raspberry pi , Rapbery with new Compiler C++17 [\#1671](https://github.com/nlohmann/json/issues/1671) - Build from Raspberry pi [\#1667](https://github.com/nlohmann/json/issues/1667) - Can not translate map with integer key to dict string ? [\#1664](https://github.com/nlohmann/json/issues/1664) - Double type converts to scientific notation [\#1661](https://github.com/nlohmann/json/issues/1661) - Missing v3.6.1 tag on master branch [\#1657](https://github.com/nlohmann/json/issues/1657) - Support Fleese Binary Data Format [\#1654](https://github.com/nlohmann/json/issues/1654) - Suggestion: replace alternative tokens for !, && and || with their symbols [\#1652](https://github.com/nlohmann/json/issues/1652) - Build failure test-allocator.vcxproj [\#1651](https://github.com/nlohmann/json/issues/1651) - How to provide function json& to\_json\(\) which is similar as 'void to\_json\(json&j, const CObject& obj\)' ? [\#1650](https://github.com/nlohmann/json/issues/1650) - Can't throw exception when starting file is a number [\#1649](https://github.com/nlohmann/json/issues/1649) - to\_json / from\_json with nested type [\#1648](https://github.com/nlohmann/json/issues/1648) - How to create a json object from a std::string, created by j.dump? [\#1645](https://github.com/nlohmann/json/issues/1645) - Problem getting vector \(array\) of strings [\#1644](https://github.com/nlohmann/json/issues/1644) - json.hpp compilation issue with other typedefs with same name [\#1642](https://github.com/nlohmann/json/issues/1642) - nlohmann::adl\_serializer\::to\_json no matching overloaded function found [\#1641](https://github.com/nlohmann/json/issues/1641) - overwrite adl\_serializer\ to change behaviour [\#1638](https://github.com/nlohmann/json/issues/1638) - json.SelectToken\("Manufacturers.Products.Price"\); [\#1637](https://github.com/nlohmann/json/issues/1637) - Add json type as value [\#1636](https://github.com/nlohmann/json/issues/1636) - Unit conversion test error: conversion from 'nlohmann::json' to non-scalar type 'std::string\_view' requested [\#1634](https://github.com/nlohmann/json/issues/1634) - nlohmann VS JsonCpp by C++17 [\#1633](https://github.com/nlohmann/json/issues/1633) - To integrate an inline helper function that return type name as string [\#1632](https://github.com/nlohmann/json/issues/1632) - Return JSON as reference [\#1631](https://github.com/nlohmann/json/issues/1631) - Updating from an older version causes problems with assing a json object to a struct [\#1630](https://github.com/nlohmann/json/issues/1630) - Can without default constructor function for user defined classes when only to\_json is needed? [\#1629](https://github.com/nlohmann/json/issues/1629) - Compilation fails with clang 6.x-8.x in C++14 mode [\#1628](https://github.com/nlohmann/json/issues/1628) - Treating floating point as string [\#1627](https://github.com/nlohmann/json/issues/1627) - error parsing character å [\#1626](https://github.com/nlohmann/json/issues/1626) - \[Help\] How to Improve Json Output Performance with Large Json Arrays [\#1624](https://github.com/nlohmann/json/issues/1624) - Suggested link changes for reporting new issues \[blob/develop/REAME.md and blob/develop/.github/CONTRIBUTING.md\] [\#1623](https://github.com/nlohmann/json/issues/1623) - Broken link to issue template in CONTRIBUTING.md [\#1622](https://github.com/nlohmann/json/issues/1622) - Missing word in README.md file [\#1621](https://github.com/nlohmann/json/issues/1621) - Package manager instructions in README for brew is incorrect [\#1620](https://github.com/nlohmann/json/issues/1620) - Building with Visual Studio 2019 [\#1619](https://github.com/nlohmann/json/issues/1619) - Precedence of to\_json and builtin harmful [\#1617](https://github.com/nlohmann/json/issues/1617) - The type json is missing from the html documentation [\#1616](https://github.com/nlohmann/json/issues/1616) - variant is not support in Release 3.6.1? [\#1615](https://github.com/nlohmann/json/issues/1615) - Replace assert with throw for const operator\[\] [\#1614](https://github.com/nlohmann/json/issues/1614) - Memory Overhead is Too High \(10x or more\) [\#1613](https://github.com/nlohmann/json/issues/1613) - program crash everytime, when other data type incomming in json stream as expected [\#1612](https://github.com/nlohmann/json/issues/1612) - Improved Enum Support [\#1611](https://github.com/nlohmann/json/issues/1611) - is it possible convert json object back to stl container ? [\#1610](https://github.com/nlohmann/json/issues/1610) - Add C++17-like emplace.back\(\) for arrays. [\#1609](https://github.com/nlohmann/json/issues/1609) - is\_nothrow\_copy\_constructible fails for json::const\_iterator on MSVC2015 x86 Debug build [\#1608](https://github.com/nlohmann/json/issues/1608) - Reading and writing array elements [\#1607](https://github.com/nlohmann/json/issues/1607) - Converting json::value to int [\#1605](https://github.com/nlohmann/json/issues/1605) - I have a vector of keys and and a string of value and i want to create nested json array [\#1604](https://github.com/nlohmann/json/issues/1604) - In compatible JSON object from nlohmann::json to nohman::json - unexpected end of input; expected '\[', '{', or a literal [\#1603](https://github.com/nlohmann/json/issues/1603) - json parser crash if having a large number integer in message [\#1602](https://github.com/nlohmann/json/issues/1602) - Value method with undocumented throwing 302 exception [\#1601](https://github.com/nlohmann/json/issues/1601) - Accessing value with json pointer adds key if not existing [\#1600](https://github.com/nlohmann/json/issues/1600) - README.md broken link to project documentation [\#1597](https://github.com/nlohmann/json/issues/1597) - Random Kudos: Thanks for your work on this! [\#1596](https://github.com/nlohmann/json/issues/1596) - json::parse return value and errors [\#1595](https://github.com/nlohmann/json/issues/1595) - initializer list constructor makes curly brace initialization fragile [\#1594](https://github.com/nlohmann/json/issues/1594) - trying to log message for missing keyword, difference between \["foo"\] and at\("foo"\) [\#1593](https://github.com/nlohmann/json/issues/1593) - std::string and std::wstring `to\_json` [\#1592](https://github.com/nlohmann/json/issues/1592) - I have a C structure which I need to convert to a JSON. How do I do it? Haven't found proper examples so far. [\#1591](https://github.com/nlohmann/json/issues/1591) - dump\_escaped possible error ? [\#1589](https://github.com/nlohmann/json/issues/1589) - json::parse\(\) into a vector\ results in unhandled exception [\#1587](https://github.com/nlohmann/json/issues/1587) - push\_back\(\)/emplace\_back\(\) on array invalidates pointers to existing array items [\#1586](https://github.com/nlohmann/json/issues/1586) - Getting nlohmann::detail::parse\_error on JSON generated by nlohmann::json not sure why [\#1583](https://github.com/nlohmann/json/issues/1583) - getting error terminate called after throwing an instance of 'std::domain\_error' what\(\): cannot use at\(\) with string [\#1582](https://github.com/nlohmann/json/issues/1582) - how i create json file [\#1581](https://github.com/nlohmann/json/issues/1581) - prevent rounding of double datatype values [\#1580](https://github.com/nlohmann/json/issues/1580) - Documentation Container Overview Doesn't Reference Const Methods [\#1579](https://github.com/nlohmann/json/issues/1579) - Writing an array into a nlohmann::json object [\#1578](https://github.com/nlohmann/json/issues/1578) - compilation error when using with another library [\#1577](https://github.com/nlohmann/json/issues/1577) - Homebrew on OSX doesn't install cmake config file [\#1576](https://github.com/nlohmann/json/issues/1576) - `unflatten` vs objects with number-ish keys [\#1575](https://github.com/nlohmann/json/issues/1575) - JSON Parse Out of Range Error [\#1574](https://github.com/nlohmann/json/issues/1574) - Integrating into existing CMake Project [\#1573](https://github.com/nlohmann/json/issues/1573) - A "thinner" source code tar as part of release? [\#1572](https://github.com/nlohmann/json/issues/1572) - conversion to std::string failed [\#1571](https://github.com/nlohmann/json/issues/1571) - jPtr operation does not throw [\#1569](https://github.com/nlohmann/json/issues/1569) - How to generate dll file for this project [\#1568](https://github.com/nlohmann/json/issues/1568) - how to pass variable data to json in c [\#1567](https://github.com/nlohmann/json/issues/1567) - I want to achieve an upgraded function. [\#1566](https://github.com/nlohmann/json/issues/1566) - How to determine the type of elements read from a JSON array? [\#1564](https://github.com/nlohmann/json/issues/1564) - try\_get\_to [\#1563](https://github.com/nlohmann/json/issues/1563) - example code compile error [\#1562](https://github.com/nlohmann/json/issues/1562) - How to iterate over nested json object [\#1561](https://github.com/nlohmann/json/issues/1561) - Build Option/Separate Function to Allow to Throw on Duplicate Keys [\#1560](https://github.com/nlohmann/json/issues/1560) - Compiler Switches -Weffc++ & -Wshadow are throwing errors [\#1558](https://github.com/nlohmann/json/issues/1558) - warning: use of the 'nodiscard' attribute is a C++17 extension [\#1557](https://github.com/nlohmann/json/issues/1557) - Import/Export compressed JSON files [\#1556](https://github.com/nlohmann/json/issues/1556) - GDB renderers for json library [\#1554](https://github.com/nlohmann/json/issues/1554) - Is it possible to construct a json string object from a binary buffer? [\#1553](https://github.com/nlohmann/json/issues/1553) - json objects in list [\#1552](https://github.com/nlohmann/json/issues/1552) - Matrix output [\#1550](https://github.com/nlohmann/json/issues/1550) - Using json merge\_patch on ordered non-alphanumeric datasets [\#1549](https://github.com/nlohmann/json/issues/1549) - Invalid parsed value for big integer [\#1548](https://github.com/nlohmann/json/issues/1548) - Integrating with android ndk issues. [\#1547](https://github.com/nlohmann/json/issues/1547) - add noexcept json::value\("key", default\) method variant? [\#1546](https://github.com/nlohmann/json/issues/1546) - Thank you! 🙌 [\#1545](https://github.com/nlohmann/json/issues/1545) - Output and input matrix [\#1544](https://github.com/nlohmann/json/issues/1544) - Add regression tests for MSVC [\#1543](https://github.com/nlohmann/json/issues/1543) - \[Help Needed!\] Season of Docs [\#1542](https://github.com/nlohmann/json/issues/1542) - program still abort\(\) or exit\(\) with try catch [\#1541](https://github.com/nlohmann/json/issues/1541) - Have a json::type\_error exception because of JSON object [\#1540](https://github.com/nlohmann/json/issues/1540) - Using versioned namespaces [\#1539](https://github.com/nlohmann/json/issues/1539) - Quoted numbers [\#1538](https://github.com/nlohmann/json/issues/1538) - Reading a JSON file into an object [\#1537](https://github.com/nlohmann/json/issues/1537) - Releases 3.6.0 and 3.6.1 don't build on conda / windows [\#1536](https://github.com/nlohmann/json/issues/1536) - \[Clang\] warning: use of the 'nodiscard' attribute is a C++17 extension \[-Wc++17-extensions\] [\#1535](https://github.com/nlohmann/json/issues/1535) - wchar\_t/std::wstring json can be created but not accessed [\#1533](https://github.com/nlohmann/json/issues/1533) - json stringify [\#1532](https://github.com/nlohmann/json/issues/1532) - How can I use std::string\_view as the json\_key to "operator \[\]" ? [\#1529](https://github.com/nlohmann/json/issues/1529) - How can I use it from gcc on RPI [\#1528](https://github.com/nlohmann/json/issues/1528) - std::pair treated as an array instead of key-value in `std::vector\\>` [\#1520](https://github.com/nlohmann/json/issues/1520) - Excessive Memory Usage for Large Json File [\#1516](https://github.com/nlohmann/json/issues/1516) - SAX dumper [\#1512](https://github.com/nlohmann/json/issues/1512) - Conversion to user type containing a std::vector not working with documented approach [\#1511](https://github.com/nlohmann/json/issues/1511) - How to get position info or parser context with custom from\_json\(\) that may throw exceptions? [\#1508](https://github.com/nlohmann/json/issues/1508) - Inconsistent use of type alias. [\#1507](https://github.com/nlohmann/json/issues/1507) - Is there a current way to represent strings as json int? [\#1503](https://github.com/nlohmann/json/issues/1503) - Intermittent issues with loadJSON [\#1484](https://github.com/nlohmann/json/issues/1484) - use json construct std::string [\#1462](https://github.com/nlohmann/json/issues/1462) - JSON Creation [\#1461](https://github.com/nlohmann/json/issues/1461) - Substantial performance penalty caused by polymorphic input adapter [\#1457](https://github.com/nlohmann/json/issues/1457) - Null bytes in files are treated like EOF [\#1095](https://github.com/nlohmann/json/issues/1095) - Feature: to\_string\(const json& j\); [\#916](https://github.com/nlohmann/json/issues/916) - Use GNUInstallDirs instead of hard-coded path. [\#1673](https://github.com/nlohmann/json/pull/1673) ([remyabel](https://github.com/remyabel)) - Package Manager: MSYS2 \(pacman\) [\#1670](https://github.com/nlohmann/json/pull/1670) ([podsvirov](https://github.com/podsvirov)) - Fix json.hpp compilation issue with other typedefs with same name \(Issue \#1642\) [\#1643](https://github.com/nlohmann/json/pull/1643) ([kevinlul](https://github.com/kevinlul)) - Add explicit conversion from json to std::string\_view in conversion unit test [\#1639](https://github.com/nlohmann/json/pull/1639) ([taylorhoward92](https://github.com/taylorhoward92)) - Minor fixes in docs [\#1625](https://github.com/nlohmann/json/pull/1625) ([nickaein](https://github.com/nickaein)) - Fix broken links to documentation [\#1598](https://github.com/nlohmann/json/pull/1598) ([nickaein](https://github.com/nickaein)) - Added to\_string and added basic tests [\#1585](https://github.com/nlohmann/json/pull/1585) ([Macr0Nerd](https://github.com/Macr0Nerd)) - Regression tests for MSVC [\#1570](https://github.com/nlohmann/json/pull/1570) ([nickaein](https://github.com/nickaein)) - Fix/1511 [\#1555](https://github.com/nlohmann/json/pull/1555) ([theodelrieu](https://github.com/theodelrieu)) - Remove C++17 extension warning from clang; \#1535 [\#1551](https://github.com/nlohmann/json/pull/1551) ([heavywatal](https://github.com/heavywatal)) - moved from Catch to doctest for unit tests [\#1439](https://github.com/nlohmann/json/pull/1439) ([onqtam](https://github.com/onqtam)) ## [v3.6.1](https://github.com/nlohmann/json/releases/tag/v3.6.1) (2019-03-20) [Full Changelog](https://github.com/nlohmann/json/compare/v3.6.0...v3.6.1) - Failed to build with \ [\#1531](https://github.com/nlohmann/json/issues/1531) - Compiling 3.6.0 with GCC \> 7, array vs std::array \#590 is back [\#1530](https://github.com/nlohmann/json/issues/1530) - 3.6.0: warning: missing initializer for member 'std::array\::\_M\_elems' \[-Wmissing-field-initializers\] [\#1527](https://github.com/nlohmann/json/issues/1527) - unable to parse json [\#1525](https://github.com/nlohmann/json/issues/1525) ## [v3.6.0](https://github.com/nlohmann/json/releases/tag/v3.6.0) (2019-03-19) [Full Changelog](https://github.com/nlohmann/json/compare/v3.5.0...v3.6.0) - How can I turn a string of a json array into a json array? [\#1526](https://github.com/nlohmann/json/issues/1526) - Minor: missing a std:: namespace tag [\#1521](https://github.com/nlohmann/json/issues/1521) - how to precision to four decimal for double when use to\_json [\#1519](https://github.com/nlohmann/json/issues/1519) - error parse [\#1518](https://github.com/nlohmann/json/issues/1518) - Compile error: template argument deduction/substitution failed [\#1515](https://github.com/nlohmann/json/issues/1515) - Support for Comments [\#1513](https://github.com/nlohmann/json/issues/1513) - std::complex type [\#1510](https://github.com/nlohmann/json/issues/1510) - CBOR byte string support [\#1509](https://github.com/nlohmann/json/issues/1509) - Compilation error getting a std::pair\<\> on latest VS 2017 compiler [\#1506](https://github.com/nlohmann/json/issues/1506) - "Integration" section of documentation needs update? [\#1505](https://github.com/nlohmann/json/issues/1505) - Json object from string from a TCP socket [\#1504](https://github.com/nlohmann/json/issues/1504) - MSVC warning C4946 \("reinterpret\_cast used between related classes"\) compiling json.hpp [\#1502](https://github.com/nlohmann/json/issues/1502) - How to programmatically fill an n-th dimensional JSON object? [\#1501](https://github.com/nlohmann/json/issues/1501) - Error compiling with clang and `JSON\_NOEXCEPTION`: need to include `cstdlib` [\#1500](https://github.com/nlohmann/json/issues/1500) - The code compiles unsuccessfully with android-ndk-r10e [\#1499](https://github.com/nlohmann/json/issues/1499) - Cmake 3.1 in develop, when is it likely to make it into a stable release? [\#1498](https://github.com/nlohmann/json/issues/1498) - Repository is almost 450MB [\#1497](https://github.com/nlohmann/json/issues/1497) - Some Help please object inside array [\#1494](https://github.com/nlohmann/json/issues/1494) - How to get data into vector of user-defined type from a Json object [\#1493](https://github.com/nlohmann/json/issues/1493) - how to find subelement without loop [\#1490](https://github.com/nlohmann/json/issues/1490) - json to std::map [\#1487](https://github.com/nlohmann/json/issues/1487) - Type in README.md [\#1486](https://github.com/nlohmann/json/issues/1486) - Error in parsing and reading msgpack-lite [\#1485](https://github.com/nlohmann/json/issues/1485) - Compiling issues with libc 2.12 [\#1483](https://github.com/nlohmann/json/issues/1483) - How do I use reference or pointer binding values? [\#1482](https://github.com/nlohmann/json/issues/1482) - Compilation fails in MSVC with the Microsoft Language Extensions disabled [\#1481](https://github.com/nlohmann/json/issues/1481) - Functional visit [\#1480](https://github.com/nlohmann/json/issues/1480) - \[Question\] Unescaped dump [\#1479](https://github.com/nlohmann/json/issues/1479) - Some Help please [\#1478](https://github.com/nlohmann/json/issues/1478) - Global variables are stored within the JSON file, how do I declare them as global variables when I read them out in my C++ program? [\#1476](https://github.com/nlohmann/json/issues/1476) - Unable to modify one of the values within the JSON file, and save it [\#1475](https://github.com/nlohmann/json/issues/1475) - Documentation of parse function has two identical @pre causes [\#1473](https://github.com/nlohmann/json/issues/1473) - GCC 9.0 build failure [\#1472](https://github.com/nlohmann/json/issues/1472) - Can we have an `exists\(\)` method? [\#1471](https://github.com/nlohmann/json/issues/1471) - How to parse multi object json from file? [\#1470](https://github.com/nlohmann/json/issues/1470) - How to returns the name of the upper object? [\#1467](https://github.com/nlohmann/json/issues/1467) - Error: "tuple\_size" has already been declared in the current scope [\#1466](https://github.com/nlohmann/json/issues/1466) - Checking keys of two jsons against eachother [\#1465](https://github.com/nlohmann/json/issues/1465) - Disable installation when used as meson subproject [\#1463](https://github.com/nlohmann/json/issues/1463) - Unpack list of integers to a std::vector\ [\#1460](https://github.com/nlohmann/json/issues/1460) - Implement DRY definition of JSON representation of a c++ class [\#1459](https://github.com/nlohmann/json/issues/1459) - json.exception.type\_error.305 with GCC 4.9 when using C++ {} initializer [\#1458](https://github.com/nlohmann/json/issues/1458) - API to convert an "uninitialized" json into an empty object or empty array [\#1456](https://github.com/nlohmann/json/issues/1456) - How to parse a vector of objects with const attributes [\#1453](https://github.com/nlohmann/json/issues/1453) - NLOHMANN\_JSON\_SERIALIZE\_ENUM potentially requires duplicate definitions [\#1450](https://github.com/nlohmann/json/issues/1450) - Question about making json object from file directory [\#1449](https://github.com/nlohmann/json/issues/1449) - .get\(\) throws error if used with userdefined structs in unordered\_map [\#1448](https://github.com/nlohmann/json/issues/1448) - Integer Overflow \(OSS-Fuzz 12506\) [\#1447](https://github.com/nlohmann/json/issues/1447) - If a string has too many invalid UTF-8 characters, json::dump attempts to index an array out of bounds. [\#1445](https://github.com/nlohmann/json/issues/1445) - Setting values of .JSON file [\#1444](https://github.com/nlohmann/json/issues/1444) - alias object\_t::key\_type in basic\_json [\#1442](https://github.com/nlohmann/json/issues/1442) - Latest Ubuntu package is 2.1.1 [\#1438](https://github.com/nlohmann/json/issues/1438) - lexer.hpp\(1363\) '\_snprintf': is not a member | Visualstudio 2017 [\#1437](https://github.com/nlohmann/json/issues/1437) - Static method invites inadvertent logic error. [\#1433](https://github.com/nlohmann/json/issues/1433) - EOS compilation produces "fatal error: 'nlohmann/json.hpp' file not found" [\#1432](https://github.com/nlohmann/json/issues/1432) - Support for bad commas [\#1429](https://github.com/nlohmann/json/issues/1429) - Please have one base exception class for all json exceptions [\#1427](https://github.com/nlohmann/json/issues/1427) - Compilation warning: 'tuple\_size' defined as a class template here but previously declared as a struct template [\#1426](https://github.com/nlohmann/json/issues/1426) - Which version can be used with GCC 4.8.2 ? [\#1424](https://github.com/nlohmann/json/issues/1424) - Ignore nullptr values on constructing json object from a container [\#1422](https://github.com/nlohmann/json/issues/1422) - Support for custom float precision via unquoted strings [\#1421](https://github.com/nlohmann/json/issues/1421) - It is possible to call `json::find` with a json\_pointer as argument. This causes runtime UB/crash. [\#1418](https://github.com/nlohmann/json/issues/1418) - Dump throwing exception [\#1416](https://github.com/nlohmann/json/issues/1416) - Build error [\#1415](https://github.com/nlohmann/json/issues/1415) - Append version to include.zip [\#1412](https://github.com/nlohmann/json/issues/1412) - error C2039: '\_snprintf': is not a member of 'std' - Windows [\#1408](https://github.com/nlohmann/json/issues/1408) - Deserializing to vector [\#1407](https://github.com/nlohmann/json/issues/1407) - Efficient way to set a `json` object as value into another `json` key [\#1406](https://github.com/nlohmann/json/issues/1406) - Document return value of parse\(\) when allow\_exceptions == false and parsing fails [\#1405](https://github.com/nlohmann/json/issues/1405) - Unexpected behaviour with structured binding [\#1404](https://github.com/nlohmann/json/issues/1404) - Which native types does get\\(\) allow? [\#1403](https://github.com/nlohmann/json/issues/1403) - Add something like Json::StaticString [\#1402](https://github.com/nlohmann/json/issues/1402) - -Wmismatched-tags in 3.5.0? [\#1401](https://github.com/nlohmann/json/issues/1401) - Coverity Scan reports an UNCAUGHT\_EXCEPT issue [\#1400](https://github.com/nlohmann/json/issues/1400) - fff [\#1399](https://github.com/nlohmann/json/issues/1399) - sorry this is not an issue, just a Question, How to change a key value in a file and save it ? [\#1398](https://github.com/nlohmann/json/issues/1398) - appveyor x64 builds appear to be using Win32 toolset [\#1374](https://github.com/nlohmann/json/issues/1374) - Serializing/Deserializing a Class containing a vector of itself [\#1373](https://github.com/nlohmann/json/issues/1373) - Retrieving array elements. [\#1369](https://github.com/nlohmann/json/issues/1369) - Deserialize [\#1366](https://github.com/nlohmann/json/issues/1366) - call of overloaded for push\_back and operator+= is ambiguous [\#1352](https://github.com/nlohmann/json/issues/1352) - got an error and cann't figure it out [\#1351](https://github.com/nlohmann/json/issues/1351) - Improve number-to-string conversion [\#1334](https://github.com/nlohmann/json/issues/1334) - Implicit type conversion error on MSVC [\#1333](https://github.com/nlohmann/json/issues/1333) - NuGet Package [\#1132](https://github.com/nlohmann/json/issues/1132) - Change macros to numeric\_limits [\#1514](https://github.com/nlohmann/json/pull/1514) ([naszta](https://github.com/naszta)) - fix GCC 7.1.1 - 7.2.1 on CentOS [\#1496](https://github.com/nlohmann/json/pull/1496) ([lieff](https://github.com/lieff)) - Update Buckaroo instructions in README.md [\#1495](https://github.com/nlohmann/json/pull/1495) ([njlr](https://github.com/njlr)) - Fix gcc9 build error test/src/unit-allocator.cpp \(Issue \#1472\) [\#1492](https://github.com/nlohmann/json/pull/1492) ([stac47](https://github.com/stac47)) - Fix typo in README.md [\#1491](https://github.com/nlohmann/json/pull/1491) ([nickaein](https://github.com/nickaein)) - Do proper endian conversions [\#1489](https://github.com/nlohmann/json/pull/1489) ([andreas-schwab](https://github.com/andreas-schwab)) - Fix documentation [\#1477](https://github.com/nlohmann/json/pull/1477) ([nickaein](https://github.com/nickaein)) - Implement contains\(\) member function [\#1474](https://github.com/nlohmann/json/pull/1474) ([nickaein](https://github.com/nickaein)) - Add operator/= and operator/ to construct a JSON pointer by appending two JSON pointers [\#1469](https://github.com/nlohmann/json/pull/1469) ([garethsb-sony](https://github.com/garethsb-sony)) - Disable Clang -Wmismatched-tags warning on tuple\_size / tuple\_element [\#1468](https://github.com/nlohmann/json/pull/1468) ([past-due](https://github.com/past-due)) - Disable installation when used as meson subproject. \#1463 [\#1464](https://github.com/nlohmann/json/pull/1464) ([elvisoric](https://github.com/elvisoric)) - docs: README typo [\#1455](https://github.com/nlohmann/json/pull/1455) ([wythe](https://github.com/wythe)) - remove extra semicolon from readme [\#1451](https://github.com/nlohmann/json/pull/1451) ([Afforix](https://github.com/Afforix)) - attempt to fix \#1445, flush buffer in serializer::dump\_escaped in UTF8\_REJECT case. [\#1446](https://github.com/nlohmann/json/pull/1446) ([scinart](https://github.com/scinart)) - Use C++11 features supported by CMake 3.1. [\#1441](https://github.com/nlohmann/json/pull/1441) ([iwanders](https://github.com/iwanders)) - :rotating\_light: fixed unused variable warning [\#1435](https://github.com/nlohmann/json/pull/1435) ([pboettch](https://github.com/pboettch)) - allow push\_back\(\) and pop\_back\(\) calls on json\_pointer [\#1434](https://github.com/nlohmann/json/pull/1434) ([pboettch](https://github.com/pboettch)) - Add instructions about using nlohmann/json with the conda package manager [\#1430](https://github.com/nlohmann/json/pull/1430) ([nicoddemus](https://github.com/nicoddemus)) - Updated year in README.md [\#1425](https://github.com/nlohmann/json/pull/1425) ([hijxf](https://github.com/hijxf)) - Fixed broken links in the README file [\#1423](https://github.com/nlohmann/json/pull/1423) ([skypjack](https://github.com/skypjack)) - Fixed broken links in the README file [\#1420](https://github.com/nlohmann/json/pull/1420) ([skypjack](https://github.com/skypjack)) - docs: typo in README [\#1417](https://github.com/nlohmann/json/pull/1417) ([wythe](https://github.com/wythe)) - Fix x64 target platform for appveyor [\#1414](https://github.com/nlohmann/json/pull/1414) ([nickaein](https://github.com/nickaein)) - Improve dump\_integer performance [\#1411](https://github.com/nlohmann/json/pull/1411) ([nickaein](https://github.com/nickaein)) - buildsystem: relax requirement on cmake version [\#1409](https://github.com/nlohmann/json/pull/1409) ([yann-morin-1998](https://github.com/yann-morin-1998)) - CMake: Optional Install if Embedded [\#1330](https://github.com/nlohmann/json/pull/1330) ([ax3l](https://github.com/ax3l)) ## [v3.5.0](https://github.com/nlohmann/json/releases/tag/v3.5.0) (2018-12-21) [Full Changelog](https://github.com/nlohmann/json/compare/v3.4.0...v3.5.0) - Copyconstructor inserts original into array with single element [\#1397](https://github.com/nlohmann/json/issues/1397) - Get value without explicit typecasting [\#1395](https://github.com/nlohmann/json/issues/1395) - Big file parsing [\#1393](https://github.com/nlohmann/json/issues/1393) - some static analysis warning at line 11317 [\#1390](https://github.com/nlohmann/json/issues/1390) - Adding Structured Binding Support [\#1388](https://github.com/nlohmann/json/issues/1388) - map\ exhibits unexpected behavior [\#1387](https://github.com/nlohmann/json/issues/1387) - Error Code Return [\#1386](https://github.com/nlohmann/json/issues/1386) - using unordered\_map as object type [\#1385](https://github.com/nlohmann/json/issues/1385) - float precision [\#1384](https://github.com/nlohmann/json/issues/1384) - \[json.exception.type\_error.316\] invalid UTF-8 byte at index 1: 0xC3 [\#1383](https://github.com/nlohmann/json/issues/1383) - Inconsistent Constructor \(GCC vs. Clang\) [\#1381](https://github.com/nlohmann/json/issues/1381) - \#define or || [\#1379](https://github.com/nlohmann/json/issues/1379) - How to iterate inside the values ? [\#1377](https://github.com/nlohmann/json/issues/1377) - items\(\) unable to get the elements [\#1375](https://github.com/nlohmann/json/issues/1375) - conversion json to std::map doesn't work for types \ [\#1372](https://github.com/nlohmann/json/issues/1372) - A minor issue in the build instructions [\#1371](https://github.com/nlohmann/json/issues/1371) - Using this library without stream ? [\#1370](https://github.com/nlohmann/json/issues/1370) - Writing and reading BSON data [\#1368](https://github.com/nlohmann/json/issues/1368) - Retrieving array elements from object type iterator. [\#1367](https://github.com/nlohmann/json/issues/1367) - json::dump\(\) silently crashes if items contain accented letters [\#1365](https://github.com/nlohmann/json/issues/1365) - warnings in MSVC \(2015\) in 3.4.0 related to bool... [\#1364](https://github.com/nlohmann/json/issues/1364) - Cant compile with -C++17 and beyond compiler options [\#1362](https://github.com/nlohmann/json/issues/1362) - json to concrete type conversion through reference or pointer fails [\#1361](https://github.com/nlohmann/json/issues/1361) - the first attributes of JSON string is misplaced [\#1360](https://github.com/nlohmann/json/issues/1360) - Copy-construct using initializer-list converts objects to arrays [\#1359](https://github.com/nlohmann/json/issues/1359) - About value\(key, default\_value\) and operator\[\]\(key\) [\#1358](https://github.com/nlohmann/json/issues/1358) - Problem with printing json response object [\#1356](https://github.com/nlohmann/json/issues/1356) - Serializing pointer segfaults [\#1355](https://github.com/nlohmann/json/issues/1355) - Read `long long int` data as a number. [\#1354](https://github.com/nlohmann/json/issues/1354) - eclipse oxygen in ubuntu get\ is ambiguous [\#1353](https://github.com/nlohmann/json/issues/1353) - Can't build on Visual Studio 2017 v15.8.9 [\#1350](https://github.com/nlohmann/json/issues/1350) - cannot parse from string? [\#1349](https://github.com/nlohmann/json/issues/1349) - Error: out\_of\_range [\#1348](https://github.com/nlohmann/json/issues/1348) - expansion pattern 'CompatibleObjectType' contains no argument packs, with CUDA 10 [\#1347](https://github.com/nlohmann/json/issues/1347) - Unable to update a value for a nested\(multi-level\) json file [\#1344](https://github.com/nlohmann/json/issues/1344) - Fails to compile when std::iterator\_traits is not SFINAE friendly. [\#1341](https://github.com/nlohmann/json/issues/1341) - EOF flag not set on exhausted input streams. [\#1340](https://github.com/nlohmann/json/issues/1340) - Shadowed Member in merge\_patch [\#1339](https://github.com/nlohmann/json/issues/1339) - Periods/literal dots in keys? [\#1338](https://github.com/nlohmann/json/issues/1338) - Protect macro expansion of commonly defined macros [\#1337](https://github.com/nlohmann/json/issues/1337) - How to validate an input before parsing? [\#1336](https://github.com/nlohmann/json/issues/1336) - Non-verifying dump\(\) alternative for debugging/logging needed [\#1335](https://github.com/nlohmann/json/issues/1335) - Json Libarary is not responding for me in c++ [\#1332](https://github.com/nlohmann/json/issues/1332) - Question - how to find an object in an array [\#1331](https://github.com/nlohmann/json/issues/1331) - Nesting additional data in json object [\#1328](https://github.com/nlohmann/json/issues/1328) - can to\_json\(\) be defined inside a class? [\#1324](https://github.com/nlohmann/json/issues/1324) - CodeBlocks IDE can't find `json.hpp` header [\#1318](https://github.com/nlohmann/json/issues/1318) - Change json\_pointer to provide an iterator begin/end/etc, don't use vectors, and also enable string\_view [\#1312](https://github.com/nlohmann/json/issues/1312) - Xcode - adding it to library [\#1300](https://github.com/nlohmann/json/issues/1300) - unicode: accept char16\_t, char32\_t sequences [\#1298](https://github.com/nlohmann/json/issues/1298) - unicode: char16\_t\* is compiler error, but char16\_t\[\] is accepted [\#1297](https://github.com/nlohmann/json/issues/1297) - Dockerfile Project Help Needed [\#1296](https://github.com/nlohmann/json/issues/1296) - Comparisons between large unsigned and negative signed integers [\#1295](https://github.com/nlohmann/json/issues/1295) - CMake alias to `nlohmann::json` [\#1291](https://github.com/nlohmann/json/issues/1291) - Release zips without tests [\#1285](https://github.com/nlohmann/json/issues/1285) - Suggestion to improve value\(\) accessors with respect to move semantics [\#1275](https://github.com/nlohmann/json/issues/1275) - separate object\_t::key\_type from basic\_json::key\_type, and use an allocator which returns object\_t::key\_type [\#1274](https://github.com/nlohmann/json/issues/1274) - Is there a nice way to associate external values with json elements? [\#1256](https://github.com/nlohmann/json/issues/1256) - Delete by json\_pointer [\#1248](https://github.com/nlohmann/json/issues/1248) - Expose lexer, as a StAX parser [\#1219](https://github.com/nlohmann/json/issues/1219) - Subclassing json\(\) & error on recursive load [\#1201](https://github.com/nlohmann/json/issues/1201) - Check value for existence by json\_pointer [\#1194](https://github.com/nlohmann/json/issues/1194) - Feature/add file input adapter [\#1392](https://github.com/nlohmann/json/pull/1392) ([dumarjo](https://github.com/dumarjo)) - Added Support for Structured Bindings [\#1391](https://github.com/nlohmann/json/pull/1391) ([pratikpc](https://github.com/pratikpc)) - Link to issue \#958 broken [\#1382](https://github.com/nlohmann/json/pull/1382) ([kjpus](https://github.com/kjpus)) - readme: fix typo [\#1380](https://github.com/nlohmann/json/pull/1380) ([manu-chroma](https://github.com/manu-chroma)) - recommend using explicit from JSON conversions [\#1363](https://github.com/nlohmann/json/pull/1363) ([theodelrieu](https://github.com/theodelrieu)) - Fix merge\_patch shadow warning [\#1346](https://github.com/nlohmann/json/pull/1346) ([ax3l](https://github.com/ax3l)) - Allow installation via Meson [\#1345](https://github.com/nlohmann/json/pull/1345) ([mpoquet](https://github.com/mpoquet)) - Set eofbit on exhausted input stream. [\#1343](https://github.com/nlohmann/json/pull/1343) ([mefyl](https://github.com/mefyl)) - Add a SFINAE friendly iterator\_traits and use that instead. [\#1342](https://github.com/nlohmann/json/pull/1342) ([dgavedissian](https://github.com/dgavedissian)) - Fix EOL Whitespaces & CMake Spelling [\#1329](https://github.com/nlohmann/json/pull/1329) ([ax3l](https://github.com/ax3l)) ## [v3.4.0](https://github.com/nlohmann/json/releases/tag/v3.4.0) (2018-10-30) [Full Changelog](https://github.com/nlohmann/json/compare/v3.3.0...v3.4.0) - Big uint64\_t values are serialized wrong [\#1327](https://github.com/nlohmann/json/issues/1327) - \[Question\] Efficient check for equivalency? [\#1325](https://github.com/nlohmann/json/issues/1325) - Can't use ifstream and .clear\(\) [\#1321](https://github.com/nlohmann/json/issues/1321) - \[Warning\] -Wparentheses on line 555 on single\_include [\#1319](https://github.com/nlohmann/json/issues/1319) - Compilation error using at and find with enum struct [\#1316](https://github.com/nlohmann/json/issues/1316) - Parsing JSON from a web address [\#1311](https://github.com/nlohmann/json/issues/1311) - How to convert JSON to Struct with embeded subject [\#1310](https://github.com/nlohmann/json/issues/1310) - Null safety/coalescing function? [\#1309](https://github.com/nlohmann/json/issues/1309) - Building fails using single include file: json.hpp [\#1308](https://github.com/nlohmann/json/issues/1308) - json::parse\(std::string\) Exception inside packaged Lib [\#1306](https://github.com/nlohmann/json/issues/1306) - Problem in Dockerfile with installation of library [\#1304](https://github.com/nlohmann/json/issues/1304) - compile error in from\_json converting to container with std::pair [\#1299](https://github.com/nlohmann/json/issues/1299) - Json that I am trying to parse, and I am lost Structure Array below top level [\#1293](https://github.com/nlohmann/json/issues/1293) - Serializing std::variant causes stack overflow [\#1292](https://github.com/nlohmann/json/issues/1292) - How do I go about customising from\_json to support \_\_int128\_t/\_\_uint128\_t? [\#1290](https://github.com/nlohmann/json/issues/1290) - merge\_patch: inconsistent behaviour merging empty sub-object [\#1289](https://github.com/nlohmann/json/issues/1289) - Buffer over/underrun using UBJson? [\#1288](https://github.com/nlohmann/json/issues/1288) - Enable the latest C++ standard with Visual Studio [\#1287](https://github.com/nlohmann/json/issues/1287) - truncation of constant value in to\_cbor\(\) [\#1286](https://github.com/nlohmann/json/issues/1286) - eosio.wasmsdk error [\#1284](https://github.com/nlohmann/json/issues/1284) - use the same interface for writing arrays and non-arrays [\#1283](https://github.com/nlohmann/json/issues/1283) - How to read json file with optional entries and entries with different types [\#1281](https://github.com/nlohmann/json/issues/1281) - merge result not as espected [\#1279](https://github.com/nlohmann/json/issues/1279) - how to get only "name" from below json [\#1278](https://github.com/nlohmann/json/issues/1278) - syntax error on right json string [\#1276](https://github.com/nlohmann/json/issues/1276) - Parsing JSON Array where members have no key, using custom types [\#1267](https://github.com/nlohmann/json/issues/1267) - I get a json exception periodically from json::parse for the same json [\#1263](https://github.com/nlohmann/json/issues/1263) - serialize std::variant\<...\> [\#1261](https://github.com/nlohmann/json/issues/1261) - GCC 8.2.1. Compilation error: invalid conversion from... [\#1246](https://github.com/nlohmann/json/issues/1246) - BSON support [\#1244](https://github.com/nlohmann/json/issues/1244) - enum to json mapping [\#1208](https://github.com/nlohmann/json/issues/1208) - Soften the landing when dumping non-UTF8 strings \(type\_error.316 exception\) [\#1198](https://github.com/nlohmann/json/issues/1198) - CMakeLists.txt in release zips? [\#1184](https://github.com/nlohmann/json/issues/1184) - Add macro to define enum/JSON mapping [\#1323](https://github.com/nlohmann/json/pull/1323) ([nlohmann](https://github.com/nlohmann)) - Add BSON support [\#1320](https://github.com/nlohmann/json/pull/1320) ([nlohmann](https://github.com/nlohmann)) - Properly convert constants to CharType [\#1315](https://github.com/nlohmann/json/pull/1315) ([nlohmann](https://github.com/nlohmann)) - Allow to set error handler for decoding errors [\#1314](https://github.com/nlohmann/json/pull/1314) ([nlohmann](https://github.com/nlohmann)) - Add Meson related info to README [\#1305](https://github.com/nlohmann/json/pull/1305) ([koponomarenko](https://github.com/koponomarenko)) - Improve diagnostic messages for binary formats [\#1303](https://github.com/nlohmann/json/pull/1303) ([nlohmann](https://github.com/nlohmann)) - add new is\_constructible\_\* traits used in from\_json [\#1301](https://github.com/nlohmann/json/pull/1301) ([theodelrieu](https://github.com/theodelrieu)) - add constraints for variadic json\_ref constructors [\#1294](https://github.com/nlohmann/json/pull/1294) ([theodelrieu](https://github.com/theodelrieu)) - Improve diagnostic messages [\#1282](https://github.com/nlohmann/json/pull/1282) ([nlohmann](https://github.com/nlohmann)) - Removed linter warnings [\#1280](https://github.com/nlohmann/json/pull/1280) ([nlohmann](https://github.com/nlohmann)) - Thirdparty benchmark: Fix Clang detection. [\#1277](https://github.com/nlohmann/json/pull/1277) ([Lord-Kamina](https://github.com/Lord-Kamina)) ## [v3.3.0](https://github.com/nlohmann/json/releases/tag/v3.3.0) (2018-10-05) [Full Changelog](https://github.com/nlohmann/json/compare/v3.2.0...v3.3.0) - When key is not found print the key name into error too [\#1273](https://github.com/nlohmann/json/issues/1273) - Visual Studio 2017 15.8.5 "conditional expression is constant" warning on Line 1851 in json.hpp [\#1268](https://github.com/nlohmann/json/issues/1268) - how can we get this working on WSL? [\#1264](https://github.com/nlohmann/json/issues/1264) - Help needed [\#1259](https://github.com/nlohmann/json/issues/1259) - A way to get to a JSON values "key" [\#1258](https://github.com/nlohmann/json/issues/1258) - While compiling got 76 errors [\#1255](https://github.com/nlohmann/json/issues/1255) - Two blackslashes on json output file [\#1253](https://github.com/nlohmann/json/issues/1253) - Including nlohmann the badwrong way. [\#1250](https://github.com/nlohmann/json/issues/1250) - how to build with clang? [\#1247](https://github.com/nlohmann/json/issues/1247) - Cmake target\_link\_libraries unable to find nlohmann\_json since version 3.2.0 [\#1243](https://github.com/nlohmann/json/issues/1243) - \[Question\] Access to end\(\) iterator reference [\#1242](https://github.com/nlohmann/json/issues/1242) - Parsing different json format [\#1241](https://github.com/nlohmann/json/issues/1241) - Parsing Multiple JSON Files [\#1240](https://github.com/nlohmann/json/issues/1240) - Doesn't compile under C++17 [\#1239](https://github.com/nlohmann/json/issues/1239) - Conversion operator for nlohmann::json is not SFINAE friendly [\#1237](https://github.com/nlohmann/json/issues/1237) - Custom deserialization of number\_float\_t [\#1236](https://github.com/nlohmann/json/issues/1236) - Move tests to a separate repo [\#1235](https://github.com/nlohmann/json/issues/1235) - deprecated-declarations warnings when compiling tests with GCC 8.2.1. [\#1233](https://github.com/nlohmann/json/issues/1233) - Incomplete type with json\_fwd.hpp [\#1232](https://github.com/nlohmann/json/issues/1232) - Parse Error [\#1229](https://github.com/nlohmann/json/issues/1229) - json::get function with argument [\#1227](https://github.com/nlohmann/json/issues/1227) - questions regarding from\_json [\#1226](https://github.com/nlohmann/json/issues/1226) - Lambda in unevaluated context [\#1225](https://github.com/nlohmann/json/issues/1225) - NLohmann doesn't compile when enabling strict warning policies [\#1224](https://github.com/nlohmann/json/issues/1224) - Creating array of objects [\#1223](https://github.com/nlohmann/json/issues/1223) - Somewhat unhelpful error message "cannot use operator\[\] with object" [\#1220](https://github.com/nlohmann/json/issues/1220) - single\_include json.hpp [\#1218](https://github.com/nlohmann/json/issues/1218) - Maps with enum class keys which are convertible to JSON strings should be converted to JSON dictionaries [\#1217](https://github.com/nlohmann/json/issues/1217) - Adding JSON Array to the Array [\#1216](https://github.com/nlohmann/json/issues/1216) - Best way to output a vector of a given type to json [\#1215](https://github.com/nlohmann/json/issues/1215) - compiler warning: double definition of macro JSON\_INTERNAL\_CATCH [\#1213](https://github.com/nlohmann/json/issues/1213) - Compilation error when using MOCK\_METHOD1 from GMock and nlohmann::json [\#1212](https://github.com/nlohmann/json/issues/1212) - Issues parsing a previously encoded binary \(non-UTF8\) string. [\#1211](https://github.com/nlohmann/json/issues/1211) - Yet another ordering question: char \* and parse\(\) [\#1209](https://github.com/nlohmann/json/issues/1209) - Error using gcc 8.1.0 on Ubuntu 14.04 [\#1207](https://github.com/nlohmann/json/issues/1207) - "type must be string, but is " std::string\(j.type\_name\(\) [\#1206](https://github.com/nlohmann/json/issues/1206) - Returning empty json object from a function of type const json& ? [\#1205](https://github.com/nlohmann/json/issues/1205) - VS2017 compiler suggests using constexpr if [\#1204](https://github.com/nlohmann/json/issues/1204) - Template instatiation error on compiling [\#1203](https://github.com/nlohmann/json/issues/1203) - BUG - json dump field with unicode -\> array of ints \(instead of string\) [\#1197](https://github.com/nlohmann/json/issues/1197) - Compile error using Code::Blocks // mingw-w64 GCC 8.1.0 - "Incomplete Type" [\#1193](https://github.com/nlohmann/json/issues/1193) - SEGFAULT on arm target [\#1190](https://github.com/nlohmann/json/issues/1190) - Compiler crash with old Clang [\#1179](https://github.com/nlohmann/json/issues/1179) - Custom Precision on floating point numbers [\#1170](https://github.com/nlohmann/json/issues/1170) - Can we have a json\_view class like std::string\_view? [\#1158](https://github.com/nlohmann/json/issues/1158) - improve error handling [\#1152](https://github.com/nlohmann/json/issues/1152) - We should remove static\_asserts [\#960](https://github.com/nlohmann/json/issues/960) - Fix warning C4127: conditional expression is constant [\#1272](https://github.com/nlohmann/json/pull/1272) ([antonioborondo](https://github.com/antonioborondo)) - Turn off additional deprecation warnings for GCC. [\#1271](https://github.com/nlohmann/json/pull/1271) ([chuckatkins](https://github.com/chuckatkins)) - docs: Add additional CMake documentation [\#1270](https://github.com/nlohmann/json/pull/1270) ([chuckatkins](https://github.com/chuckatkins)) - unit-testsuites.cpp: fix hangup if file not found [\#1262](https://github.com/nlohmann/json/pull/1262) ([knilch0r](https://github.com/knilch0r)) - Fix broken cmake imported target alias [\#1260](https://github.com/nlohmann/json/pull/1260) ([chuckatkins](https://github.com/chuckatkins)) - GCC 48 [\#1257](https://github.com/nlohmann/json/pull/1257) ([henryiii](https://github.com/henryiii)) - Add version and license to meson.build [\#1252](https://github.com/nlohmann/json/pull/1252) ([koponomarenko](https://github.com/koponomarenko)) - \#1179 Reordered the code. It seems to stop clang 3.4.2 in RHEL 7 from crash… [\#1249](https://github.com/nlohmann/json/pull/1249) ([LEgregius](https://github.com/LEgregius)) - Use a version check to provide backwards comatible CMake imported target names [\#1245](https://github.com/nlohmann/json/pull/1245) ([chuckatkins](https://github.com/chuckatkins)) - Fix issue \#1237 [\#1238](https://github.com/nlohmann/json/pull/1238) ([theodelrieu](https://github.com/theodelrieu)) - Add a get overload taking a parameter. [\#1231](https://github.com/nlohmann/json/pull/1231) ([theodelrieu](https://github.com/theodelrieu)) - Move lambda out of unevaluated context [\#1230](https://github.com/nlohmann/json/pull/1230) ([mandreyel](https://github.com/mandreyel)) - Remove static asserts [\#1228](https://github.com/nlohmann/json/pull/1228) ([theodelrieu](https://github.com/theodelrieu)) - Better error 305 [\#1221](https://github.com/nlohmann/json/pull/1221) ([rivertam](https://github.com/rivertam)) - Fix \#1213 [\#1214](https://github.com/nlohmann/json/pull/1214) ([simnalamburt](https://github.com/simnalamburt)) - Export package to allow builds without installing [\#1202](https://github.com/nlohmann/json/pull/1202) ([dennisfischer](https://github.com/dennisfischer)) ## [v3.2.0](https://github.com/nlohmann/json/releases/tag/v3.2.0) (2018-08-20) [Full Changelog](https://github.com/nlohmann/json/compare/v3.1.2...v3.2.0) - Am I doing this wrong? Getting an empty string [\#1199](https://github.com/nlohmann/json/issues/1199) - Incompatible Pointer Type [\#1196](https://github.com/nlohmann/json/issues/1196) - json.exception.type\_error.316 [\#1195](https://github.com/nlohmann/json/issues/1195) - Strange warnings in Code::Blocks 17.12, GNU GCC [\#1192](https://github.com/nlohmann/json/issues/1192) - \[Question\] Current place in code to change floating point resolution [\#1191](https://github.com/nlohmann/json/issues/1191) - Add key name when throwing type error [\#1189](https://github.com/nlohmann/json/issues/1189) - Not able to include in visual studio code? [\#1188](https://github.com/nlohmann/json/issues/1188) - Get an Index or row number of an element [\#1186](https://github.com/nlohmann/json/issues/1186) - reduce repos size [\#1185](https://github.com/nlohmann/json/issues/1185) - Difference between `merge\_patch` and `update` [\#1183](https://github.com/nlohmann/json/issues/1183) - Is there a way to get an element from a JSON without throwing an exception on failure? [\#1182](https://github.com/nlohmann/json/issues/1182) - to\_string? [\#1181](https://github.com/nlohmann/json/issues/1181) - How to cache a json object's pointer into a map? [\#1180](https://github.com/nlohmann/json/issues/1180) - Can this library work within a Qt project for Android using Qt Creator? [\#1178](https://github.com/nlohmann/json/issues/1178) - How to get all keys of one object? [\#1177](https://github.com/nlohmann/json/issues/1177) - How can I only parse the first level and get the value as string? [\#1175](https://github.com/nlohmann/json/issues/1175) - I have a query regarding nlohmann::basic\_json::basic\_json [\#1174](https://github.com/nlohmann/json/issues/1174) - unordered\_map with vectors won't convert to json? [\#1173](https://github.com/nlohmann/json/issues/1173) - return json objects from functions [\#1172](https://github.com/nlohmann/json/issues/1172) - Problem when exporting to CBOR [\#1171](https://github.com/nlohmann/json/issues/1171) - Roundtripping null to nullptr does not work [\#1169](https://github.com/nlohmann/json/issues/1169) - MSVC fails to compile std::swap specialization for nlohmann::json [\#1168](https://github.com/nlohmann/json/issues/1168) - Unexpected behaviour of is\_null - Part II [\#1167](https://github.com/nlohmann/json/issues/1167) - Floating point imprecision [\#1166](https://github.com/nlohmann/json/issues/1166) - Combine json objects into one? [\#1165](https://github.com/nlohmann/json/issues/1165) - Is there any way to know if the object has changed? [\#1164](https://github.com/nlohmann/json/issues/1164) - Value throws on null string [\#1163](https://github.com/nlohmann/json/issues/1163) - Weird template issue in large project [\#1162](https://github.com/nlohmann/json/issues/1162) - \_json returns a different result vs ::parse [\#1161](https://github.com/nlohmann/json/issues/1161) - Showing difference between two json objects [\#1160](https://github.com/nlohmann/json/issues/1160) - no instance of overloaded function "std::swap" matches the specified type [\#1159](https://github.com/nlohmann/json/issues/1159) - resize\(...\)? [\#1157](https://github.com/nlohmann/json/issues/1157) - Issue with struct nested in class' to\_json [\#1155](https://github.com/nlohmann/json/issues/1155) - Deserialize std::map with std::nan [\#1154](https://github.com/nlohmann/json/issues/1154) - Parse throwing errors [\#1149](https://github.com/nlohmann/json/issues/1149) - cocoapod integration [\#1148](https://github.com/nlohmann/json/issues/1148) - wstring parsing [\#1147](https://github.com/nlohmann/json/issues/1147) - Is it possible to dump a two-dimensional array to "\[\[null\],\[1,2,3\]\]"? [\#1146](https://github.com/nlohmann/json/issues/1146) - Want to write a class member variable and a struct variable \( this structure is inside the class\) to the json file [\#1145](https://github.com/nlohmann/json/issues/1145) - Does json support converting an instance of a struct into json string? [\#1143](https://github.com/nlohmann/json/issues/1143) - \#Most efficient way to search for child parameters \(recursive find?\) [\#1141](https://github.com/nlohmann/json/issues/1141) - could not find to\_json\(\) method in T's namespace [\#1140](https://github.com/nlohmann/json/issues/1140) - chars get treated as JSON numbers not JSON strings [\#1139](https://github.com/nlohmann/json/issues/1139) - How do I count number of objects in array? [\#1137](https://github.com/nlohmann/json/issues/1137) - Serializing a vector of classes? [\#1136](https://github.com/nlohmann/json/issues/1136) - Compile error. Unable convert form nullptr to nullptr&& [\#1135](https://github.com/nlohmann/json/issues/1135) - std::unordered\_map in struct, serialization [\#1133](https://github.com/nlohmann/json/issues/1133) - dump\(\) can't handle umlauts [\#1131](https://github.com/nlohmann/json/issues/1131) - Add a way to get a key reference from the iterator [\#1127](https://github.com/nlohmann/json/issues/1127) - can't not parse "\\“ string [\#1123](https://github.com/nlohmann/json/issues/1123) - if json file contain Internationalization chars , get exception [\#1122](https://github.com/nlohmann/json/issues/1122) - How to use a json::iterator dereferenced value in code? [\#1120](https://github.com/nlohmann/json/issues/1120) - clang compiler: error : unknown type name 'not' [\#1119](https://github.com/nlohmann/json/issues/1119) - Disable implicit conversions from json to std::initializer\_list\ for any T [\#1118](https://github.com/nlohmann/json/issues/1118) - Implicit conversions to complex types can lead to surprising and confusing errors [\#1116](https://github.com/nlohmann/json/issues/1116) - How can I write from\_json for a complex datatype that is not default constructible? [\#1115](https://github.com/nlohmann/json/issues/1115) - Compile error in VS2015 when compiling unit-conversions.cpp [\#1114](https://github.com/nlohmann/json/issues/1114) - ADL Serializer for std::any / boost::any [\#1113](https://github.com/nlohmann/json/issues/1113) - Unexpected behaviour of is\_null [\#1112](https://github.com/nlohmann/json/issues/1112) - How to resolve " undefined reference to `std::\_\_throw\_bad\_cast\(\)'" [\#1111](https://github.com/nlohmann/json/issues/1111) - cannot compile on ubuntu 18.04 and 16.04 [\#1110](https://github.com/nlohmann/json/issues/1110) - JSON representation for floating point values has too many digits [\#1109](https://github.com/nlohmann/json/issues/1109) - Not working for classes containing "\_declspec\(dllimport\)" in their declaration [\#1108](https://github.com/nlohmann/json/issues/1108) - Get keys from json object [\#1107](https://github.com/nlohmann/json/issues/1107) - dump\(\) without alphabetical order [\#1106](https://github.com/nlohmann/json/issues/1106) - Cannot deserialize types using std::ratio [\#1105](https://github.com/nlohmann/json/issues/1105) - i want to learn json [\#1104](https://github.com/nlohmann/json/issues/1104) - Type checking during compile [\#1103](https://github.com/nlohmann/json/issues/1103) - Iterate through sub items [\#1102](https://github.com/nlohmann/json/issues/1102) - cppcheck failing for version 3.1.2 [\#1101](https://github.com/nlohmann/json/issues/1101) - Deserializing std::map [\#1100](https://github.com/nlohmann/json/issues/1100) - accessing key by reference [\#1098](https://github.com/nlohmann/json/issues/1098) - clang 3.8.0 croaks while trying to compile with debug symbols [\#1097](https://github.com/nlohmann/json/issues/1097) - Serialize a list of class objects with json [\#1096](https://github.com/nlohmann/json/issues/1096) - Small question [\#1094](https://github.com/nlohmann/json/issues/1094) - Upgrading to 3.x: to\_/from\_json with enum class [\#1093](https://github.com/nlohmann/json/issues/1093) - Q: few questions about json construction [\#1092](https://github.com/nlohmann/json/issues/1092) - general crayCC compilation failure [\#1091](https://github.com/nlohmann/json/issues/1091) - Merge Patch clears original data [\#1090](https://github.com/nlohmann/json/issues/1090) - \[Question\] how to use nlohmann/json in c++? [\#1088](https://github.com/nlohmann/json/issues/1088) - C++17 decomposition declaration support [\#1087](https://github.com/nlohmann/json/issues/1087) - \[Question\] Access multi-level json objects [\#1086](https://github.com/nlohmann/json/issues/1086) - Serializing vector [\#1085](https://github.com/nlohmann/json/issues/1085) - update nested value in multi hierarchy json object [\#1084](https://github.com/nlohmann/json/issues/1084) - Overriding default values? [\#1083](https://github.com/nlohmann/json/issues/1083) - detail namespace collision with Cereal? [\#1082](https://github.com/nlohmann/json/issues/1082) - Error using json.dump\(\); [\#1081](https://github.com/nlohmann/json/issues/1081) - Consuming TCP Stream [\#1080](https://github.com/nlohmann/json/issues/1080) - Compilation error with strong typed enums in map in combination with namespaces [\#1079](https://github.com/nlohmann/json/issues/1079) - cassert error [\#1076](https://github.com/nlohmann/json/issues/1076) - Valid json data not being parsed [\#1075](https://github.com/nlohmann/json/issues/1075) - Feature request :: Better testing for key existance without try/catch [\#1074](https://github.com/nlohmann/json/issues/1074) - Hi, I have input like a.b.c and want to convert it to \"a\"{\"b\": \"c\"} form. Any suggestions how do I do this? Thanks. [\#1073](https://github.com/nlohmann/json/issues/1073) - ADL deserializer not picked up for non default-constructible type [\#1072](https://github.com/nlohmann/json/issues/1072) - Deserializing std::array doesn't compiler \(no insert\(\)\) [\#1071](https://github.com/nlohmann/json/issues/1071) - Serializing OpenCV Mat problem [\#1070](https://github.com/nlohmann/json/issues/1070) - Compilation error with ICPC compiler [\#1068](https://github.com/nlohmann/json/issues/1068) - Minimal branch? [\#1066](https://github.com/nlohmann/json/issues/1066) - Not existing value, crash [\#1065](https://github.com/nlohmann/json/issues/1065) - cyryllic symbols [\#1064](https://github.com/nlohmann/json/issues/1064) - newbie usage question [\#1063](https://github.com/nlohmann/json/issues/1063) - Trying j\["strTest"\] = "%A" produces "strTest": "-0X1.CCCCCCCCCCCCCP+205" [\#1062](https://github.com/nlohmann/json/issues/1062) - convert json value to std::string??? [\#1061](https://github.com/nlohmann/json/issues/1061) - Commented out test cases, should they be removed? [\#1060](https://github.com/nlohmann/json/issues/1060) - different behaviour between clang and gcc with braced initialization [\#1059](https://github.com/nlohmann/json/issues/1059) - json array: initialize with prescribed size and `resize` method. [\#1057](https://github.com/nlohmann/json/issues/1057) - Is it possible to use exceptions istead of assertions? [\#1056](https://github.com/nlohmann/json/issues/1056) - when using assign operator in with json object a static assertion fails.. [\#1055](https://github.com/nlohmann/json/issues/1055) - Iterate over leafs of a JSON data structure: enrich the JSON pointer API [\#1054](https://github.com/nlohmann/json/issues/1054) - \[Feature request\] Access by path [\#1053](https://github.com/nlohmann/json/issues/1053) - document that implicit js -\> primitive conversion does not work for std::string::value\_type and why [\#1052](https://github.com/nlohmann/json/issues/1052) - error: ‘BasicJsonType’ in namespace ‘::’ does not name a type [\#1051](https://github.com/nlohmann/json/issues/1051) - Destructor is called when filling object through assignement [\#1050](https://github.com/nlohmann/json/issues/1050) - Is this thing thread safe for reads? [\#1049](https://github.com/nlohmann/json/issues/1049) - clang-tidy: Call to virtual function during construction [\#1046](https://github.com/nlohmann/json/issues/1046) - Using STL algorithms with JSON containers with expected results? [\#1045](https://github.com/nlohmann/json/issues/1045) - Usage with gtest/gmock not working as expected [\#1044](https://github.com/nlohmann/json/issues/1044) - Consequences of from\_json / to\_json being in namespace of data struct. [\#1042](https://github.com/nlohmann/json/issues/1042) - const\_reference operator\[\]\(const typename object\_t::key\_type& key\) const throw instead of assert [\#1039](https://github.com/nlohmann/json/issues/1039) - Trying to retrieve data from nested objects [\#1038](https://github.com/nlohmann/json/issues/1038) - Direct download link for json\_fwd.hpp? [\#1037](https://github.com/nlohmann/json/issues/1037) - I know the library supports UTF-8, but failed to dump the value [\#1036](https://github.com/nlohmann/json/issues/1036) - Putting a Vec3-like vector into a json object [\#1035](https://github.com/nlohmann/json/issues/1035) - Ternary operator crash [\#1034](https://github.com/nlohmann/json/issues/1034) - Issued with Clion Inspection Resolution since 2018.1 [\#1033](https://github.com/nlohmann/json/issues/1033) - Some testcases fail and one never finishes [\#1032](https://github.com/nlohmann/json/issues/1032) - Can this class work with wchar\_t / std::wstring? [\#1031](https://github.com/nlohmann/json/issues/1031) - Makefile: Valgrind flags have no effect [\#1030](https://github.com/nlohmann/json/issues/1030) - 「==」 Should be 「\>」 [\#1029](https://github.com/nlohmann/json/issues/1029) - HOCON reader? [\#1027](https://github.com/nlohmann/json/issues/1027) - add json string in previous string?? [\#1025](https://github.com/nlohmann/json/issues/1025) - RFC: fluent parsing interface [\#1023](https://github.com/nlohmann/json/issues/1023) - Does it support chinese character? [\#1022](https://github.com/nlohmann/json/issues/1022) - to/from\_msgpack only works with standard typization [\#1021](https://github.com/nlohmann/json/issues/1021) - Build failure using latest clang and GCC compilers [\#1020](https://github.com/nlohmann/json/issues/1020) - can two json objects be concatenated? [\#1019](https://github.com/nlohmann/json/issues/1019) - Erase by integer index [\#1018](https://github.com/nlohmann/json/issues/1018) - Function find overload taking a json\_pointer [\#1017](https://github.com/nlohmann/json/issues/1017) - I think should implement an parser function [\#1016](https://github.com/nlohmann/json/issues/1016) - Readme gif [\#1015](https://github.com/nlohmann/json/issues/1015) - Python bindings [\#1014](https://github.com/nlohmann/json/issues/1014) - how to add two json string in single object?? [\#1012](https://github.com/nlohmann/json/issues/1012) - how to serialize class Object \(convert data in object into json\)?? [\#1011](https://github.com/nlohmann/json/issues/1011) - Enable forward declaration of json by making json a class instead of a using declaration [\#997](https://github.com/nlohmann/json/issues/997) - compilation error while using intel c++ compiler 2018 [\#994](https://github.com/nlohmann/json/issues/994) - How to create a json variable? [\#990](https://github.com/nlohmann/json/issues/990) - istream \>\> json --- 1st character skipped in stream [\#976](https://github.com/nlohmann/json/issues/976) - Add a SAX parser [\#971](https://github.com/nlohmann/json/issues/971) - Add Key name to Exception [\#932](https://github.com/nlohmann/json/issues/932) - How to solve large json file? [\#927](https://github.com/nlohmann/json/issues/927) - json\_pointer public push\_back, pop\_back [\#837](https://github.com/nlohmann/json/issues/837) - Using input\_adapter in a slightly unexpected way [\#834](https://github.com/nlohmann/json/issues/834) - Fix -Wno-sometimes-uninitialized by initializing "result" in parse\_sax [\#1200](https://github.com/nlohmann/json/pull/1200) ([thyu](https://github.com/thyu)) - \[RFC\] Introduce a new macro function: JSON\_INTERNAL\_CATCH [\#1187](https://github.com/nlohmann/json/pull/1187) ([simnalamburt](https://github.com/simnalamburt)) - Fix unit tests that were silently skipped or crashed \(depending on the compiler\) [\#1176](https://github.com/nlohmann/json/pull/1176) ([grembo](https://github.com/grembo)) - Refactor/no virtual sax [\#1153](https://github.com/nlohmann/json/pull/1153) ([theodelrieu](https://github.com/theodelrieu)) - Fixed compiler error in VS 2015 for debug mode [\#1151](https://github.com/nlohmann/json/pull/1151) ([sonulohani](https://github.com/sonulohani)) - Fix links to cppreference named requirements \(formerly concepts\) [\#1144](https://github.com/nlohmann/json/pull/1144) ([jrakow](https://github.com/jrakow)) - meson: fix include directory [\#1142](https://github.com/nlohmann/json/pull/1142) ([jrakow](https://github.com/jrakow)) - Feature/unordered map conversion [\#1138](https://github.com/nlohmann/json/pull/1138) ([theodelrieu](https://github.com/theodelrieu)) - fixed compile error for \#1045 [\#1134](https://github.com/nlohmann/json/pull/1134) ([Daniel599](https://github.com/Daniel599)) - test \(non\)equality for alt\_string implementation [\#1130](https://github.com/nlohmann/json/pull/1130) ([agrianius](https://github.com/agrianius)) - remove stringstream dependency [\#1117](https://github.com/nlohmann/json/pull/1117) ([TinyTinni](https://github.com/TinyTinni)) - Provide a from\_json overload for std::map [\#1089](https://github.com/nlohmann/json/pull/1089) ([theodelrieu](https://github.com/theodelrieu)) - fix typo in README [\#1078](https://github.com/nlohmann/json/pull/1078) ([martin-mfg](https://github.com/martin-mfg)) - Fix typo [\#1058](https://github.com/nlohmann/json/pull/1058) ([dns13](https://github.com/dns13)) - Misc cmake packaging enhancements [\#1048](https://github.com/nlohmann/json/pull/1048) ([chuckatkins](https://github.com/chuckatkins)) - Fixed incorrect LLVM version number in README [\#1047](https://github.com/nlohmann/json/pull/1047) ([jammehcow](https://github.com/jammehcow)) - Fix trivial typo in comment. [\#1043](https://github.com/nlohmann/json/pull/1043) ([coryan](https://github.com/coryan)) - Package Manager: Spack [\#1041](https://github.com/nlohmann/json/pull/1041) ([ax3l](https://github.com/ax3l)) - CMake: 3.8+ is Sufficient [\#1040](https://github.com/nlohmann/json/pull/1040) ([ax3l](https://github.com/ax3l)) - Added support for string\_view in C++17 [\#1028](https://github.com/nlohmann/json/pull/1028) ([gracicot](https://github.com/gracicot)) - Added public target\_compile\_features for auto and constexpr [\#1026](https://github.com/nlohmann/json/pull/1026) ([ktonon](https://github.com/ktonon)) ## [v3.1.2](https://github.com/nlohmann/json/releases/tag/v3.1.2) (2018-03-14) [Full Changelog](https://github.com/nlohmann/json/compare/v3.1.1...v3.1.2) - STL containers are always serialized to a nested array like \[\[1,2,3\]\] [\#1013](https://github.com/nlohmann/json/issues/1013) - The library doesn't want to insert an unordered\_map [\#1010](https://github.com/nlohmann/json/issues/1010) - Convert Json to uint8\_t [\#1008](https://github.com/nlohmann/json/issues/1008) - How to compare two JSON objects? [\#1007](https://github.com/nlohmann/json/issues/1007) - Syntax checking [\#1003](https://github.com/nlohmann/json/issues/1003) - more than one operator '=' matches these operands [\#1002](https://github.com/nlohmann/json/issues/1002) - How to check if key existed [\#1000](https://github.com/nlohmann/json/issues/1000) - nlohmann::json::parse exhaust memory in go binding [\#999](https://github.com/nlohmann/json/issues/999) - Range-based iteration over a non-array object [\#998](https://github.com/nlohmann/json/issues/998) - get\ for types that are not default constructible [\#996](https://github.com/nlohmann/json/issues/996) - Prevent Null values to appear in .dump\(\) [\#995](https://github.com/nlohmann/json/issues/995) - number parsing [\#993](https://github.com/nlohmann/json/issues/993) - C2664 \(C++/CLR\) cannot convert 'nullptr' to 'nullptr &&' [\#987](https://github.com/nlohmann/json/issues/987) - Uniform initialization from another json object differs between gcc and clang. [\#985](https://github.com/nlohmann/json/issues/985) - Problem with adding the lib as a submodule [\#983](https://github.com/nlohmann/json/issues/983) - UTF-8/Unicode error [\#982](https://github.com/nlohmann/json/issues/982) - "forcing MSVC stacktrace to show which T we're talking about." error [\#980](https://github.com/nlohmann/json/issues/980) - reverse order of serialization [\#979](https://github.com/nlohmann/json/issues/979) - Assigning between different json types [\#977](https://github.com/nlohmann/json/issues/977) - Support serialisation of `unique\_ptr\<\>` and `shared\_ptr\<\>` [\#975](https://github.com/nlohmann/json/issues/975) - Unexpected end of input \(not same as one before\) [\#974](https://github.com/nlohmann/json/issues/974) - Segfault on direct initializing json object [\#973](https://github.com/nlohmann/json/issues/973) - Segmentation fault on G++ when trying to assign json string literal to custom json type. [\#972](https://github.com/nlohmann/json/issues/972) - os\_defines.h:44:19: error: missing binary operator before token "\(" [\#970](https://github.com/nlohmann/json/issues/970) - Passing an iteration object by reference to a function [\#967](https://github.com/nlohmann/json/issues/967) - Json and fmt::lib's format\_arg\(\) [\#964](https://github.com/nlohmann/json/issues/964) - Allowing for user-defined string type in lexer/parser [\#1009](https://github.com/nlohmann/json/pull/1009) ([nlohmann](https://github.com/nlohmann)) - dump to alternative string type, as defined in basic\_json template [\#1006](https://github.com/nlohmann/json/pull/1006) ([agrianius](https://github.com/agrianius)) - Fix memory leak during parser callback [\#1001](https://github.com/nlohmann/json/pull/1001) ([nlohmann](https://github.com/nlohmann)) - fixed misprinted condition detected by PVS Studio. [\#992](https://github.com/nlohmann/json/pull/992) ([bogemic](https://github.com/bogemic)) - Fix/basic json conversion [\#986](https://github.com/nlohmann/json/pull/986) ([theodelrieu](https://github.com/theodelrieu)) - Make integration section concise [\#981](https://github.com/nlohmann/json/pull/981) ([wla80](https://github.com/wla80)) ## [v3.1.1](https://github.com/nlohmann/json/releases/tag/v3.1.1) (2018-02-13) [Full Changelog](https://github.com/nlohmann/json/compare/v3.1.0...v3.1.1) - Updation of child object isn't reflected in parent Object [\#968](https://github.com/nlohmann/json/issues/968) - How to add user defined C++ path to sublime text [\#966](https://github.com/nlohmann/json/issues/966) - fast number parsing [\#965](https://github.com/nlohmann/json/issues/965) - With non-unique keys, later stored entries are not taken into account anymore [\#963](https://github.com/nlohmann/json/issues/963) - Timeout \(OSS-Fuzz 6034\) [\#962](https://github.com/nlohmann/json/issues/962) - Incorrect parsing of indefinite length CBOR strings. [\#961](https://github.com/nlohmann/json/issues/961) - Reload a json file at runtime without emptying my std::ifstream [\#959](https://github.com/nlohmann/json/issues/959) - Split headers should be part of the release [\#956](https://github.com/nlohmann/json/issues/956) - Coveralls shows no coverage data [\#953](https://github.com/nlohmann/json/issues/953) - Feature request: Implicit conversion to bool [\#951](https://github.com/nlohmann/json/issues/951) - converting json to vector of type with templated constructor [\#924](https://github.com/nlohmann/json/issues/924) - No structured bindings support? [\#901](https://github.com/nlohmann/json/issues/901) - \[Request\] Macro generating from\_json\(\) and to\_json\(\) [\#895](https://github.com/nlohmann/json/issues/895) - basic\_json::value throws exception instead of returning default value [\#871](https://github.com/nlohmann/json/issues/871) - Fix constraints on from\_json\(CompatibleArrayType\) [\#969](https://github.com/nlohmann/json/pull/969) ([theodelrieu](https://github.com/theodelrieu)) - Make coveralls watch the include folder [\#957](https://github.com/nlohmann/json/pull/957) ([theodelrieu](https://github.com/theodelrieu)) - Fix links in README.md [\#955](https://github.com/nlohmann/json/pull/955) ([patrikhuber](https://github.com/patrikhuber)) - Add a note about installing the library with cget [\#954](https://github.com/nlohmann/json/pull/954) ([pfultz2](https://github.com/pfultz2)) ## [v3.1.0](https://github.com/nlohmann/json/releases/tag/v3.1.0) (2018-02-01) [Full Changelog](https://github.com/nlohmann/json/compare/v3.0.1...v3.1.0) - Order of the elements in JSON object [\#952](https://github.com/nlohmann/json/issues/952) - I have a proposal [\#949](https://github.com/nlohmann/json/issues/949) - VERSION define\(s\) [\#948](https://github.com/nlohmann/json/issues/948) - v3.0.1 compile error in icc 16.0.4 [\#947](https://github.com/nlohmann/json/issues/947) - Use in VS2017 15.5.5 [\#946](https://github.com/nlohmann/json/issues/946) - Process for reporting Security Bugs? [\#945](https://github.com/nlohmann/json/issues/945) - Please expose a NLOHMANN\_JSON\_VERSION macro [\#943](https://github.com/nlohmann/json/issues/943) - Change header include directory to nlohmann/json [\#942](https://github.com/nlohmann/json/issues/942) - string\_type in binary\_reader [\#941](https://github.com/nlohmann/json/issues/941) - compile error with clang 5.0 -std=c++1z and no string\_view [\#939](https://github.com/nlohmann/json/issues/939) - Allow overriding JSON\_THROW to something else than abort\(\) [\#938](https://github.com/nlohmann/json/issues/938) - Handle invalid string in Json file [\#937](https://github.com/nlohmann/json/issues/937) - Unused variable 'kMinExp' [\#935](https://github.com/nlohmann/json/issues/935) - yytext is already defined [\#933](https://github.com/nlohmann/json/issues/933) - Equality operator fails [\#931](https://github.com/nlohmann/json/issues/931) - use in visual studio 2015 [\#929](https://github.com/nlohmann/json/issues/929) - Relative includes of json\_fwd.hpp in detail/meta.hpp. \[Develop branch\] [\#928](https://github.com/nlohmann/json/issues/928) - GCC 7.x issue [\#926](https://github.com/nlohmann/json/issues/926) - json\_fwd.hpp not installed [\#923](https://github.com/nlohmann/json/issues/923) - Use Google Benchmarks [\#921](https://github.com/nlohmann/json/issues/921) - Move class json\_pointer to separate file [\#920](https://github.com/nlohmann/json/issues/920) - Unable to locate 'to\_json\(\)' and 'from\_json\(\)' methods in the same namespace [\#917](https://github.com/nlohmann/json/issues/917) - \[answered\]Read key1 from .value example [\#914](https://github.com/nlohmann/json/issues/914) - Don't use `define private public` in test files [\#913](https://github.com/nlohmann/json/issues/913) - value\(\) template argument type deduction [\#912](https://github.com/nlohmann/json/issues/912) - Installation path is incorrect [\#910](https://github.com/nlohmann/json/issues/910) - H [\#909](https://github.com/nlohmann/json/issues/909) - Build failure using clang 5 [\#908](https://github.com/nlohmann/json/issues/908) - Amalgate [\#907](https://github.com/nlohmann/json/issues/907) - Update documentation and tests wrt. split headers [\#906](https://github.com/nlohmann/json/issues/906) - Lib not working on ubuntu 16.04 [\#905](https://github.com/nlohmann/json/issues/905) - Problem when writing to file. [\#904](https://github.com/nlohmann/json/issues/904) - C2864 error when compiling with VS2015 and VS 2017 [\#903](https://github.com/nlohmann/json/issues/903) - \[json.exception.type\_error.304\] cannot use at\(\) with object [\#902](https://github.com/nlohmann/json/issues/902) - How do I forward nlohmann::json declaration? [\#899](https://github.com/nlohmann/json/issues/899) - How to effectively store binary data? [\#898](https://github.com/nlohmann/json/issues/898) - How to get the length of a JSON string without retrieving its std::string? [\#897](https://github.com/nlohmann/json/issues/897) - Regression Tests Failure using "ctest" [\#887](https://github.com/nlohmann/json/issues/887) - Discuss: add JSON Merge Patch \(RFC 7396\)? [\#877](https://github.com/nlohmann/json/issues/877) - Discuss: replace static "iterator\_wrapper" function with "items" member function [\#874](https://github.com/nlohmann/json/issues/874) - Make optional user-data available in from\_json [\#864](https://github.com/nlohmann/json/issues/864) - Casting to std::string not working in VS2015 [\#861](https://github.com/nlohmann/json/issues/861) - Sequential reading of JSON arrays [\#851](https://github.com/nlohmann/json/issues/851) - Idea: Handle Multimaps Better [\#816](https://github.com/nlohmann/json/issues/816) - Floating point rounding [\#777](https://github.com/nlohmann/json/issues/777) - Loss of precision when serializing \ [\#360](https://github.com/nlohmann/json/issues/360) - Templatize std::string in binary\_reader \#941 [\#950](https://github.com/nlohmann/json/pull/950) ([kaidokert](https://github.com/kaidokert)) - fix cmake install directory \(for real this time\) [\#944](https://github.com/nlohmann/json/pull/944) ([theodelrieu](https://github.com/theodelrieu)) - Allow overriding THROW/CATCH/TRY macros with no-exceptions \#938 [\#940](https://github.com/nlohmann/json/pull/940) ([kaidokert](https://github.com/kaidokert)) - Removed compiler warning about unused variable 'kMinExp' [\#936](https://github.com/nlohmann/json/pull/936) ([zerodefect](https://github.com/zerodefect)) - Fix a typo in README.md [\#930](https://github.com/nlohmann/json/pull/930) ([Pipeliner](https://github.com/Pipeliner)) - Howto installation of json\_fwd.hpp \(fixes \#923\) [\#925](https://github.com/nlohmann/json/pull/925) ([zerodefect](https://github.com/zerodefect)) - fix sfinae on basic\_json UDT constructor [\#919](https://github.com/nlohmann/json/pull/919) ([theodelrieu](https://github.com/theodelrieu)) - Floating-point formatting [\#915](https://github.com/nlohmann/json/pull/915) ([abolz](https://github.com/abolz)) - Fix/cmake install [\#911](https://github.com/nlohmann/json/pull/911) ([theodelrieu](https://github.com/theodelrieu)) - fix link to the documentation of the emplace function [\#900](https://github.com/nlohmann/json/pull/900) ([Dobiasd](https://github.com/Dobiasd)) - JSON Merge Patch \(RFC 7396\) [\#876](https://github.com/nlohmann/json/pull/876) ([nlohmann](https://github.com/nlohmann)) - Refactor/split it [\#700](https://github.com/nlohmann/json/pull/700) ([theodelrieu](https://github.com/theodelrieu)) ## [v3.0.1](https://github.com/nlohmann/json/releases/tag/v3.0.1) (2017-12-29) [Full Changelog](https://github.com/nlohmann/json/compare/v3.0.0...v3.0.1) - Problem parsing array to global vector [\#896](https://github.com/nlohmann/json/issues/896) - Invalid RFC6902 copy operation succeeds [\#894](https://github.com/nlohmann/json/issues/894) - How to rename a key during looping? [\#893](https://github.com/nlohmann/json/issues/893) - clang++-6.0 \(6.0.0-svn321357-1\) warning [\#892](https://github.com/nlohmann/json/issues/892) - Make json.hpp aware of the modules TS? [\#891](https://github.com/nlohmann/json/issues/891) - All enum values not handled in switch cases. \( -Wswitch-enum \) [\#889](https://github.com/nlohmann/json/issues/889) - JSON Pointer resolve failure resulting in incorrect exception code [\#888](https://github.com/nlohmann/json/issues/888) - Unexpected nested arrays from std::vector [\#886](https://github.com/nlohmann/json/issues/886) - erase multiple elements from a json object [\#884](https://github.com/nlohmann/json/issues/884) - Container function overview in Doxygen is not updated [\#883](https://github.com/nlohmann/json/issues/883) - How to use this for binary file uploads [\#881](https://github.com/nlohmann/json/issues/881) - Allow setting JSON\_BuildTests=OFF from parent CMakeLists.txt [\#846](https://github.com/nlohmann/json/issues/846) - Unit test fails for local-independent str-to-num [\#845](https://github.com/nlohmann/json/issues/845) - Another idea about type support [\#774](https://github.com/nlohmann/json/issues/774) - Includes CTest module/adds BUILD\_TESTING option [\#885](https://github.com/nlohmann/json/pull/885) ([TinyTinni](https://github.com/TinyTinni)) - Fix MSVC warning C4819 [\#882](https://github.com/nlohmann/json/pull/882) ([erengy](https://github.com/erengy)) - Merge branch 'develop' into coverity\_scan [\#880](https://github.com/nlohmann/json/pull/880) ([nlohmann](https://github.com/nlohmann)) - :wrench: Fix up a few more effc++ items [\#858](https://github.com/nlohmann/json/pull/858) ([mattismyname](https://github.com/mattismyname)) ## [v3.0.0](https://github.com/nlohmann/json/releases/tag/v3.0.0) (2017-12-17) [Full Changelog](https://github.com/nlohmann/json/compare/v2.1.1...v3.0.0) - unicode strings [\#878](https://github.com/nlohmann/json/issues/878) - Visual Studio 2017 15.5 C++17 std::allocator deprecations [\#872](https://github.com/nlohmann/json/issues/872) - Typo "excpetion" [\#869](https://github.com/nlohmann/json/issues/869) - Explicit array example in README.md incorrect [\#867](https://github.com/nlohmann/json/issues/867) - why don't you release this from Feb. ? [\#865](https://github.com/nlohmann/json/issues/865) - json::parse throws std::invalid\_argument when processing string generated by json::dump\(\) [\#863](https://github.com/nlohmann/json/issues/863) - code analysis: potential bug? [\#859](https://github.com/nlohmann/json/issues/859) - MSVC2017, 15.5 new issues. [\#857](https://github.com/nlohmann/json/issues/857) - very basic: fetching string value/content without quotes [\#853](https://github.com/nlohmann/json/issues/853) - Ambiguous function call to get with pointer type and constant json object in VS2015 \(15.4.4\) [\#852](https://github.com/nlohmann/json/issues/852) - How to put object in the array as a member? [\#850](https://github.com/nlohmann/json/issues/850) - misclick, please ignore [\#849](https://github.com/nlohmann/json/issues/849) - Make XML great again. [\#847](https://github.com/nlohmann/json/issues/847) - Converting to array not working [\#843](https://github.com/nlohmann/json/issues/843) - Iteration weirdness [\#842](https://github.com/nlohmann/json/issues/842) - Use reference or pointer as Object value [\#841](https://github.com/nlohmann/json/issues/841) - Ambiguity in parsing nested maps [\#840](https://github.com/nlohmann/json/issues/840) - could not find from\_json\(\) method in T's namespace [\#839](https://github.com/nlohmann/json/issues/839) - Incorrect parse error with binary data in keys? [\#838](https://github.com/nlohmann/json/issues/838) - using dump\(\) when std::wstring is StringType with VS2017 [\#836](https://github.com/nlohmann/json/issues/836) - Show the path of the currently parsed value when an error occurs [\#835](https://github.com/nlohmann/json/issues/835) - Repetitive data type while reading [\#833](https://github.com/nlohmann/json/issues/833) - Storing multiple types inside map [\#831](https://github.com/nlohmann/json/issues/831) - Application terminating [\#830](https://github.com/nlohmann/json/issues/830) - Missing CMake hunter package? [\#828](https://github.com/nlohmann/json/issues/828) - std::map\ from json object yields C2665: 'std::pair\::pair': none of the 2 overloads could convert all the argument types [\#827](https://github.com/nlohmann/json/issues/827) - object.dump gives quoted string, want to use .dump\(\) to generate javascripts. [\#826](https://github.com/nlohmann/json/issues/826) - Assertion failed on \["NoExistKey"\] of an not existing key of const json& [\#825](https://github.com/nlohmann/json/issues/825) - vs2015 error : static member will remain uninitialized at runtime but use in constant-expressions is supported [\#824](https://github.com/nlohmann/json/issues/824) - Code Checking Warnings from json.hpp on VS2017 Community [\#821](https://github.com/nlohmann/json/issues/821) - Missing iostream in try online [\#820](https://github.com/nlohmann/json/issues/820) - Floating point value loses decimal point during dump [\#818](https://github.com/nlohmann/json/issues/818) - Conan package for the library [\#817](https://github.com/nlohmann/json/issues/817) - stream error [\#815](https://github.com/nlohmann/json/issues/815) - Link error when using find\(\) on the latest commit [\#814](https://github.com/nlohmann/json/issues/814) - ABI issue with json object between 2 shared libraries [\#813](https://github.com/nlohmann/json/issues/813) - scan\_string\(\) return token\_type::parse\_error; when parse ansi file [\#812](https://github.com/nlohmann/json/issues/812) - segfault when using fifo\_map with json [\#810](https://github.com/nlohmann/json/issues/810) - This shit is shit [\#809](https://github.com/nlohmann/json/issues/809) - \_finite and \_isnan are no members of "std" [\#808](https://github.com/nlohmann/json/issues/808) - how to print out the line which causing exception? [\#806](https://github.com/nlohmann/json/issues/806) - {} uses copy constructor, while = does not [\#805](https://github.com/nlohmann/json/issues/805) - json.hpp:8955: multiple definition of function that is not defined twice or more. [\#804](https://github.com/nlohmann/json/issues/804) - \[question\] to\_json for base and derived class [\#803](https://github.com/nlohmann/json/issues/803) - Misleading error message - unexpected '"' - on incorrect utf-8 symbol [\#802](https://github.com/nlohmann/json/issues/802) - json data = std::string\_view\("hi"\); doesn't work? [\#801](https://github.com/nlohmann/json/issues/801) - Thread safety of parse\(\) [\#800](https://github.com/nlohmann/json/issues/800) - Numbers as strings [\#799](https://github.com/nlohmann/json/issues/799) - Tests failing on arm [\#797](https://github.com/nlohmann/json/issues/797) - Using your library \(without modification\) in another library [\#796](https://github.com/nlohmann/json/issues/796) - Iterating over sub-object [\#794](https://github.com/nlohmann/json/issues/794) - how to get the json object again from which printed by the method of dump\(\) [\#792](https://github.com/nlohmann/json/issues/792) - ppa to include source [\#791](https://github.com/nlohmann/json/issues/791) - Different include paths in macOS and Ubuntu [\#790](https://github.com/nlohmann/json/issues/790) - Missing break after line 12886 in switch/case [\#789](https://github.com/nlohmann/json/issues/789) - All unit tests fail? [\#787](https://github.com/nlohmann/json/issues/787) - More use of move semantics in deserialization [\#786](https://github.com/nlohmann/json/issues/786) - warning C4706 - Visual Studio 2017 \(/W4\) [\#784](https://github.com/nlohmann/json/issues/784) - Compile error in clang 5.0 [\#782](https://github.com/nlohmann/json/issues/782) - Error Installing appium\_lib with Ruby v2.4.2 Due to JSON [\#781](https://github.com/nlohmann/json/issues/781) - ::get\\(\) fails in new\(er\) release \[MSVC\] [\#780](https://github.com/nlohmann/json/issues/780) - Type Conversion [\#779](https://github.com/nlohmann/json/issues/779) - Segfault on nested parsing [\#778](https://github.com/nlohmann/json/issues/778) - Build warnings: shadowing exception id [\#776](https://github.com/nlohmann/json/issues/776) - multi-level JSON support. [\#775](https://github.com/nlohmann/json/issues/775) - SIGABRT on dump\(\) [\#773](https://github.com/nlohmann/json/issues/773) - \[Question\] Custom StringType template parameter \(possibility for a KeyType template parameter\) [\#772](https://github.com/nlohmann/json/issues/772) - constexpr ALL the Things! [\#771](https://github.com/nlohmann/json/issues/771) - error: ‘BasicJsonType’ in namespace ‘::’ does not name a type [\#770](https://github.com/nlohmann/json/issues/770) - Program calls abort function [\#769](https://github.com/nlohmann/json/issues/769) - \[Question\] Floating point resolution config during dump\(\) ? [\#768](https://github.com/nlohmann/json/issues/768) - make check - no test ran [\#767](https://github.com/nlohmann/json/issues/767) - The library cannot work properly with custom allocator based containers [\#766](https://github.com/nlohmann/json/issues/766) - Documentation or feature request. [\#763](https://github.com/nlohmann/json/issues/763) - warnings in msvc about mix/max macro while windows.h is used in the project [\#762](https://github.com/nlohmann/json/issues/762) - std::signbit ambiguous [\#761](https://github.com/nlohmann/json/issues/761) - How to use value for std::experimental::optional type? [\#760](https://github.com/nlohmann/json/issues/760) - Cannot load json file properly [\#759](https://github.com/nlohmann/json/issues/759) - Compilation error with unordered\_map\< int, int \> [\#758](https://github.com/nlohmann/json/issues/758) - CBOR string [\#757](https://github.com/nlohmann/json/issues/757) - Proposal: out\_of\_range should be a subclass of std::out\_of\_range [\#756](https://github.com/nlohmann/json/issues/756) - Compiling with icpc [\#755](https://github.com/nlohmann/json/issues/755) - Getter is setting the value to null if the key does not exist [\#754](https://github.com/nlohmann/json/issues/754) - parsing works sometimes and crashes others [\#752](https://github.com/nlohmann/json/issues/752) - Static\_assert failed "incompatible pointer type" with Xcode [\#751](https://github.com/nlohmann/json/issues/751) - user-defined literal operator not found [\#750](https://github.com/nlohmann/json/issues/750) - getting clean string from it.key\(\) [\#748](https://github.com/nlohmann/json/issues/748) - Best method for exploring and obtaining values of nested json objects when the names are not known beforehand? [\#747](https://github.com/nlohmann/json/issues/747) - null char at the end of string [\#746](https://github.com/nlohmann/json/issues/746) - Incorrect sample for operator \>\> in docs [\#745](https://github.com/nlohmann/json/issues/745) - User-friendly documentation [\#744](https://github.com/nlohmann/json/issues/744) - Retrieve all values that match a json path [\#743](https://github.com/nlohmann/json/issues/743) - Compilation issue with gcc 7.2 [\#742](https://github.com/nlohmann/json/issues/742) - CMake target nlohmann\_json does not have src into its interface includes [\#741](https://github.com/nlohmann/json/issues/741) - Error when serializing empty json: type must be string, but is object [\#740](https://github.com/nlohmann/json/issues/740) - Conversion error for std::map\ [\#739](https://github.com/nlohmann/json/issues/739) - Dumping Json to file as array [\#738](https://github.com/nlohmann/json/issues/738) - nesting json objects [\#737](https://github.com/nlohmann/json/issues/737) - where to find general help? [\#736](https://github.com/nlohmann/json/issues/736) - Compilation Error on Clang 5.0 Upgrade [\#735](https://github.com/nlohmann/json/issues/735) - Compilation error with std::map\ on vs 2015 [\#734](https://github.com/nlohmann/json/issues/734) - Benchmarks for Binary formats [\#733](https://github.com/nlohmann/json/issues/733) - Move test blobs to a submodule? [\#732](https://github.com/nlohmann/json/issues/732) - Support \n symbols in json string. [\#731](https://github.com/nlohmann/json/issues/731) - Project's name is too generic and hard to search for [\#730](https://github.com/nlohmann/json/issues/730) - Visual Studio 2015 IntelliTrace problems [\#729](https://github.com/nlohmann/json/issues/729) - How to erase nested objects inside other objects? [\#728](https://github.com/nlohmann/json/issues/728) - How to prevent alphabetical sorting of data? [\#727](https://github.com/nlohmann/json/issues/727) - Serialization for CBOR [\#726](https://github.com/nlohmann/json/issues/726) - Using json Object as value in a map [\#725](https://github.com/nlohmann/json/issues/725) - std::regex and nlohmann::json value [\#724](https://github.com/nlohmann/json/issues/724) - Warnings when compiling with VisualStudio 2015 [\#723](https://github.com/nlohmann/json/issues/723) - Has this lib the unicode \(wstring\) support? [\#722](https://github.com/nlohmann/json/issues/722) - When will be 3.0 in master? [\#721](https://github.com/nlohmann/json/issues/721) - Determine the type from error message. [\#720](https://github.com/nlohmann/json/issues/720) - Compile-Error C2100 \(MS VS2015\) in line 887 json.hpp [\#719](https://github.com/nlohmann/json/issues/719) - from\_json not working for boost::optional example [\#718](https://github.com/nlohmann/json/issues/718) - about from\_json and to\_json function [\#717](https://github.com/nlohmann/json/issues/717) - How to detect parse failure? [\#715](https://github.com/nlohmann/json/issues/715) - Parse throw std::ios\_base::failure exception when failbit set to true [\#714](https://github.com/nlohmann/json/issues/714) - Is there a way of format just making a pretty print without changing the key's orders ? [\#713](https://github.com/nlohmann/json/issues/713) - Serialization of array of not same model items [\#712](https://github.com/nlohmann/json/issues/712) - pointer to json parse vector [\#711](https://github.com/nlohmann/json/issues/711) - Gtest SEH Exception [\#709](https://github.com/nlohmann/json/issues/709) - broken from\_json implementation for pair and tuple [\#707](https://github.com/nlohmann/json/issues/707) - Unevaluated lambda in assert breaks gcc 7 build [\#705](https://github.com/nlohmann/json/issues/705) - Issues when adding values to firebase database [\#704](https://github.com/nlohmann/json/issues/704) - Floating point equality - revisited [\#703](https://github.com/nlohmann/json/issues/703) - Conversion from valarray\ to json fails to build [\#702](https://github.com/nlohmann/json/issues/702) - internal compiler error \(gcc7\) [\#701](https://github.com/nlohmann/json/issues/701) - One build system to rule them all [\#698](https://github.com/nlohmann/json/issues/698) - Generated nlohmann\_jsonConfig.cmake does not set JSON\_INCLUDE\_DIR [\#695](https://github.com/nlohmann/json/issues/695) - support the Chinese language in json string [\#694](https://github.com/nlohmann/json/issues/694) - NaN problem within develop branch [\#693](https://github.com/nlohmann/json/issues/693) - Please post example of specialization for boost::filesystem [\#692](https://github.com/nlohmann/json/issues/692) - Impossible to do an array of composite objects [\#691](https://github.com/nlohmann/json/issues/691) - How to save json to file? [\#690](https://github.com/nlohmann/json/issues/690) - my simple json parser [\#689](https://github.com/nlohmann/json/issues/689) - problem with new struct parsing syntax [\#688](https://github.com/nlohmann/json/issues/688) - Parse error while parse the json string contains UTF 8 encoded document bytes string [\#684](https://github.com/nlohmann/json/issues/684) - \[question\] how to get a string value by pointer [\#683](https://github.com/nlohmann/json/issues/683) - create json object from string variable [\#681](https://github.com/nlohmann/json/issues/681) - adl\_serializer and CRTP [\#680](https://github.com/nlohmann/json/issues/680) - Is there a way to control the precision of serialized floating point numbers? [\#677](https://github.com/nlohmann/json/issues/677) - Is there a way to get the path of a value? [\#676](https://github.com/nlohmann/json/issues/676) - Could the parser locate errors to line? [\#675](https://github.com/nlohmann/json/issues/675) - There is performance inefficiency found by coverity tool json2.1.1/include/nlohmann/json.hpp [\#673](https://github.com/nlohmann/json/issues/673) - include problem, when cmake on osx [\#672](https://github.com/nlohmann/json/issues/672) - Operator= ambiguous in C++1z and GCC 7.1.1 [\#670](https://github.com/nlohmann/json/issues/670) - should't the cmake install target be to nlohman/json.hpp [\#668](https://github.com/nlohmann/json/issues/668) - deserialise from `std::vector` [\#667](https://github.com/nlohmann/json/issues/667) - How to iterate? [\#665](https://github.com/nlohmann/json/issues/665) - could this json lib work on windows? [\#664](https://github.com/nlohmann/json/issues/664) - How does from\_json work? [\#662](https://github.com/nlohmann/json/issues/662) - insert\(or merge\) object should replace same key , not ignore [\#661](https://github.com/nlohmann/json/issues/661) - Why is an object ordering values by Alphabetical Order? [\#660](https://github.com/nlohmann/json/issues/660) - Parse method doesn't handle newlines. [\#659](https://github.com/nlohmann/json/issues/659) - Compilation "note" on GCC 6 ARM [\#658](https://github.com/nlohmann/json/issues/658) - Adding additional push\_back/operator+= rvalue overloads for JSON object [\#657](https://github.com/nlohmann/json/issues/657) - dump's parameter "ensure\_ascii" creates too long sequences [\#656](https://github.com/nlohmann/json/issues/656) - Question: parsing `void \*` [\#655](https://github.com/nlohmann/json/issues/655) - how should I check a string is valid JSON string ? [\#653](https://github.com/nlohmann/json/issues/653) - Question: thread safety of read only accesses [\#651](https://github.com/nlohmann/json/issues/651) - Eclipse: Method 'size' could not be resolved [\#649](https://github.com/nlohmann/json/issues/649) - Update/Add object fields [\#648](https://github.com/nlohmann/json/issues/648) - No exception raised for Out Of Range input of numbers [\#647](https://github.com/nlohmann/json/issues/647) - Package Name [\#646](https://github.com/nlohmann/json/issues/646) - What is the meaning of operator\[\]\(T\* key\) [\#645](https://github.com/nlohmann/json/issues/645) - Which is the correct way to json objects as parameters to functions? [\#644](https://github.com/nlohmann/json/issues/644) - Method to get string representations of values [\#642](https://github.com/nlohmann/json/issues/642) - CBOR serialization of a given JSON value does not serialize [\#641](https://github.com/nlohmann/json/issues/641) - Are we forced to use "-fexceptions" flag in android ndk project [\#640](https://github.com/nlohmann/json/issues/640) - Comparison of objects containing floats [\#639](https://github.com/nlohmann/json/issues/639) - 'localeconv' is not supported by NDK for SDK \<=20 [\#638](https://github.com/nlohmann/json/issues/638) - \[Question\] cLion integration [\#637](https://github.com/nlohmann/json/issues/637) - How to construct an iteratable usage in nlohmann json? [\#636](https://github.com/nlohmann/json/issues/636) - \[Question\] copy assign json-container to vector [\#635](https://github.com/nlohmann/json/issues/635) - Get size without .dump\(\) [\#634](https://github.com/nlohmann/json/issues/634) - Segmentation fault when parsing invalid json file [\#633](https://github.com/nlohmann/json/issues/633) - How to serialize from json to vector\? [\#632](https://github.com/nlohmann/json/issues/632) - no member named 'thousands\_sep' in 'lconv' [\#631](https://github.com/nlohmann/json/issues/631) - \[Question\] Any fork for \(the unsupported\) Visual Studio 2012 version? [\#628](https://github.com/nlohmann/json/issues/628) - Dependency injection in serializer [\#627](https://github.com/nlohmann/json/issues/627) - from\_json for std::array [\#625](https://github.com/nlohmann/json/issues/625) - Discussion: How to structure the parsing function families [\#623](https://github.com/nlohmann/json/issues/623) - Question: How to erase subtree [\#622](https://github.com/nlohmann/json/issues/622) - Insertion into nested json field [\#621](https://github.com/nlohmann/json/issues/621) - \[Question\] When using this as git submodule, will it clone the whole thing include test data and benchmark? [\#620](https://github.com/nlohmann/json/issues/620) - Question: return static json object from function [\#618](https://github.com/nlohmann/json/issues/618) - icc16 error [\#617](https://github.com/nlohmann/json/issues/617) - \[-Wdeprecated-declarations\] in row `j \>\> ss;` in file `json.hpp:7405:26` and FAILED unit tests with MinGWx64! [\#616](https://github.com/nlohmann/json/issues/616) - to\_json for pairs, tuples [\#614](https://github.com/nlohmann/json/issues/614) - Using uninitialized memory 'buf' in line 11173 v2.1.1? [\#613](https://github.com/nlohmann/json/issues/613) - How to parse multiple same Keys of JSON and save them? [\#612](https://github.com/nlohmann/json/issues/612) - "Multiple declarations" error when using types defined with `typedef` [\#611](https://github.com/nlohmann/json/issues/611) - 2.1.1+ breaks compilation of shared\_ptr\ == 0 [\#610](https://github.com/nlohmann/json/issues/610) - a bug of inheritance ? [\#608](https://github.com/nlohmann/json/issues/608) - std::map key conversion with to\_json [\#607](https://github.com/nlohmann/json/issues/607) - json.hpp:6384:62: error: wrong number of template arguments \(1, should be 2\) [\#606](https://github.com/nlohmann/json/issues/606) - Incremental parsing: Where's the push version? [\#605](https://github.com/nlohmann/json/issues/605) - Is there a way to validate the structure of a json object ? [\#604](https://github.com/nlohmann/json/issues/604) - \[Question\] Issue when using Appveyor when compiling library [\#603](https://github.com/nlohmann/json/issues/603) - BOM not skipped when using json:parse\(iterator\) [\#602](https://github.com/nlohmann/json/issues/602) - Use of the binary type in CBOR and Message Pack [\#601](https://github.com/nlohmann/json/issues/601) - Newbie issue: how does one convert a map in Json back to std::map? [\#600](https://github.com/nlohmann/json/issues/600) - Plugin system [\#599](https://github.com/nlohmann/json/issues/599) - Feature request: Comments [\#597](https://github.com/nlohmann/json/issues/597) - Using custom types for scalars? [\#596](https://github.com/nlohmann/json/issues/596) - Issues with the arithmetic in iterator and reverse iterator [\#593](https://github.com/nlohmann/json/issues/593) - not enough examples [\#592](https://github.com/nlohmann/json/issues/592) - in-class initialization for type 'const T' is not yet implemented [\#591](https://github.com/nlohmann/json/issues/591) - compiling with gcc 7 -\> error on bool operator \< [\#590](https://github.com/nlohmann/json/issues/590) - Parsing from stream leads to an array [\#589](https://github.com/nlohmann/json/issues/589) - Buggy support for binary string data [\#587](https://github.com/nlohmann/json/issues/587) - C++17's ambiguous conversion [\#586](https://github.com/nlohmann/json/issues/586) - How does the messagepack encoding/decoding compare to msgpack-cpp in terms of performance? [\#585](https://github.com/nlohmann/json/issues/585) - is it possible to check existence of a value deep in hierarchy? [\#584](https://github.com/nlohmann/json/issues/584) - loading from a stream and exceptions [\#582](https://github.com/nlohmann/json/issues/582) - Visual Studio seems not to have all min\(\) function versions [\#581](https://github.com/nlohmann/json/issues/581) - Supporting of the json schema [\#580](https://github.com/nlohmann/json/issues/580) - Stack-overflow \(OSS-Fuzz 1444\) [\#577](https://github.com/nlohmann/json/issues/577) - Heap-buffer-overflow \(OSS-Fuzz 1400\) [\#575](https://github.com/nlohmann/json/issues/575) - JSON escape quotes [\#574](https://github.com/nlohmann/json/issues/574) - error: static\_assert failed [\#573](https://github.com/nlohmann/json/issues/573) - Storing floats, and round trip serialisation/deserialisation diffs [\#572](https://github.com/nlohmann/json/issues/572) - JSON.getLong produces inconsistent results [\#571](https://github.com/nlohmann/json/issues/571) - Request: Object.at\(\) with default return value [\#570](https://github.com/nlohmann/json/issues/570) - Internal structure gets corrupted while parsing [\#569](https://github.com/nlohmann/json/issues/569) - create template \ basic\_json from\_cbor\(Iter begin, Iter end\) [\#568](https://github.com/nlohmann/json/issues/568) - Need to improve ignores.. [\#567](https://github.com/nlohmann/json/issues/567) - Conan.io [\#566](https://github.com/nlohmann/json/issues/566) - contradictory documentation regarding json::find [\#565](https://github.com/nlohmann/json/issues/565) - Unexpected '\"' in middle of array [\#564](https://github.com/nlohmann/json/issues/564) - Support parse std::pair to Json object [\#563](https://github.com/nlohmann/json/issues/563) - json and Microsoft Visual c++ Compiler Nov 2012 CTP [\#562](https://github.com/nlohmann/json/issues/562) - from\_json declaration order and exceptions [\#561](https://github.com/nlohmann/json/issues/561) - Tip: Don't upgrade to VS2017 if using json initializer list constructs [\#559](https://github.com/nlohmann/json/issues/559) - parse error - unexpected end of input [\#558](https://github.com/nlohmann/json/issues/558) - Cant modify existing numbers inside a json object [\#557](https://github.com/nlohmann/json/issues/557) - Minimal repository \(current size very large\) [\#556](https://github.com/nlohmann/json/issues/556) - Better support for SAX style serialize and deserialize in new version? [\#554](https://github.com/nlohmann/json/issues/554) - Cannot convert from json array to std::array [\#553](https://github.com/nlohmann/json/issues/553) - Do not define an unnamed namespace in a header file \(DCL59-CPP\) [\#552](https://github.com/nlohmann/json/issues/552) - Parse error on known good json file [\#551](https://github.com/nlohmann/json/issues/551) - Warning on Intel compiler \(icc 17\) [\#550](https://github.com/nlohmann/json/issues/550) - multiple versions of 'vsnprintf' [\#549](https://github.com/nlohmann/json/issues/549) - illegal indirection [\#548](https://github.com/nlohmann/json/issues/548) - Ambiguous compare operators with clang-5.0 [\#547](https://github.com/nlohmann/json/issues/547) - Using tsl::ordered\_map [\#546](https://github.com/nlohmann/json/issues/546) - Compiler support errors are inconvenient [\#544](https://github.com/nlohmann/json/issues/544) - Head Elements Sorting [\#543](https://github.com/nlohmann/json/issues/543) - Duplicate symbols error happens while to\_json/from\_json method implemented inside entity definition header file [\#542](https://github.com/nlohmann/json/issues/542) - consider adding a bool json::is\_valid\(std::string const&\) non-member function [\#541](https://github.com/nlohmann/json/issues/541) - Help request [\#539](https://github.com/nlohmann/json/issues/539) - How to deal with missing keys in `from\_json`? [\#538](https://github.com/nlohmann/json/issues/538) - recursive from\_msgpack implementation will stack overflow [\#537](https://github.com/nlohmann/json/issues/537) - Exception objects must be nothrow copy constructible \(ERR60-CPP\) [\#531](https://github.com/nlohmann/json/issues/531) - Support for multiple root elements [\#529](https://github.com/nlohmann/json/issues/529) - Port has\_shape from dropbox/json11 [\#528](https://github.com/nlohmann/json/issues/528) - dump\_float: truncation from ptrdiff\_t to long [\#527](https://github.com/nlohmann/json/issues/527) - Make exception base class visible in basic\_json [\#525](https://github.com/nlohmann/json/issues/525) - msgpack unit test failures on ppc64 arch [\#524](https://github.com/nlohmann/json/issues/524) - How about split the implementation out, and only leave the interface? [\#523](https://github.com/nlohmann/json/issues/523) - VC++2017 not enough actual parameters for macro 'max' [\#522](https://github.com/nlohmann/json/issues/522) - crash on empty ifstream [\#521](https://github.com/nlohmann/json/issues/521) - Suggestion: Support tabs for indentation when serializing to stream. [\#520](https://github.com/nlohmann/json/issues/520) - Abrt in get\_number \(OSS-Fuzz 885\) [\#519](https://github.com/nlohmann/json/issues/519) - Abrt on unknown address \(OSS-Fuzz 884\) [\#518](https://github.com/nlohmann/json/issues/518) - Stack-overflow \(OSS-Fuzz 869\) [\#517](https://github.com/nlohmann/json/issues/517) - Assertion error \(OSS-Fuzz 868\) [\#516](https://github.com/nlohmann/json/issues/516) - NaN to json and back [\#515](https://github.com/nlohmann/json/issues/515) - Comparison of NaN [\#514](https://github.com/nlohmann/json/issues/514) - why it's not possible to serialize c++11 enums directly [\#513](https://github.com/nlohmann/json/issues/513) - clang compile error: use of overloaded operator '\<=' is ambiguous with \(nlohmann::json{{"a", 5}}\)\["a"\] \<= 10 [\#512](https://github.com/nlohmann/json/issues/512) - Why not also look inside the type for \(static\) to\_json and from\_json funtions? [\#511](https://github.com/nlohmann/json/issues/511) - Parser issues [\#509](https://github.com/nlohmann/json/issues/509) - I may not understand [\#507](https://github.com/nlohmann/json/issues/507) - VS2017 min / max problem for 2.1.1 [\#506](https://github.com/nlohmann/json/issues/506) - CBOR/MessagePack is not read until the end [\#505](https://github.com/nlohmann/json/issues/505) - Assertion error \(OSS-Fuzz 856\) [\#504](https://github.com/nlohmann/json/issues/504) - Return position in parse error exceptions [\#503](https://github.com/nlohmann/json/issues/503) - conversion from/to C array is not supported [\#502](https://github.com/nlohmann/json/issues/502) - error C2338: could not find to\_json\(\) method in T's namespace [\#501](https://github.com/nlohmann/json/issues/501) - Test suite fails in en\_GB.UTF-8 [\#500](https://github.com/nlohmann/json/issues/500) - cannot use operator\[\] with number [\#499](https://github.com/nlohmann/json/issues/499) - consider using \_\_cpp\_exceptions and/or \_\_EXCEPTIONS to disable/enable exception support [\#498](https://github.com/nlohmann/json/issues/498) - Stack-overflow \(OSS-Fuzz issue 814\) [\#497](https://github.com/nlohmann/json/issues/497) - Using in Unreal Engine - handling custom types conversion [\#495](https://github.com/nlohmann/json/issues/495) - Conversion from vector\ to json fails to build [\#494](https://github.com/nlohmann/json/issues/494) - fill\_line\_buffer incorrectly tests m\_stream for eof but not fail or bad bits [\#493](https://github.com/nlohmann/json/issues/493) - Compiling with \_GLIBCXX\_DEBUG yields iterator-comparison warnings during tests [\#492](https://github.com/nlohmann/json/issues/492) - crapy interface [\#491](https://github.com/nlohmann/json/issues/491) - Fix Visual Studo 2013 builds. [\#490](https://github.com/nlohmann/json/issues/490) - Failed to compile with -D\_GLIBCXX\_PARALLEL [\#489](https://github.com/nlohmann/json/issues/489) - Input several field with the same name [\#488](https://github.com/nlohmann/json/issues/488) - read in .json file yields strange sizes [\#487](https://github.com/nlohmann/json/issues/487) - json::value\_t can't be a map's key type in VC++ 2015 [\#486](https://github.com/nlohmann/json/issues/486) - Using fifo\_map [\#485](https://github.com/nlohmann/json/issues/485) - Cannot get float pointer for value stored as `0` [\#484](https://github.com/nlohmann/json/issues/484) - byte string support [\#483](https://github.com/nlohmann/json/issues/483) - For a header-only library you have to clone 214MB [\#482](https://github.com/nlohmann/json/issues/482) - https://github.com/nlohmann/json\#execute-unit-tests [\#481](https://github.com/nlohmann/json/issues/481) - Remove deprecated constructor basic\_json\(std::istream&\) [\#480](https://github.com/nlohmann/json/issues/480) - writing the binary json file? [\#479](https://github.com/nlohmann/json/issues/479) - CBOR/MessagePack from uint8\_t \* and size [\#478](https://github.com/nlohmann/json/issues/478) - Streaming binary representations [\#477](https://github.com/nlohmann/json/issues/477) - Reuse memory in to\_cbor and to\_msgpack functions [\#476](https://github.com/nlohmann/json/issues/476) - Error Using JSON Library with arrays C++ [\#475](https://github.com/nlohmann/json/issues/475) - Moving forward to version 3.0.0 [\#474](https://github.com/nlohmann/json/issues/474) - Inconsistent behavior in conversion to array type [\#473](https://github.com/nlohmann/json/issues/473) - Create a \[key:member\_pointer\] map to ease parsing custom types [\#471](https://github.com/nlohmann/json/issues/471) - MSVC 2015 update 2 [\#469](https://github.com/nlohmann/json/issues/469) - VS2017 implicit to std::string conversion fix. [\#464](https://github.com/nlohmann/json/issues/464) - How to make sure a string or string literal is a valid JSON? [\#458](https://github.com/nlohmann/json/issues/458) - basic\_json templated on a "policy" class [\#456](https://github.com/nlohmann/json/issues/456) - json::value\(const json\_pointer&, ValueType\) requires exceptions to return the default value. [\#440](https://github.com/nlohmann/json/issues/440) - is it possible merge two json object [\#428](https://github.com/nlohmann/json/issues/428) - Is it possible to turn this into a shared library? [\#420](https://github.com/nlohmann/json/issues/420) - Further thoughts on performance improvements [\#418](https://github.com/nlohmann/json/issues/418) - nan number stored as null [\#388](https://github.com/nlohmann/json/issues/388) - Behavior of operator\>\> should more closely resemble that of built-in overloads. [\#367](https://github.com/nlohmann/json/issues/367) - Request: range-based-for over a json-object to expose .first/.second [\#350](https://github.com/nlohmann/json/issues/350) - feature wish: JSONPath [\#343](https://github.com/nlohmann/json/issues/343) - UTF-8/Unicode escape and dump [\#330](https://github.com/nlohmann/json/issues/330) - Serialized value not always can be parsed. [\#329](https://github.com/nlohmann/json/issues/329) - Is there a way to forward declare nlohmann::json? [\#314](https://github.com/nlohmann/json/issues/314) - Exception line [\#301](https://github.com/nlohmann/json/issues/301) - Do not throw exception when default\_value's type does not match the actual type [\#278](https://github.com/nlohmann/json/issues/278) - dump\(\) method doesn't work with a custom allocator [\#268](https://github.com/nlohmann/json/issues/268) - Readme documentation enhancements [\#248](https://github.com/nlohmann/json/issues/248) - Use user-defined exceptions [\#244](https://github.com/nlohmann/json/issues/244) - Incorrect C++11 allocator model support [\#161](https://github.com/nlohmann/json/issues/161) - :white\_check\_mark: re-added tests for algorithms [\#879](https://github.com/nlohmann/json/pull/879) ([nlohmann](https://github.com/nlohmann)) - Overworked library toward 3.0.0 release [\#875](https://github.com/nlohmann/json/pull/875) ([nlohmann](https://github.com/nlohmann)) - :rotating\_light: remove C4996 warnings \#872 [\#873](https://github.com/nlohmann/json/pull/873) ([nlohmann](https://github.com/nlohmann)) - :boom: throwing an exception in case dump encounters a non-UTF-8 string \#838 [\#870](https://github.com/nlohmann/json/pull/870) ([nlohmann](https://github.com/nlohmann)) - :memo: fixing documentation \#867 [\#868](https://github.com/nlohmann/json/pull/868) ([nlohmann](https://github.com/nlohmann)) - iter\_impl template conformance with C++17 [\#860](https://github.com/nlohmann/json/pull/860) ([bogemic](https://github.com/bogemic)) - Std allocator conformance cpp17 [\#856](https://github.com/nlohmann/json/pull/856) ([bogemic](https://github.com/bogemic)) - cmake: use BUILD\_INTERFACE/INSTALL\_INTERFACE [\#855](https://github.com/nlohmann/json/pull/855) ([theodelrieu](https://github.com/theodelrieu)) - to/from\_json: add a MSVC-specific static\_assert to force a stacktrace [\#854](https://github.com/nlohmann/json/pull/854) ([theodelrieu](https://github.com/theodelrieu)) - Add .natvis for MSVC debug view [\#844](https://github.com/nlohmann/json/pull/844) ([TinyTinni](https://github.com/TinyTinni)) - Updated hunter package links [\#829](https://github.com/nlohmann/json/pull/829) ([jowr](https://github.com/jowr)) - Typos README [\#811](https://github.com/nlohmann/json/pull/811) ([Itja](https://github.com/Itja)) - add forwarding references to json\_ref constructor [\#807](https://github.com/nlohmann/json/pull/807) ([theodelrieu](https://github.com/theodelrieu)) - Add transparent comparator and perfect forwarding support to find\(\) and count\(\) [\#795](https://github.com/nlohmann/json/pull/795) ([jseward](https://github.com/jseward)) - Error : 'identifier "size\_t" is undefined' in linux [\#793](https://github.com/nlohmann/json/pull/793) ([sonulohani](https://github.com/sonulohani)) - Fix Visual Studio 2017 warnings [\#788](https://github.com/nlohmann/json/pull/788) ([jseward](https://github.com/jseward)) - Fix warning C4706 on Visual Studio 2017 [\#785](https://github.com/nlohmann/json/pull/785) ([jseward](https://github.com/jseward)) - Set GENERATE\_TAGFILE in Doxyfile [\#783](https://github.com/nlohmann/json/pull/783) ([eld00d](https://github.com/eld00d)) - using more CMake [\#765](https://github.com/nlohmann/json/pull/765) ([nlohmann](https://github.com/nlohmann)) - Simplified istream handing \#367 [\#764](https://github.com/nlohmann/json/pull/764) ([pjkundert](https://github.com/pjkundert)) - Add info for the vcpkg package. [\#753](https://github.com/nlohmann/json/pull/753) ([gregmarr](https://github.com/gregmarr)) - fix from\_json implementation for pair/tuple [\#708](https://github.com/nlohmann/json/pull/708) ([theodelrieu](https://github.com/theodelrieu)) - Update json.hpp [\#686](https://github.com/nlohmann/json/pull/686) ([GoWebProd](https://github.com/GoWebProd)) - Remove duplicate word [\#685](https://github.com/nlohmann/json/pull/685) ([daixtrose](https://github.com/daixtrose)) - To fix compilation issue for intel OSX compiler [\#682](https://github.com/nlohmann/json/pull/682) ([kbthomp1](https://github.com/kbthomp1)) - Digraph warning [\#679](https://github.com/nlohmann/json/pull/679) ([traits](https://github.com/traits)) - massage -\> message [\#678](https://github.com/nlohmann/json/pull/678) ([DmitryKuk](https://github.com/DmitryKuk)) - Fix "not constraint" grammar in docs [\#674](https://github.com/nlohmann/json/pull/674) ([wincent](https://github.com/wincent)) - Add documentation for integration with CMake and hunter [\#671](https://github.com/nlohmann/json/pull/671) ([dan-42](https://github.com/dan-42)) - REFACTOR: rewrite CMakeLists.txt for better inlcude and reuse [\#669](https://github.com/nlohmann/json/pull/669) ([dan-42](https://github.com/dan-42)) - enable\_testing only if the JSON\_BuildTests is ON [\#666](https://github.com/nlohmann/json/pull/666) ([effolkronium](https://github.com/effolkronium)) - Support moving from rvalues in std::initializer\_list [\#663](https://github.com/nlohmann/json/pull/663) ([himikof](https://github.com/himikof)) - add ensure\_ascii parameter to dump. \#330 [\#654](https://github.com/nlohmann/json/pull/654) ([ryanjmulder](https://github.com/ryanjmulder)) - Rename BuildTests to JSON\_BuildTests [\#652](https://github.com/nlohmann/json/pull/652) ([olegendo](https://github.com/olegendo)) - Don't include \, use std::make\_shared [\#650](https://github.com/nlohmann/json/pull/650) ([olegendo](https://github.com/olegendo)) - Refacto/split basic json [\#643](https://github.com/nlohmann/json/pull/643) ([theodelrieu](https://github.com/theodelrieu)) - fix typo in operator\_\_notequal example [\#630](https://github.com/nlohmann/json/pull/630) ([Chocobo1](https://github.com/Chocobo1)) - Fix MSVC warning C4819 [\#629](https://github.com/nlohmann/json/pull/629) ([Chocobo1](https://github.com/Chocobo1)) - \[BugFix\] Add parentheses around std::min [\#626](https://github.com/nlohmann/json/pull/626) ([koemeet](https://github.com/koemeet)) - add pair/tuple conversions [\#624](https://github.com/nlohmann/json/pull/624) ([theodelrieu](https://github.com/theodelrieu)) - remove std::pair support [\#615](https://github.com/nlohmann/json/pull/615) ([theodelrieu](https://github.com/theodelrieu)) - Add pair support, fix CompatibleObject conversions \(fixes \#600\) [\#609](https://github.com/nlohmann/json/pull/609) ([theodelrieu](https://github.com/theodelrieu)) - \#550 Fix iterator related compiling issues for Intel icc [\#598](https://github.com/nlohmann/json/pull/598) ([HenryRLee](https://github.com/HenryRLee)) - Issue \#593 Fix the arithmetic operators in the iterator and reverse iterator [\#595](https://github.com/nlohmann/json/pull/595) ([HenryRLee](https://github.com/HenryRLee)) - fix doxygen error of basic\_json::get\(\) [\#583](https://github.com/nlohmann/json/pull/583) ([zhaohuaxishi](https://github.com/zhaohuaxishi)) - Fixing assignement for iterator wrapper second, and adding unit test [\#579](https://github.com/nlohmann/json/pull/579) ([Type1J](https://github.com/Type1J)) - Adding first and second properties to iteration\_proxy\_internal [\#578](https://github.com/nlohmann/json/pull/578) ([Type1J](https://github.com/Type1J)) - Adding support for Meson. [\#576](https://github.com/nlohmann/json/pull/576) ([Type1J](https://github.com/Type1J)) - add enum class default conversions [\#545](https://github.com/nlohmann/json/pull/545) ([theodelrieu](https://github.com/theodelrieu)) - Properly pop diagnostics [\#540](https://github.com/nlohmann/json/pull/540) ([tinloaf](https://github.com/tinloaf)) - Add Visual Studio 17 image to appveyor build matrix [\#536](https://github.com/nlohmann/json/pull/536) ([vpetrigo](https://github.com/vpetrigo)) - UTF8 encoding enhancement [\#534](https://github.com/nlohmann/json/pull/534) ([TedLyngmo](https://github.com/TedLyngmo)) - Fix typo [\#530](https://github.com/nlohmann/json/pull/530) ([berkus](https://github.com/berkus)) - Make exception base class visible in basic\_json [\#526](https://github.com/nlohmann/json/pull/526) ([krzysztofwos](https://github.com/krzysztofwos)) - :art: Namespace `uint8\_t` from the C++ stdlib [\#510](https://github.com/nlohmann/json/pull/510) ([alex-weej](https://github.com/alex-weej)) - add to\_json method for C arrays [\#508](https://github.com/nlohmann/json/pull/508) ([theodelrieu](https://github.com/theodelrieu)) - Fix -Weffc++ warnings \(GNU 6.3.1\) [\#496](https://github.com/nlohmann/json/pull/496) ([TedLyngmo](https://github.com/TedLyngmo)) ## [v2.1.1](https://github.com/nlohmann/json/releases/tag/v2.1.1) (2017-02-25) [Full Changelog](https://github.com/nlohmann/json/compare/v2.1.0...v2.1.1) - warning in the library [\#472](https://github.com/nlohmann/json/issues/472) - How to create an array of Objects? [\#470](https://github.com/nlohmann/json/issues/470) - \[Bug?\] Cannot get int pointer, but int64\_t works [\#468](https://github.com/nlohmann/json/issues/468) - Illegal indirection [\#467](https://github.com/nlohmann/json/issues/467) - in vs can't find linkageId [\#466](https://github.com/nlohmann/json/issues/466) - Roundtrip error while parsing "1000000000000000010E5" [\#465](https://github.com/nlohmann/json/issues/465) - C4996 error and warning with Visual Studio [\#463](https://github.com/nlohmann/json/issues/463) - Support startIndex for from\_cbor/from\_msgpack [\#462](https://github.com/nlohmann/json/issues/462) - question: monospace font used in feature slideshow? [\#460](https://github.com/nlohmann/json/issues/460) - Object.keys\(\) [\#459](https://github.com/nlohmann/json/issues/459) - Use “, “ as delimiter for json-objects. [\#457](https://github.com/nlohmann/json/issues/457) - Enum -\> string during serialization and vice versa [\#455](https://github.com/nlohmann/json/issues/455) - doubles are printed as integers [\#454](https://github.com/nlohmann/json/issues/454) - Warnings with Visual Studio c++ \(VS2015 Update 3\) [\#453](https://github.com/nlohmann/json/issues/453) - Heap-buffer-overflow \(OSS-Fuzz issue 585\) [\#452](https://github.com/nlohmann/json/issues/452) - use of undeclared identifier 'UINT8\_MAX' [\#451](https://github.com/nlohmann/json/issues/451) - Question on the lifetime managment of objects at the lower levels [\#449](https://github.com/nlohmann/json/issues/449) - Json should not be constructible with 'json\*' [\#448](https://github.com/nlohmann/json/issues/448) - Move value\_t to namespace scope [\#447](https://github.com/nlohmann/json/issues/447) - Typo in README.md [\#446](https://github.com/nlohmann/json/issues/446) - make check compilation is unneccesarily slow [\#445](https://github.com/nlohmann/json/issues/445) - Problem in dump\(\) in json.h caused by ss.imbue [\#444](https://github.com/nlohmann/json/issues/444) - I want to create Windows Application in Visual Studio 2015 c++, and i have a problem [\#443](https://github.com/nlohmann/json/issues/443) - Implicit conversion issues [\#442](https://github.com/nlohmann/json/issues/442) - Parsing of floats locale dependent [\#302](https://github.com/nlohmann/json/issues/302) - Speedup CI builds using cotire [\#461](https://github.com/nlohmann/json/pull/461) ([tusharpm](https://github.com/tusharpm)) - TurpentineDistillery feature/locale independent str to num [\#450](https://github.com/nlohmann/json/pull/450) ([nlohmann](https://github.com/nlohmann)) - README: adjust boost::optional example [\#439](https://github.com/nlohmann/json/pull/439) ([jaredgrubb](https://github.com/jaredgrubb)) - fix \#414 - comparing to 0 literal [\#415](https://github.com/nlohmann/json/pull/415) ([stanmihai4](https://github.com/stanmihai4)) ## [v2.1.0](https://github.com/nlohmann/json/releases/tag/v2.1.0) (2017-01-28) [Full Changelog](https://github.com/nlohmann/json/compare/v2.0.10...v2.1.0) - Parsing multiple JSON objects from a string or stream [\#438](https://github.com/nlohmann/json/issues/438) - Use-of-uninitialized-value \(OSS-Fuzz issue 477\) [\#437](https://github.com/nlohmann/json/issues/437) - add `reserve` function for array to reserve memory before adding json values into it [\#436](https://github.com/nlohmann/json/issues/436) - Typo in examples page [\#434](https://github.com/nlohmann/json/issues/434) - avoid malformed json [\#433](https://github.com/nlohmann/json/issues/433) - How to add json objects to a map? [\#432](https://github.com/nlohmann/json/issues/432) - create json instance from raw json \(unsigned char\*\) [\#431](https://github.com/nlohmann/json/issues/431) - Getting std::invalid\_argument: stream error when following example [\#429](https://github.com/nlohmann/json/issues/429) - Forward declare-only header? [\#427](https://github.com/nlohmann/json/issues/427) - Implicit conversion from array to object [\#425](https://github.com/nlohmann/json/issues/425) - Automatic ordered JSON [\#424](https://github.com/nlohmann/json/issues/424) - error C4996: 'strerror' when reading file [\#422](https://github.com/nlohmann/json/issues/422) - Get an error - JSON pointer must be empty or begin with '/' [\#421](https://github.com/nlohmann/json/issues/421) - size parameter for parse\(\) [\#419](https://github.com/nlohmann/json/issues/419) - json.hpp forcibly defines GCC\_VERSION [\#417](https://github.com/nlohmann/json/issues/417) - Use-of-uninitialized-value \(OSS-Fuzz issue 377\) [\#416](https://github.com/nlohmann/json/issues/416) - comparing to 0 literal [\#414](https://github.com/nlohmann/json/issues/414) - Single char converted to ASCII code instead of string [\#413](https://github.com/nlohmann/json/issues/413) - How to know if a string was parsed as utf-8? [\#406](https://github.com/nlohmann/json/issues/406) - Overloaded += to add objects to an array makes no sense? [\#404](https://github.com/nlohmann/json/issues/404) - Finding a value in an array [\#399](https://github.com/nlohmann/json/issues/399) - add release information in static function [\#397](https://github.com/nlohmann/json/issues/397) - Optimize memory usage of json objects in combination with binary serialization [\#373](https://github.com/nlohmann/json/issues/373) - Conversion operators not considered [\#369](https://github.com/nlohmann/json/issues/369) - Append ".0" to serialized floating\_point values that are digits-only. [\#362](https://github.com/nlohmann/json/issues/362) - Add a customization point for user-defined types [\#328](https://github.com/nlohmann/json/issues/328) - Conformance report for reference [\#307](https://github.com/nlohmann/json/issues/307) - Document the best way to serialize/deserialize user defined types to json [\#298](https://github.com/nlohmann/json/issues/298) - Add StringView template typename to basic\_json [\#297](https://github.com/nlohmann/json/issues/297) - \[Improvement\] Add option to remove exceptions [\#296](https://github.com/nlohmann/json/issues/296) - Performance in miloyip/nativejson-benchmark [\#202](https://github.com/nlohmann/json/issues/202) - conversion from/to user-defined types [\#435](https://github.com/nlohmann/json/pull/435) ([nlohmann](https://github.com/nlohmann)) - Fix documentation error [\#430](https://github.com/nlohmann/json/pull/430) ([vjon](https://github.com/vjon)) - locale-independent num-to-str [\#378](https://github.com/nlohmann/json/pull/378) ([TurpentineDistillery](https://github.com/TurpentineDistillery)) ## [v2.0.10](https://github.com/nlohmann/json/releases/tag/v2.0.10) (2017-01-02) [Full Changelog](https://github.com/nlohmann/json/compare/v2.0.9...v2.0.10) - Heap-buffer-overflow \(OSS-Fuzz issue 367\) [\#412](https://github.com/nlohmann/json/issues/412) - Heap-buffer-overflow \(OSS-Fuzz issue 366\) [\#411](https://github.com/nlohmann/json/issues/411) - Use-of-uninitialized-value \(OSS-Fuzz issue 347\) [\#409](https://github.com/nlohmann/json/issues/409) - Heap-buffer-overflow \(OSS-Fuzz issue 344\) [\#408](https://github.com/nlohmann/json/issues/408) - Heap-buffer-overflow \(OSS-Fuzz issue 343\) [\#407](https://github.com/nlohmann/json/issues/407) - Heap-buffer-overflow \(OSS-Fuzz issue 342\) [\#405](https://github.com/nlohmann/json/issues/405) - strerror throwing error in compiler VS2015 [\#403](https://github.com/nlohmann/json/issues/403) - json::parse of std::string being underlined by Visual Studio [\#402](https://github.com/nlohmann/json/issues/402) - Explicitly getting string without .dump\(\) [\#401](https://github.com/nlohmann/json/issues/401) - Possible to speed up json::parse? [\#398](https://github.com/nlohmann/json/issues/398) - the alphabetic order in the code influence console\_output. [\#396](https://github.com/nlohmann/json/issues/396) - Execute tests with clang sanitizers [\#394](https://github.com/nlohmann/json/issues/394) - Check if library can be used with ETL [\#361](https://github.com/nlohmann/json/issues/361) - Feature/clang sanitize [\#410](https://github.com/nlohmann/json/pull/410) ([Daniel599](https://github.com/Daniel599)) - Add Doozer build badge [\#400](https://github.com/nlohmann/json/pull/400) ([andoma](https://github.com/andoma)) ## [v2.0.9](https://github.com/nlohmann/json/releases/tag/v2.0.9) (2016-12-16) [Full Changelog](https://github.com/nlohmann/json/compare/v2.0.8...v2.0.9) - \#pragma GCC diagnostic ignored "-Wdocumentation" [\#393](https://github.com/nlohmann/json/issues/393) - How to parse this json file and write separate sub object as json files? [\#392](https://github.com/nlohmann/json/issues/392) - Integer-overflow \(OSS-Fuzz issue 267\) [\#389](https://github.com/nlohmann/json/issues/389) - Implement indefinite-length types from RFC 7049 [\#387](https://github.com/nlohmann/json/issues/387) - template parameter "T" is not used in declaring the parameter types of function template [\#386](https://github.com/nlohmann/json/issues/386) - Serializing json instances containing already serialized string values without escaping [\#385](https://github.com/nlohmann/json/issues/385) - Add test cases from RFC 7049 [\#384](https://github.com/nlohmann/json/issues/384) - Add a table of contents to the README file [\#383](https://github.com/nlohmann/json/issues/383) - Update FAQ section in the guidelines for contributing [\#382](https://github.com/nlohmann/json/issues/382) - Allow for forward declaring nlohmann::json [\#381](https://github.com/nlohmann/json/issues/381) - Bug in overflow detection when parsing integers [\#380](https://github.com/nlohmann/json/issues/380) - A unique name to mention the library? [\#377](https://github.com/nlohmann/json/issues/377) - Support for comments. [\#376](https://github.com/nlohmann/json/issues/376) - Non-unique keys in objects. [\#375](https://github.com/nlohmann/json/issues/375) - Request: binary serialization/deserialization [\#358](https://github.com/nlohmann/json/issues/358) - Replace class iterator and const\_iterator by using a single template class to reduce code. [\#395](https://github.com/nlohmann/json/pull/395) ([Bosswestfalen](https://github.com/Bosswestfalen)) - Clang: quiet a warning [\#391](https://github.com/nlohmann/json/pull/391) ([jaredgrubb](https://github.com/jaredgrubb)) - Fix issue \#380: Signed integer overflow check [\#390](https://github.com/nlohmann/json/pull/390) ([qwename](https://github.com/qwename)) ## [v2.0.8](https://github.com/nlohmann/json/releases/tag/v2.0.8) (2016-12-02) [Full Changelog](https://github.com/nlohmann/json/compare/v2.0.7...v2.0.8) - Reading from file [\#374](https://github.com/nlohmann/json/issues/374) - Compiler warnings? [\#372](https://github.com/nlohmann/json/issues/372) - docs: how to release a json object in memory? [\#371](https://github.com/nlohmann/json/issues/371) - crash in dump [\#370](https://github.com/nlohmann/json/issues/370) - Coverity issue \(FORWARD\_NULL\) in lexer\(std::istream& s\) [\#368](https://github.com/nlohmann/json/issues/368) - json::parse on failed stream gets stuck [\#366](https://github.com/nlohmann/json/issues/366) - Performance improvements [\#365](https://github.com/nlohmann/json/issues/365) - 'to\_string' is not a member of 'std' [\#364](https://github.com/nlohmann/json/issues/364) - Optional comment support. [\#363](https://github.com/nlohmann/json/issues/363) - Crash in dump\(\) from a static object [\#359](https://github.com/nlohmann/json/issues/359) - json::parse\(...\) vs json j; j.parse\(...\) [\#357](https://github.com/nlohmann/json/issues/357) - Hi, is there any method to dump json to string with the insert order rather than alphabets [\#356](https://github.com/nlohmann/json/issues/356) - Provide an example of reading from an json with only a key that has an array of strings. [\#354](https://github.com/nlohmann/json/issues/354) - Request: access with default value. [\#353](https://github.com/nlohmann/json/issues/353) - {} and \[\] causes parser error. [\#352](https://github.com/nlohmann/json/issues/352) - Reading a JSON file into a JSON object [\#351](https://github.com/nlohmann/json/issues/351) - Request: 'emplace\_back' [\#349](https://github.com/nlohmann/json/issues/349) - Is it possible to stream data through the json parser without storing everything in memory? [\#347](https://github.com/nlohmann/json/issues/347) - pure virtual conversion operator [\#346](https://github.com/nlohmann/json/issues/346) - Floating point precision lost [\#345](https://github.com/nlohmann/json/issues/345) - unit-conversions SIGSEGV on armv7hl [\#303](https://github.com/nlohmann/json/issues/303) - Coverity scan fails [\#299](https://github.com/nlohmann/json/issues/299) - Using QString as string type [\#274](https://github.com/nlohmann/json/issues/274) ## [v2.0.7](https://github.com/nlohmann/json/releases/tag/v2.0.7) (2016-11-02) [Full Changelog](https://github.com/nlohmann/json/compare/v2.0.6...v2.0.7) - JSON5 [\#348](https://github.com/nlohmann/json/issues/348) - Check "Parsing JSON is a Minefield" [\#344](https://github.com/nlohmann/json/issues/344) - Allow hex numbers [\#342](https://github.com/nlohmann/json/issues/342) - Convert strings to numbers [\#341](https://github.com/nlohmann/json/issues/341) - ""-operators ignore the length parameter [\#340](https://github.com/nlohmann/json/issues/340) - JSON into std::tuple [\#339](https://github.com/nlohmann/json/issues/339) - JSON into vector [\#335](https://github.com/nlohmann/json/issues/335) - Installing with Homebrew on Mac Errors \(El Capitan\) [\#331](https://github.com/nlohmann/json/issues/331) - g++ make check results in error [\#312](https://github.com/nlohmann/json/issues/312) - Cannot convert from 'json' to 'char' [\#276](https://github.com/nlohmann/json/issues/276) - Please add a Pretty-Print option for arrays to stay always in one line [\#229](https://github.com/nlohmann/json/issues/229) - Conversion to STL map\\> gives error [\#220](https://github.com/nlohmann/json/issues/220) - std::unorderd\_map cannot be used as ObjectType [\#164](https://github.com/nlohmann/json/issues/164) - fix minor grammar/style issue in README.md [\#336](https://github.com/nlohmann/json/pull/336) ([seeekr](https://github.com/seeekr)) ## [v2.0.6](https://github.com/nlohmann/json/releases/tag/v2.0.6) (2016-10-15) [Full Changelog](https://github.com/nlohmann/json/compare/v2.0.5...v2.0.6) - How to handle json files? [\#333](https://github.com/nlohmann/json/issues/333) - This file requires compiler and library support .... [\#332](https://github.com/nlohmann/json/issues/332) - Segmentation fault on saving json to file [\#326](https://github.com/nlohmann/json/issues/326) - parse error - unexpected \ with 2.0.5 [\#325](https://github.com/nlohmann/json/issues/325) - Add nested object capability to pointers [\#323](https://github.com/nlohmann/json/issues/323) - Fix usage examples' comments for std::multiset [\#322](https://github.com/nlohmann/json/issues/322) - json\_unit runs forever when executed in build directory [\#319](https://github.com/nlohmann/json/issues/319) - Visual studio 2015 update3 true != TRUE [\#317](https://github.com/nlohmann/json/issues/317) - releasing single header file in compressed format [\#316](https://github.com/nlohmann/json/issues/316) - json object from std::ifstream [\#315](https://github.com/nlohmann/json/issues/315) - make has\_mapped\_type struct friendly [\#324](https://github.com/nlohmann/json/pull/324) ([vpetrigo](https://github.com/vpetrigo)) - Fix usage examples' comments for std::multiset [\#321](https://github.com/nlohmann/json/pull/321) ([vasild](https://github.com/vasild)) - Include dir relocation [\#318](https://github.com/nlohmann/json/pull/318) ([ChristophJud](https://github.com/ChristophJud)) - trivial documentation fix [\#313](https://github.com/nlohmann/json/pull/313) ([5tefan](https://github.com/5tefan)) ## [v2.0.5](https://github.com/nlohmann/json/releases/tag/v2.0.5) (2016-09-14) [Full Changelog](https://github.com/nlohmann/json/compare/v2.0.4...v2.0.5) - \[feature request\]: schema validator and comments [\#311](https://github.com/nlohmann/json/issues/311) - make json\_benchmarks no longer working in 2.0.4 [\#310](https://github.com/nlohmann/json/issues/310) - Segmentation fault \(core dumped\) [\#309](https://github.com/nlohmann/json/issues/309) - No matching member function for call to 'get\_impl' [\#308](https://github.com/nlohmann/json/issues/308) ## [v2.0.4](https://github.com/nlohmann/json/releases/tag/v2.0.4) (2016-09-11) [Full Changelog](https://github.com/nlohmann/json/compare/v2.0.3...v2.0.4) - Parsing fails without space at end of file [\#306](https://github.com/nlohmann/json/issues/306) - json schema validator [\#305](https://github.com/nlohmann/json/issues/305) - Unused variable warning [\#304](https://github.com/nlohmann/json/issues/304) ## [v2.0.3](https://github.com/nlohmann/json/releases/tag/v2.0.3) (2016-08-31) [Full Changelog](https://github.com/nlohmann/json/compare/v2.0.2...v2.0.3) - warning C4706: assignment within conditional expression [\#295](https://github.com/nlohmann/json/issues/295) - Strip comments / Minify [\#294](https://github.com/nlohmann/json/issues/294) - Q: Is it possible to build json tree from already UTF8 encoded values? [\#293](https://github.com/nlohmann/json/issues/293) - Equality operator results in array when assigned object [\#292](https://github.com/nlohmann/json/issues/292) - Support for integers not from the range \[-\(2\*\*53\)+1, \(2\*\*53\)-1\] in parser [\#291](https://github.com/nlohmann/json/issues/291) - Support for iterator-range parsing [\#290](https://github.com/nlohmann/json/issues/290) - Horribly inconsistent behavior between const/non-const reference in operator \[\] \(\) [\#289](https://github.com/nlohmann/json/issues/289) - Silently get numbers into smaller types [\#288](https://github.com/nlohmann/json/issues/288) - Incorrect parsing of large int64\_t numbers [\#287](https://github.com/nlohmann/json/issues/287) - \[question\]: macro to disable floating point support [\#284](https://github.com/nlohmann/json/issues/284) - unit-constructor1.cpp: Fix floating point truncation warning [\#300](https://github.com/nlohmann/json/pull/300) ([t-b](https://github.com/t-b)) ## [v2.0.2](https://github.com/nlohmann/json/releases/tag/v2.0.2) (2016-07-31) [Full Changelog](https://github.com/nlohmann/json/compare/v2.0.1...v2.0.2) - can function dump\(\) return string in the order I push in the json object ? [\#286](https://github.com/nlohmann/json/issues/286) - Error on the Mac: Undefined symbols for architecture x86\_64 [\#285](https://github.com/nlohmann/json/issues/285) - value\(\) does not work with \_json\_pointer types [\#283](https://github.com/nlohmann/json/issues/283) - Build error for std::int64 [\#282](https://github.com/nlohmann/json/issues/282) - strings can't be accessed after dump\(\)-\>parse\(\) - type is lost [\#281](https://github.com/nlohmann/json/issues/281) - Easy serialization of classes [\#280](https://github.com/nlohmann/json/issues/280) - recursive data structures [\#277](https://github.com/nlohmann/json/issues/277) - hexify\(\) function emits conversion warning [\#270](https://github.com/nlohmann/json/issues/270) - let the makefile choose the correct sed [\#279](https://github.com/nlohmann/json/pull/279) ([murinicanor](https://github.com/murinicanor)) - Update hexify to use array lookup instead of ternary \(\#270\) [\#275](https://github.com/nlohmann/json/pull/275) ([dtoma](https://github.com/dtoma)) ## [v2.0.1](https://github.com/nlohmann/json/releases/tag/v2.0.1) (2016-06-28) [Full Changelog](https://github.com/nlohmann/json/compare/v2.0.0...v2.0.1) - Compilation error. [\#273](https://github.com/nlohmann/json/issues/273) - dump\(\) performance degradation in v2 [\#272](https://github.com/nlohmann/json/issues/272) - fixed a tiny typo [\#271](https://github.com/nlohmann/json/pull/271) ([feroldi](https://github.com/feroldi)) ## [v2.0.0](https://github.com/nlohmann/json/releases/tag/v2.0.0) (2016-06-23) [Full Changelog](https://github.com/nlohmann/json/compare/v1.1.0...v2.0.0) - json::diff generates incorrect patch when removing multiple array elements. [\#269](https://github.com/nlohmann/json/issues/269) - Docs - What does Json\[key\] return? [\#267](https://github.com/nlohmann/json/issues/267) - Compiler Errors With JSON.hpp [\#265](https://github.com/nlohmann/json/issues/265) - Ambiguous push\_back and operator+= overloads [\#263](https://github.com/nlohmann/json/issues/263) - Preseving order of items in json [\#262](https://github.com/nlohmann/json/issues/262) - '\' char problem in strings [\#261](https://github.com/nlohmann/json/issues/261) - VS2015 compile fail [\#260](https://github.com/nlohmann/json/issues/260) - -Wconversion warning [\#259](https://github.com/nlohmann/json/issues/259) - Maybe a bug [\#258](https://github.com/nlohmann/json/issues/258) - Few tests failed on Visual C++ 2015 [\#257](https://github.com/nlohmann/json/issues/257) - Access keys when iteration with new for loop C++11 [\#256](https://github.com/nlohmann/json/issues/256) - multiline text values [\#255](https://github.com/nlohmann/json/issues/255) - Error when using json in g++ [\#254](https://github.com/nlohmann/json/issues/254) - is the release 2.0? [\#253](https://github.com/nlohmann/json/issues/253) - concatenate objects [\#252](https://github.com/nlohmann/json/issues/252) - Encoding [\#251](https://github.com/nlohmann/json/issues/251) - Unable to build example for constructing json object with stringstreams [\#250](https://github.com/nlohmann/json/issues/250) - Hexadecimal support [\#249](https://github.com/nlohmann/json/issues/249) - Update long-term goals [\#246](https://github.com/nlohmann/json/issues/246) - Contribution To This Json Project [\#245](https://github.com/nlohmann/json/issues/245) - Trouble using parser with initial dictionary [\#243](https://github.com/nlohmann/json/issues/243) - Unit test fails when doing a CMake out-of-tree build [\#241](https://github.com/nlohmann/json/issues/241) - -Wconversion warnings [\#239](https://github.com/nlohmann/json/issues/239) - Additional integration options [\#237](https://github.com/nlohmann/json/issues/237) - .get\\(\) works for non spaced string but returns as array for spaced/longer strings [\#236](https://github.com/nlohmann/json/issues/236) - ambiguous overload for 'push\_back' and 'operator+=' [\#235](https://github.com/nlohmann/json/issues/235) - Can't use basic\_json::iterator as a base iterator for std::move\_iterator [\#233](https://github.com/nlohmann/json/issues/233) - json object's creation can freezes execution [\#231](https://github.com/nlohmann/json/issues/231) - Incorrect dumping of parsed numbers with exponents, but without decimal places [\#230](https://github.com/nlohmann/json/issues/230) - double values are serialized with commas as decimal points [\#228](https://github.com/nlohmann/json/issues/228) - Move semantics with std::initializer\_list [\#225](https://github.com/nlohmann/json/issues/225) - replace emplace [\#224](https://github.com/nlohmann/json/issues/224) - abort during getline in yyfill [\#223](https://github.com/nlohmann/json/issues/223) - free\(\): invalid pointer error in GCC 5.2.1 [\#221](https://github.com/nlohmann/json/issues/221) - Error compile Android NDK error: 'strtof' is not a member of 'std' [\#219](https://github.com/nlohmann/json/issues/219) - Wrong link in the README.md [\#217](https://github.com/nlohmann/json/issues/217) - Wide character strings not supported [\#216](https://github.com/nlohmann/json/issues/216) - Memory allocations using range-based for loops [\#214](https://github.com/nlohmann/json/issues/214) - would you like to support gcc 4.8.1? [\#211](https://github.com/nlohmann/json/issues/211) - Reading concatenated json's from an istream [\#210](https://github.com/nlohmann/json/issues/210) - Conflicting typedef of ssize\_t on Windows 32 bit when using Boost.Python [\#204](https://github.com/nlohmann/json/issues/204) - Inconsistency between operator\[\] and push\_back [\#203](https://github.com/nlohmann/json/issues/203) - Small bugs in json.hpp \(get\_number\) and unit.cpp \(non-standard integer type test\) [\#199](https://github.com/nlohmann/json/issues/199) - GCC/clang floating point parsing bug in strtod\(\) [\#195](https://github.com/nlohmann/json/issues/195) - What is within scope? [\#192](https://github.com/nlohmann/json/issues/192) - Bugs in miloyip/nativejson-benchmark: roundtrips [\#187](https://github.com/nlohmann/json/issues/187) - Floating point exceptions [\#181](https://github.com/nlohmann/json/issues/181) - Integer conversion to unsigned [\#178](https://github.com/nlohmann/json/issues/178) - map string string fails to compile [\#176](https://github.com/nlohmann/json/issues/176) - In basic\_json::basic\_json\(const CompatibleArrayType& val\), the requirement of CompatibleArrayType is not strict enough. [\#174](https://github.com/nlohmann/json/issues/174) - Provide a FAQ [\#163](https://github.com/nlohmann/json/issues/163) - Implicit assignment to std::string fails [\#144](https://github.com/nlohmann/json/issues/144) - Fix Issue \#265 [\#266](https://github.com/nlohmann/json/pull/266) ([06needhamt](https://github.com/06needhamt)) - Define CMake/CTest tests [\#247](https://github.com/nlohmann/json/pull/247) ([robertmrk](https://github.com/robertmrk)) - Out of tree builds and a few other miscellaneous CMake cleanups. [\#242](https://github.com/nlohmann/json/pull/242) ([ChrisKitching](https://github.com/ChrisKitching)) - Implement additional integration options [\#238](https://github.com/nlohmann/json/pull/238) ([robertmrk](https://github.com/robertmrk)) - make serialization locale-independent [\#232](https://github.com/nlohmann/json/pull/232) ([nlohmann](https://github.com/nlohmann)) - fixes \#223 by updating README.md [\#227](https://github.com/nlohmann/json/pull/227) ([kevin--](https://github.com/kevin--)) - Use namespace std for int64\_t and uint64\_t [\#226](https://github.com/nlohmann/json/pull/226) ([lv-zheng](https://github.com/lv-zheng)) - Added missing cerrno header to fix ERANGE compile error on android [\#222](https://github.com/nlohmann/json/pull/222) ([Teemperor](https://github.com/Teemperor)) - Corrected readme [\#218](https://github.com/nlohmann/json/pull/218) ([Annihil](https://github.com/Annihil)) - Create PULL\_REQUEST\_TEMPLATE.md [\#213](https://github.com/nlohmann/json/pull/213) ([whackashoe](https://github.com/whackashoe)) - fixed noexcept; added constexpr [\#208](https://github.com/nlohmann/json/pull/208) ([nlohmann](https://github.com/nlohmann)) - Add support for afl-fuzz testing [\#207](https://github.com/nlohmann/json/pull/207) ([mykter](https://github.com/mykter)) - replaced ssize\_t occurrences with auto \(addresses \#204\) [\#205](https://github.com/nlohmann/json/pull/205) ([nlohmann](https://github.com/nlohmann)) - Fixed issue \#199 - Small bugs in json.hpp \(get\_number\) and unit.cpp \(non-standard integer type test\) [\#200](https://github.com/nlohmann/json/pull/200) ([twelsby](https://github.com/twelsby)) - Fix broken link [\#197](https://github.com/nlohmann/json/pull/197) ([vog](https://github.com/vog)) - Issue \#195 - update Travis to Trusty due to gcc/clang strtod\(\) bug [\#196](https://github.com/nlohmann/json/pull/196) ([twelsby](https://github.com/twelsby)) - Issue \#178 - Extending support to full uint64\_t/int64\_t range and unsigned type \(updated\) [\#193](https://github.com/nlohmann/json/pull/193) ([twelsby](https://github.com/twelsby)) ## [v1.1.0](https://github.com/nlohmann/json/releases/tag/v1.1.0) (2016-01-24) [Full Changelog](https://github.com/nlohmann/json/compare/v1.0.0...v1.1.0) - Small error in pull \#185 [\#194](https://github.com/nlohmann/json/issues/194) - Bugs in miloyip/nativejson-benchmark: floating-point parsing [\#186](https://github.com/nlohmann/json/issues/186) - Floating point equality [\#185](https://github.com/nlohmann/json/issues/185) - Unused variables in catch [\#180](https://github.com/nlohmann/json/issues/180) - Typo in documentation [\#179](https://github.com/nlohmann/json/issues/179) - JSON performance benchmark comparision [\#177](https://github.com/nlohmann/json/issues/177) - Since re2c is often ignored in pull requests, it may make sense to make a contributing.md file [\#175](https://github.com/nlohmann/json/issues/175) - Question about exceptions [\#173](https://github.com/nlohmann/json/issues/173) - Android? [\#172](https://github.com/nlohmann/json/issues/172) - Cannot index by key of type static constexpr const char\* [\#171](https://github.com/nlohmann/json/issues/171) - Add assertions [\#168](https://github.com/nlohmann/json/issues/168) - MSVC 2015 build fails when attempting to compare object\_t [\#167](https://github.com/nlohmann/json/issues/167) - Member detector is not portable [\#166](https://github.com/nlohmann/json/issues/166) - Unnecessary const\_cast [\#162](https://github.com/nlohmann/json/issues/162) - Question about get\_ref\(\) [\#128](https://github.com/nlohmann/json/issues/128) - range based for loop for objects [\#83](https://github.com/nlohmann/json/issues/83) - Consider submitting this to the Boost Library Incubator [\#66](https://github.com/nlohmann/json/issues/66) - Fixed Issue \#186 - add strto\(f|d|ld\) overload wrappers, "-0.0" special case and FP trailing zero [\#191](https://github.com/nlohmann/json/pull/191) ([twelsby](https://github.com/twelsby)) - Issue \#185 - remove approx\(\) and use \#pragma to kill warnings [\#190](https://github.com/nlohmann/json/pull/190) ([twelsby](https://github.com/twelsby)) - Fixed Issue \#171 - added two extra template overloads of operator\[\] for T\* arguments [\#189](https://github.com/nlohmann/json/pull/189) ([twelsby](https://github.com/twelsby)) - Fixed issue \#167 - removed operator ValueType\(\) condition for VS2015 [\#188](https://github.com/nlohmann/json/pull/188) ([twelsby](https://github.com/twelsby)) - Implementation of get\_ref\(\) [\#184](https://github.com/nlohmann/json/pull/184) ([dariomt](https://github.com/dariomt)) - Fixed some typos in CONTRIBUTING.md [\#182](https://github.com/nlohmann/json/pull/182) ([nibroc](https://github.com/nibroc)) ## [v1.0.0](https://github.com/nlohmann/json/releases/tag/v1.0.0) (2015-12-27) [Full Changelog](https://github.com/nlohmann/json/compare/v1.0.0-rc1...v1.0.0) - add key name to exception [\#160](https://github.com/nlohmann/json/issues/160) - Getting member discarding qualifyer [\#159](https://github.com/nlohmann/json/issues/159) - basic\_json::iterator::value\(\) output includes quotes while basic\_json::iterator::key\(\) doesn't [\#158](https://github.com/nlohmann/json/issues/158) - Indexing `const basic\_json\<\>` with `const basic\_string\` [\#157](https://github.com/nlohmann/json/issues/157) - token\_type\_name\(token\_type t\): not all control paths return a value [\#156](https://github.com/nlohmann/json/issues/156) - prevent json.hpp from emitting compiler warnings [\#154](https://github.com/nlohmann/json/issues/154) - json::parse\(string\) does not check utf8 bom [\#152](https://github.com/nlohmann/json/issues/152) - unsigned 64bit values output as signed [\#151](https://github.com/nlohmann/json/issues/151) - Wish feature: json5 [\#150](https://github.com/nlohmann/json/issues/150) - Unable to compile on MSVC 2015 with SDL checking enabled: This function or variable may be unsafe. [\#149](https://github.com/nlohmann/json/issues/149) - "Json Object" type does not keep object order [\#148](https://github.com/nlohmann/json/issues/148) - dump\(\) convert strings encoded by utf-8 to shift-jis on windows 10. [\#147](https://github.com/nlohmann/json/issues/147) - Unable to get field names in a json object [\#145](https://github.com/nlohmann/json/issues/145) - Question: Is the use of incomplete type correct? [\#138](https://github.com/nlohmann/json/issues/138) - json.hpp:5746:32: error: 'to\_string' is not a member of 'std' [\#136](https://github.com/nlohmann/json/issues/136) - Bug in basic\_json::operator\[\] const overload [\#135](https://github.com/nlohmann/json/issues/135) - wrong enable\_if for const pointer \(instead of pointer-to-const\) [\#134](https://github.com/nlohmann/json/issues/134) - overload of at\(\) with default value [\#133](https://github.com/nlohmann/json/issues/133) - Splitting source [\#132](https://github.com/nlohmann/json/issues/132) - Question about get\_ptr\(\) [\#127](https://github.com/nlohmann/json/issues/127) - Visual Studio 14 Debug assertion failed [\#125](https://github.com/nlohmann/json/issues/125) - Memory leak in face of exceptions [\#118](https://github.com/nlohmann/json/issues/118) - Find and Count for arrays [\#117](https://github.com/nlohmann/json/issues/117) - dynamically constructing an arbitrarily nested object [\#114](https://github.com/nlohmann/json/issues/114) - Returning any data type [\#113](https://github.com/nlohmann/json/issues/113) - Compile error with g++ 4.9.3 cygwin 64-bit [\#112](https://github.com/nlohmann/json/issues/112) - insert json array issue with gcc4.8.2 [\#110](https://github.com/nlohmann/json/issues/110) - error: unterminated raw string [\#109](https://github.com/nlohmann/json/issues/109) - vector\ copy constructor really weird [\#108](https://github.com/nlohmann/json/issues/108) - \[clang-3.6.2\] string/sstream with number to json issue [\#107](https://github.com/nlohmann/json/issues/107) - maintaining order of keys during iteration [\#106](https://github.com/nlohmann/json/issues/106) - object field accessors [\#103](https://github.com/nlohmann/json/issues/103) - v8pp and json [\#95](https://github.com/nlohmann/json/issues/95) - Wishlist [\#65](https://github.com/nlohmann/json/issues/65) - Windows/Visual Studio \(through 2013\) is unsupported [\#62](https://github.com/nlohmann/json/issues/62) - Replace sprintf with hex function, this fixes \#149 [\#153](https://github.com/nlohmann/json/pull/153) ([whackashoe](https://github.com/whackashoe)) - Fix character skipping after a surrogate pair [\#146](https://github.com/nlohmann/json/pull/146) ([robertmrk](https://github.com/robertmrk)) - Detect correctly pointer-to-const [\#137](https://github.com/nlohmann/json/pull/137) ([dariomt](https://github.com/dariomt)) - disabled "CopyAssignable" test for MSVC in Debug mode, see \#125 [\#131](https://github.com/nlohmann/json/pull/131) ([dariomt](https://github.com/dariomt)) - removed stream operator for iterator, resolution for \#125 [\#130](https://github.com/nlohmann/json/pull/130) ([dariomt](https://github.com/dariomt)) - fixed typos in comments for examples [\#129](https://github.com/nlohmann/json/pull/129) ([dariomt](https://github.com/dariomt)) - Remove superfluous inefficiency [\#126](https://github.com/nlohmann/json/pull/126) ([d-frey](https://github.com/d-frey)) - remove invalid parameter '-stdlib=libc++' in CMakeLists.txt [\#124](https://github.com/nlohmann/json/pull/124) ([emvivre](https://github.com/emvivre)) - exception-safe object creation, fixes \#118 [\#122](https://github.com/nlohmann/json/pull/122) ([d-frey](https://github.com/d-frey)) - Fix small oversight. [\#121](https://github.com/nlohmann/json/pull/121) ([ColinH](https://github.com/ColinH)) - Overload parse\(\) to accept an rvalue reference [\#120](https://github.com/nlohmann/json/pull/120) ([silverweed](https://github.com/silverweed)) - Use the right variable name in doc string [\#115](https://github.com/nlohmann/json/pull/115) ([whoshuu](https://github.com/whoshuu)) ## [v1.0.0-rc1](https://github.com/nlohmann/json/releases/tag/v1.0.0-rc1) (2015-07-26) - Finish documenting the public interface in Doxygen [\#102](https://github.com/nlohmann/json/issues/102) - Binary string causes numbers to be dumped as hex [\#101](https://github.com/nlohmann/json/issues/101) - failed to iterator json object with reverse\_iterator [\#100](https://github.com/nlohmann/json/issues/100) - 'noexcept' : unknown override specifier [\#99](https://github.com/nlohmann/json/issues/99) - json float parsing problem [\#98](https://github.com/nlohmann/json/issues/98) - Adjust wording to JSON RFC [\#97](https://github.com/nlohmann/json/issues/97) - 17 MB / 90 MB repo size!? [\#96](https://github.com/nlohmann/json/issues/96) - static analysis warnings [\#94](https://github.com/nlohmann/json/issues/94) - reverse\_iterator operator inheritance problem [\#93](https://github.com/nlohmann/json/issues/93) - init error [\#92](https://github.com/nlohmann/json/issues/92) - access by \(const\) reference [\#91](https://github.com/nlohmann/json/issues/91) - is\_integer and is\_float tests [\#90](https://github.com/nlohmann/json/issues/90) - Nonstandard integer type [\#89](https://github.com/nlohmann/json/issues/89) - static library build [\#84](https://github.com/nlohmann/json/issues/84) - lexer::get\_number return NAN [\#82](https://github.com/nlohmann/json/issues/82) - MinGW have no std::to\_string [\#80](https://github.com/nlohmann/json/issues/80) - Incorrect behaviour of basic\_json::count method [\#78](https://github.com/nlohmann/json/issues/78) - Invoking is\_array\(\) function creates "null" value [\#77](https://github.com/nlohmann/json/issues/77) - dump\(\) / parse\(\) not idempotent [\#76](https://github.com/nlohmann/json/issues/76) - Handle infinity and NaN cases [\#70](https://github.com/nlohmann/json/issues/70) - errors in g++-4.8.1 [\#68](https://github.com/nlohmann/json/issues/68) - Keys when iterating over objects [\#67](https://github.com/nlohmann/json/issues/67) - Compilation results in tons of warnings [\#64](https://github.com/nlohmann/json/issues/64) - Complete brief documentation [\#61](https://github.com/nlohmann/json/issues/61) - Double quotation mark is not parsed correctly [\#60](https://github.com/nlohmann/json/issues/60) - Get coverage back to 100% [\#58](https://github.com/nlohmann/json/issues/58) - erase elements using iterators [\#57](https://github.com/nlohmann/json/issues/57) - Removing item from array [\#56](https://github.com/nlohmann/json/issues/56) - Serialize/Deserialize like PHP? [\#55](https://github.com/nlohmann/json/issues/55) - Numbers as keys [\#54](https://github.com/nlohmann/json/issues/54) - Why are elements alphabetized on key while iterating? [\#53](https://github.com/nlohmann/json/issues/53) - Document erase, count, and iterators key and value [\#52](https://github.com/nlohmann/json/issues/52) - Do not use std::to\_string [\#51](https://github.com/nlohmann/json/issues/51) - Supported compilers [\#50](https://github.com/nlohmann/json/issues/50) - Confused about iterating through json objects [\#49](https://github.com/nlohmann/json/issues/49) - Use non-member begin/end [\#48](https://github.com/nlohmann/json/issues/48) - Erase key [\#47](https://github.com/nlohmann/json/issues/47) - Key iterator [\#46](https://github.com/nlohmann/json/issues/46) - Add count member function [\#45](https://github.com/nlohmann/json/issues/45) - Problem getting vector \(array\) of strings [\#44](https://github.com/nlohmann/json/issues/44) - Compilation error due to assuming that private=public [\#43](https://github.com/nlohmann/json/issues/43) - Use of deprecated implicit copy constructor [\#42](https://github.com/nlohmann/json/issues/42) - Printing attribute names [\#39](https://github.com/nlohmann/json/issues/39) - dumping a small number\_float just outputs 0.000000 [\#37](https://github.com/nlohmann/json/issues/37) - find is error [\#32](https://github.com/nlohmann/json/issues/32) - Avoid using spaces when encoding without pretty print [\#31](https://github.com/nlohmann/json/issues/31) - Cannot encode long numbers [\#30](https://github.com/nlohmann/json/issues/30) - segmentation fault when iterating over empty arrays/objects [\#28](https://github.com/nlohmann/json/issues/28) - Creating an empty array [\#27](https://github.com/nlohmann/json/issues/27) - Custom allocator support [\#25](https://github.com/nlohmann/json/issues/25) - make the type of the used string container customizable [\#20](https://github.com/nlohmann/json/issues/20) - Improper parsing of JSON string "\\" [\#17](https://github.com/nlohmann/json/issues/17) - create a header-only version [\#16](https://github.com/nlohmann/json/issues/16) - Don't return "const values" [\#15](https://github.com/nlohmann/json/issues/15) - Add to\_string overload for indentation [\#13](https://github.com/nlohmann/json/issues/13) - string parser does not recognize uncompliant strings [\#12](https://github.com/nlohmann/json/issues/12) - possible double-free in find function [\#11](https://github.com/nlohmann/json/issues/11) - UTF-8 encoding/deconding/testing [\#10](https://github.com/nlohmann/json/issues/10) - move code into namespace [\#9](https://github.com/nlohmann/json/issues/9) - free functions for explicit objects and arrays in initializer lists [\#8](https://github.com/nlohmann/json/issues/8) - unique\_ptr for ownership [\#7](https://github.com/nlohmann/json/issues/7) - Add unit tests [\#4](https://github.com/nlohmann/json/issues/4) - Drop C++98 support [\#3](https://github.com/nlohmann/json/issues/3) - Test case coverage [\#2](https://github.com/nlohmann/json/issues/2) - Runtime error in Travis job [\#1](https://github.com/nlohmann/json/issues/1) - Keyword 'inline' is useless when member functions are defined in headers [\#87](https://github.com/nlohmann/json/pull/87) ([ahamez](https://github.com/ahamez)) - Remove useless typename [\#86](https://github.com/nlohmann/json/pull/86) ([ahamez](https://github.com/ahamez)) - Avoid warning with Xcode's clang [\#85](https://github.com/nlohmann/json/pull/85) ([ahamez](https://github.com/ahamez)) - Fix typos [\#73](https://github.com/nlohmann/json/pull/73) ([aqnouch](https://github.com/aqnouch)) - Replace `default\_callback` function with `nullptr` and check for null… [\#72](https://github.com/nlohmann/json/pull/72) ([aburgh](https://github.com/aburgh)) - support enum [\#71](https://github.com/nlohmann/json/pull/71) ([likebeta](https://github.com/likebeta)) - Fix performance regression introduced with the parsing callback feature. [\#69](https://github.com/nlohmann/json/pull/69) ([aburgh](https://github.com/aburgh)) - Improve the implementations of the comparission-operators [\#63](https://github.com/nlohmann/json/pull/63) ([Florianjw](https://github.com/Florianjw)) - Fix compilation of json\_unit with GCC 5 [\#59](https://github.com/nlohmann/json/pull/59) ([dkopecek](https://github.com/dkopecek)) - Parse streams incrementally. [\#40](https://github.com/nlohmann/json/pull/40) ([aburgh](https://github.com/aburgh)) - Feature/small float serialization [\#38](https://github.com/nlohmann/json/pull/38) ([jrandall](https://github.com/jrandall)) - template version with re2c scanner [\#36](https://github.com/nlohmann/json/pull/36) ([nlohmann](https://github.com/nlohmann)) - more descriptive documentation in example [\#33](https://github.com/nlohmann/json/pull/33) ([luxe](https://github.com/luxe)) - Fix string conversion under Clang [\#26](https://github.com/nlohmann/json/pull/26) ([wancw](https://github.com/wancw)) - Fixed dumping of strings [\#24](https://github.com/nlohmann/json/pull/24) ([Teemperor](https://github.com/Teemperor)) - Added a remark to the readme that coverage is GCC only for now [\#23](https://github.com/nlohmann/json/pull/23) ([Teemperor](https://github.com/Teemperor)) - Unicode escaping [\#22](https://github.com/nlohmann/json/pull/22) ([Teemperor](https://github.com/Teemperor)) - Implemented the JSON spec for string parsing for everything but the \uXXXX escaping [\#21](https://github.com/nlohmann/json/pull/21) ([Teemperor](https://github.com/Teemperor)) - add the std iterator typedefs to iterator and const\_iterator [\#19](https://github.com/nlohmann/json/pull/19) ([kirkshoop](https://github.com/kirkshoop)) - Fixed escaped quotes [\#18](https://github.com/nlohmann/json/pull/18) ([Teemperor](https://github.com/Teemperor)) - Fix double delete on std::bad\_alloc exception [\#14](https://github.com/nlohmann/json/pull/14) ([elliotgoodrich](https://github.com/elliotgoodrich)) - Added CMake and lcov [\#6](https://github.com/nlohmann/json/pull/6) ([Teemperor](https://github.com/Teemperor)) - Version 2.0 [\#5](https://github.com/nlohmann/json/pull/5) ([nlohmann](https://github.com/nlohmann)) \* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)*sqlitebrowser-3.12.1/libs/json/LICENSE.MIT000066400000000000000000000020641374246124700200560ustar00rootroot00000000000000MIT License Copyright (c) 2013-2018 Niels Lohmann Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. sqlitebrowser-3.12.1/libs/json/README.md000066400000000000000000002335201374246124700177030ustar00rootroot00000000000000[![JSON for Modern C++](https://raw.githubusercontent.com/nlohmann/json/master/doc/json.gif)](https://github.com/nlohmann/json/releases) [![Build Status](https://travis-ci.org/nlohmann/json.svg?branch=master)](https://travis-ci.org/nlohmann/json) [![Build Status](https://ci.appveyor.com/api/projects/status/1acb366xfyg3qybk/branch/develop?svg=true)](https://ci.appveyor.com/project/nlohmann/json) [![Build Status](https://circleci.com/gh/nlohmann/json.svg?style=svg)](https://circleci.com/gh/nlohmann/json) [![Coverage Status](https://img.shields.io/coveralls/nlohmann/json.svg)](https://coveralls.io/r/nlohmann/json) [![Coverity Scan Build Status](https://scan.coverity.com/projects/5550/badge.svg)](https://scan.coverity.com/projects/nlohmann-json) [![Codacy Badge](https://api.codacy.com/project/badge/Grade/f3732b3327e34358a0e9d1fe9f661f08)](https://www.codacy.com/app/nlohmann/json?utm_source=github.com&utm_medium=referral&utm_content=nlohmann/json&utm_campaign=Badge_Grade) [![Language grade: C/C++](https://img.shields.io/lgtm/grade/cpp/g/nlohmann/json.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/nlohmann/json/context:cpp) [![Fuzzing Status](https://oss-fuzz-build-logs.storage.googleapis.com/badges/json.svg)](https://bugs.chromium.org/p/oss-fuzz/issues/list?sort=-opened&can=1&q=proj:json) [![Try online](https://img.shields.io/badge/try-online-blue.svg)](https://wandbox.org/permlink/TarF5pPn9NtHQjhf) [![Documentation](https://img.shields.io/badge/docs-doxygen-blue.svg)](http://nlohmann.github.io/json) [![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://raw.githubusercontent.com/nlohmann/json/master/LICENSE.MIT) [![GitHub Releases](https://img.shields.io/github/release/nlohmann/json.svg)](https://github.com/nlohmann/json/releases) [![GitHub Issues](https://img.shields.io/github/issues/nlohmann/json.svg)](http://github.com/nlohmann/json/issues) [![Average time to resolve an issue](http://isitmaintained.com/badge/resolution/nlohmann/json.svg)](http://isitmaintained.com/project/nlohmann/json "Average time to resolve an issue") [![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/289/badge)](https://bestpractices.coreinfrastructure.org/projects/289) - [Design goals](#design-goals) - [Integration](#integration) - [CMake](#cmake) - [Package Managers](#package-managers) - [Examples](#examples) - [JSON as first-class data type](#json-as-first-class-data-type) - [Serialization / Deserialization](#serialization--deserialization) - [STL-like access](#stl-like-access) - [Conversion from STL containers](#conversion-from-stl-containers) - [JSON Pointer and JSON Patch](#json-pointer-and-json-patch) - [JSON Merge Patch](#json-merge-patch) - [Implicit conversions](#implicit-conversions) - [Conversions to/from arbitrary types](#arbitrary-types-conversions) - [Specializing enum conversion](#specializing-enum-conversion) - [Binary formats (BSON, CBOR, MessagePack, and UBJSON)](#binary-formats-bson-cbor-messagepack-and-ubjson) - [Supported compilers](#supported-compilers) - [License](#license) - [Contact](#contact) - [Thanks](#thanks) - [Used third-party tools](#used-third-party-tools) - [Projects using JSON for Modern C++](#projects-using-json-for-modern-c) - [Notes](#notes) - [Execute unit tests](#execute-unit-tests) ## Design goals There are myriads of [JSON](http://json.org) libraries out there, and each may even have its reason to exist. Our class had these design goals: - **Intuitive syntax**. In languages such as Python, JSON feels like a first class data type. We used all the operator magic of modern C++ to achieve the same feeling in your code. Check out the [examples below](#examples) and you'll know what I mean. - **Trivial integration**. Our whole code consists of a single header file [`json.hpp`](https://github.com/nlohmann/json/blob/develop/single_include/nlohmann/json.hpp). That's it. No library, no subproject, no dependencies, no complex build system. The class is written in vanilla C++11. All in all, everything should require no adjustment of your compiler flags or project settings. - **Serious testing**. Our class is heavily [unit-tested](https://github.com/nlohmann/json/tree/develop/test/src) and covers [100%](https://coveralls.io/r/nlohmann/json) of the code, including all exceptional behavior. Furthermore, we checked with [Valgrind](http://valgrind.org) and the [Clang Sanitizers](https://clang.llvm.org/docs/index.html) that there are no memory leaks. [Google OSS-Fuzz](https://github.com/google/oss-fuzz/tree/master/projects/json) additionally runs fuzz tests against all parsers 24/7, effectively executing billions of tests so far. To maintain high quality, the project is following the [Core Infrastructure Initiative (CII) best practices](https://bestpractices.coreinfrastructure.org/projects/289). Other aspects were not so important to us: - **Memory efficiency**. Each JSON object has an overhead of one pointer (the maximal size of a union) and one enumeration element (1 byte). The default generalization uses the following C++ data types: `std::string` for strings, `int64_t`, `uint64_t` or `double` for numbers, `std::map` for objects, `std::vector` for arrays, and `bool` for Booleans. However, you can template the generalized class `basic_json` to your needs. - **Speed**. There are certainly [faster JSON libraries](https://github.com/miloyip/nativejson-benchmark#parsing-time) out there. However, if your goal is to speed up your development by adding JSON support with a single header, then this library is the way to go. If you know how to use a `std::vector` or `std::map`, you are already set. See the [contribution guidelines](https://github.com/nlohmann/json/blob/master/.github/CONTRIBUTING.md#please-dont) for more information. ## Integration [`json.hpp`](https://github.com/nlohmann/json/blob/develop/single_include/nlohmann/json.hpp) is the single required file in `single_include/nlohmann` or [released here](https://github.com/nlohmann/json/releases). You need to add ```cpp #include // for convenience using json = nlohmann::json; ``` to the files you want to process JSON and set the necessary switches to enable C++11 (e.g., `-std=c++11` for GCC and Clang). You can further use file [`include/nlohmann/json_fwd.hpp`](https://github.com/nlohmann/json/blob/develop/include/nlohmann/json_fwd.hpp) for forward-declarations. The installation of json_fwd.hpp (as part of cmake's install step), can be achieved by setting `-DJSON_MultipleHeaders=ON`. ### CMake You can also use the `nlohmann_json::nlohmann_json` interface target in CMake. This target populates the appropriate usage requirements for `INTERFACE_INCLUDE_DIRECTORIES` to point to the appropriate include directories and `INTERFACE_COMPILE_FEATURES` for the necessary C++11 flags. #### External To use this library from a CMake project, you can locate it directly with `find_package()` and use the namespaced imported target from the generated package configuration: ```cmake # CMakeLists.txt find_package(nlohmann_json 3.2.0 REQUIRED) ... add_library(foo ...) ... target_link_libraries(foo PRIVATE nlohmann_json::nlohmann_json) ``` The package configuration file, `nlohmann_jsonConfig.cmake`, can be used either from an install tree or directly out of the build tree. #### Embedded To embed the library directly into an existing CMake project, place the entire source tree in a subdirectory and call `add_subdirectory()` in your `CMakeLists.txt` file: ```cmake # Typically you don't care so much for a third party library's tests to be # run from your own project's code. set(JSON_BuildTests OFF CACHE INTERNAL "") # If you only include this third party in PRIVATE source files, you do not # need to install it when your main project gets installed. # set(JSON_Install OFF CACHE INTERNAL "") # Don't use include(nlohmann_json/CMakeLists.txt) since that carries with it # unintended consequences that will break the build. It's generally # discouraged (although not necessarily well documented as such) to use # include(...) for pulling in other CMake projects anyways. add_subdirectory(nlohmann_json) ... add_library(foo ...) ... target_link_libraries(foo PRIVATE nlohmann_json::nlohmann_json) ``` #### Supporting Both To allow your project to support either an externally supplied or an embedded JSON library, you can use a pattern akin to the following: ``` cmake # Top level CMakeLists.txt project(FOO) ... option(FOO_USE_EXTERNAL_JSON "Use an external JSON library" OFF) ... add_subdirectory(thirdparty) ... add_library(foo ...) ... # Note that the namespaced target will always be available regardless of the # import method target_link_libraries(foo PRIVATE nlohmann_json::nlohmann_json) ``` ```cmake # thirdparty/CMakeLists.txt ... if(FOO_USE_EXTERNAL_JSON) find_package(nlohmann_json 3.2.0 REQUIRED) else() set(JSON_BuildTests OFF CACHE INTERNAL "") add_subdirectory(nlohmann_json) endif() ... ``` `thirdparty/nlohmann_json` is then a complete copy of this source tree. ### Package Managers :beer: If you are using OS X and [Homebrew](http://brew.sh), just type `brew tap nlohmann/json` and `brew install nlohmann-json` and you're set. If you want the bleeding edge rather than the latest release, use `brew install nlohmann-json --HEAD`. If you are using the [Meson Build System](http://mesonbuild.com), add this source tree as a [meson subproject](https://mesonbuild.com/Subprojects.html#using-a-subproject). You may also use the `include.zip` published in this project's [Releases](https://github.com/nlohmann/json/releases) to reduce the size of the vendored source tree. Alternatively, you can get a wrap file by downloading it from [Meson WrapDB](https://wrapdb.mesonbuild.com/nlohmann_json), or simply use `meson wrap install nlohmann_json`. Please see the meson project for any issues regarding the packaging. The provided meson.build can also be used as an alternative to cmake for installing `nlohmann_json` system-wide in which case a pkg-config file is installed. To use it, simply have your build system require the `nlohmann_json` pkg-config dependency. In Meson, it is preferred to use the [`dependency()`](https://mesonbuild.com/Reference-manual.html#dependency) object with a subproject fallback, rather than using the subproject directly. If you are using [Conan](https://www.conan.io/) to manage your dependencies, merely add `jsonformoderncpp/x.y.z@vthiery/stable` to your `conanfile.py`'s requires, where `x.y.z` is the release version you want to use. Please file issues [here](https://github.com/vthiery/conan-jsonformoderncpp/issues) if you experience problems with the packages. If you are using [Spack](https://www.spack.io/) to manage your dependencies, you can use the [`nlohmann-json` package](https://spack.readthedocs.io/en/latest/package_list.html#nlohmann-json). Please see the [spack project](https://github.com/spack/spack) for any issues regarding the packaging. If you are using [hunter](https://github.com/ruslo/hunter/) on your project for external dependencies, then you can use the [nlohmann_json package](https://docs.hunter.sh/en/latest/packages/pkg/nlohmann_json.html). Please see the hunter project for any issues regarding the packaging. If you are using [Buckaroo](https://buckaroo.pm), you can install this library's module with `buckaroo add github.com/buckaroo-pm/nlohmann-json`. Please file issues [here](https://github.com/buckaroo-pm/nlohmann-json). There is a demo repo [here](https://github.com/njlr/buckaroo-nholmann-json-example). If you are using [vcpkg](https://github.com/Microsoft/vcpkg/) on your project for external dependencies, then you can use the [nlohmann-json package](https://github.com/Microsoft/vcpkg/tree/master/ports/nlohmann-json). Please see the vcpkg project for any issues regarding the packaging. If you are using [cget](http://cget.readthedocs.io/en/latest/), you can install the latest development version with `cget install nlohmann/json`. A specific version can be installed with `cget install nlohmann/json@v3.1.0`. Also, the multiple header version can be installed by adding the `-DJSON_MultipleHeaders=ON` flag (i.e., `cget install nlohmann/json -DJSON_MultipleHeaders=ON`). If you are using [CocoaPods](https://cocoapods.org), you can use the library by adding pod `"nlohmann_json", '~>3.1.2'` to your podfile (see [an example](https://bitbucket.org/benman/nlohmann_json-cocoapod/src/master/)). Please file issues [here](https://bitbucket.org/benman/nlohmann_json-cocoapod/issues?status=new&status=open). If you are using [NuGet](https://www.nuget.org), you can use the package [nlohmann.json](https://www.nuget.org/packages/nlohmann.json/). Please check [this extensive description](https://github.com/nlohmann/json/issues/1132#issuecomment-452250255) on how to use the package. Please files issues [here](https://github.com/hnkb/nlohmann-json-nuget/issues). If you are using [conda](https://conda.io/), you can use the package [nlohmann_json](https://github.com/conda-forge/nlohmann_json-feedstock) from [conda-forge](https://conda-forge.org) executing `conda install -c conda-forge nlohmann_json`. Please file issues [here](https://github.com/conda-forge/nlohmann_json-feedstock/issues). If you are using [MSYS2](http://www.msys2.org/), your can use the [mingw-w64-nlohmann_json](https://packages.msys2.org/base/mingw-w64-nlohmann_json) package, just type `pacman -S mingw-w64-i686-nlohmann_json` or `pacman -S mingw-w64-x86_64-nlohmann_json` for installation. Please file issues [here](https://github.com/msys2/MINGW-packages/issues/new?title=%5Bnlohmann_json%5D) if you experience problems with the packages. ## Examples Beside the examples below, you may want to check the [documentation](https://nlohmann.github.io/json/) where each function contains a separate code example (e.g., check out [`emplace()`](https://nlohmann.github.io/json/classnlohmann_1_1basic__json_a5338e282d1d02bed389d852dd670d98d.html#a5338e282d1d02bed389d852dd670d98d)). All [example files](https://github.com/nlohmann/json/tree/develop/doc/examples) can be compiled and executed on their own (e.g., file [emplace.cpp](https://github.com/nlohmann/json/blob/develop/doc/examples/emplace.cpp)). ### JSON as first-class data type Here are some examples to give you an idea how to use the class. Assume you want to create the JSON object ```json { "pi": 3.141, "happy": true, "name": "Niels", "nothing": null, "answer": { "everything": 42 }, "list": [1, 0, 2], "object": { "currency": "USD", "value": 42.99 } } ``` With this library, you could write: ```cpp // create an empty structure (null) json j; // add a number that is stored as double (note the implicit conversion of j to an object) j["pi"] = 3.141; // add a Boolean that is stored as bool j["happy"] = true; // add a string that is stored as std::string j["name"] = "Niels"; // add another null object by passing nullptr j["nothing"] = nullptr; // add an object inside the object j["answer"]["everything"] = 42; // add an array that is stored as std::vector (using an initializer list) j["list"] = { 1, 0, 2 }; // add another object (using an initializer list of pairs) j["object"] = { {"currency", "USD"}, {"value", 42.99} }; // instead, you could also write (which looks very similar to the JSON above) json j2 = { {"pi", 3.141}, {"happy", true}, {"name", "Niels"}, {"nothing", nullptr}, {"answer", { {"everything", 42} }}, {"list", {1, 0, 2}}, {"object", { {"currency", "USD"}, {"value", 42.99} }} }; ``` Note that in all these cases, you never need to "tell" the compiler which JSON value type you want to use. If you want to be explicit or express some edge cases, the functions [`json::array()`](https://nlohmann.github.io/json/classnlohmann_1_1basic__json_a9ad7ec0bc1082ed09d10900fbb20a21f.html#a9ad7ec0bc1082ed09d10900fbb20a21f) and [`json::object()`](https://nlohmann.github.io/json/classnlohmann_1_1basic__json_aaf509a7c029100d292187068f61c99b8.html#aaf509a7c029100d292187068f61c99b8) will help: ```cpp // a way to express the empty array [] json empty_array_explicit = json::array(); // ways to express the empty object {} json empty_object_implicit = json({}); json empty_object_explicit = json::object(); // a way to express an _array_ of key/value pairs [["currency", "USD"], ["value", 42.99]] json array_not_object = json::array({ {"currency", "USD"}, {"value", 42.99} }); ``` ### Serialization / Deserialization #### To/from strings You can create a JSON value (deserialization) by appending `_json` to a string literal: ```cpp // create object from string literal json j = "{ \"happy\": true, \"pi\": 3.141 }"_json; // or even nicer with a raw string literal auto j2 = R"( { "happy": true, "pi": 3.141 } )"_json; ``` Note that without appending the `_json` suffix, the passed string literal is not parsed, but just used as JSON string value. That is, `json j = "{ \"happy\": true, \"pi\": 3.141 }"` would just store the string `"{ "happy": true, "pi": 3.141 }"` rather than parsing the actual object. The above example can also be expressed explicitly using [`json::parse()`](https://nlohmann.github.io/json/classnlohmann_1_1basic__json_afd4ef1ac8ad50a5894a9afebca69140a.html#afd4ef1ac8ad50a5894a9afebca69140a): ```cpp // parse explicitly auto j3 = json::parse("{ \"happy\": true, \"pi\": 3.141 }"); ``` You can also get a string representation of a JSON value (serialize): ```cpp // explicit conversion to string std::string s = j.dump(); // {\"happy\":true,\"pi\":3.141} // serialization with pretty printing // pass in the amount of spaces to indent std::cout << j.dump(4) << std::endl; // { // "happy": true, // "pi": 3.141 // } ``` Note the difference between serialization and assignment: ```cpp // store a string in a JSON value json j_string = "this is a string"; // retrieve the string value auto cpp_string = j_string.get(); // retrieve the string value (alternative when an variable already exists) std::string cpp_string2; j_string.get_to(cpp_string2); // retrieve the serialized value (explicit JSON serialization) std::string serialized_string = j_string.dump(); // output of original string std::cout << cpp_string << " == " << cpp_string2 << " == " << j_string.get() << '\n'; // output of serialized value std::cout << j_string << " == " << serialized_string << std::endl; ``` [`.dump()`](https://nlohmann.github.io/json/classnlohmann_1_1basic__json_a50ec80b02d0f3f51130d4abb5d1cfdc5.html#a50ec80b02d0f3f51130d4abb5d1cfdc5) always returns the serialized value, and [`.get()`](https://nlohmann.github.io/json/classnlohmann_1_1basic__json_aa6602bb24022183ab989439e19345d08.html#aa6602bb24022183ab989439e19345d08) returns the originally stored string value. Note the library only supports UTF-8. When you store strings with different encodings in the library, calling [`dump()`](https://nlohmann.github.io/json/classnlohmann_1_1basic__json_a50ec80b02d0f3f51130d4abb5d1cfdc5.html#a50ec80b02d0f3f51130d4abb5d1cfdc5) may throw an exception unless `json::error_handler_t::replace` or `json::error_handler_t::ignore` are used as error handlers. #### To/from streams (e.g. files, string streams) You can also use streams to serialize and deserialize: ```cpp // deserialize from standard input json j; std::cin >> j; // serialize to standard output std::cout << j; // the setw manipulator was overloaded to set the indentation for pretty printing std::cout << std::setw(4) << j << std::endl; ``` These operators work for any subclasses of `std::istream` or `std::ostream`. Here is the same example with files: ```cpp // read a JSON file std::ifstream i("file.json"); json j; i >> j; // write prettified JSON to another file std::ofstream o("pretty.json"); o << std::setw(4) << j << std::endl; ``` Please note that setting the exception bit for `failbit` is inappropriate for this use case. It will result in program termination due to the `noexcept` specifier in use. #### Read from iterator range You can also parse JSON from an iterator range; that is, from any container accessible by iterators whose content is stored as contiguous byte sequence, for instance a `std::vector`: ```cpp std::vector v = {'t', 'r', 'u', 'e'}; json j = json::parse(v.begin(), v.end()); ``` You may leave the iterators for the range [begin, end): ```cpp std::vector v = {'t', 'r', 'u', 'e'}; json j = json::parse(v); ``` #### SAX interface The library uses a SAX-like interface with the following functions: ```cpp // called when null is parsed bool null(); // called when a boolean is parsed; value is passed bool boolean(bool val); // called when a signed or unsigned integer number is parsed; value is passed bool number_integer(number_integer_t val); bool number_unsigned(number_unsigned_t val); // called when a floating-point number is parsed; value and original string is passed bool number_float(number_float_t val, const string_t& s); // called when a string is parsed; value is passed and can be safely moved away bool string(string_t& val); // called when an object or array begins or ends, resp. The number of elements is passed (or -1 if not known) bool start_object(std::size_t elements); bool end_object(); bool start_array(std::size_t elements); bool end_array(); // called when an object key is parsed; value is passed and can be safely moved away bool key(string_t& val); // called when a parse error occurs; byte position, the last token, and an exception is passed bool parse_error(std::size_t position, const std::string& last_token, const detail::exception& ex); ``` The return value of each function determines whether parsing should proceed. To implement your own SAX handler, proceed as follows: 1. Implement the SAX interface in a class. You can use class `nlohmann::json_sax` as base class, but you can also use any class where the functions described above are implemented and public. 2. Create an object of your SAX interface class, e.g. `my_sax`. 3. Call `bool json::sax_parse(input, &my_sax)`; where the first parameter can be any input like a string or an input stream and the second parameter is a pointer to your SAX interface. Note the `sax_parse` function only returns a `bool` indicating the result of the last executed SAX event. It does not return a `json` value - it is up to you to decide what to do with the SAX events. Furthermore, no exceptions are thrown in case of a parse error - it is up to you what to do with the exception object passed to your `parse_error` implementation. Internally, the SAX interface is used for the DOM parser (class `json_sax_dom_parser`) as well as the acceptor (`json_sax_acceptor`), see file [`json_sax.hpp`](https://github.com/nlohmann/json/blob/develop/include/nlohmann/detail/input/json_sax.hpp). ### STL-like access We designed the JSON class to behave just like an STL container. In fact, it satisfies the [**ReversibleContainer**](https://en.cppreference.com/w/cpp/named_req/ReversibleContainer) requirement. ```cpp // create an array using push_back json j; j.push_back("foo"); j.push_back(1); j.push_back(true); // also use emplace_back j.emplace_back(1.78); // iterate the array for (json::iterator it = j.begin(); it != j.end(); ++it) { std::cout << *it << '\n'; } // range-based for for (auto& element : j) { std::cout << element << '\n'; } // getter/setter const auto tmp = j[0].get(); j[1] = 42; bool foo = j.at(2); // comparison j == "[\"foo\", 1, true]"_json; // true // other stuff j.size(); // 3 entries j.empty(); // false j.type(); // json::value_t::array j.clear(); // the array is empty again // convenience type checkers j.is_null(); j.is_boolean(); j.is_number(); j.is_object(); j.is_array(); j.is_string(); // create an object json o; o["foo"] = 23; o["bar"] = false; o["baz"] = 3.141; // also use emplace o.emplace("weather", "sunny"); // special iterator member functions for objects for (json::iterator it = o.begin(); it != o.end(); ++it) { std::cout << it.key() << " : " << it.value() << "\n"; } // the same code as range for for (auto& el : o.items()) { std::cout << el.key() << " : " << el.value() << "\n"; } // even easier with structured bindings (C++17) for (auto& [key, value] : o.items()) { std::cout << key << " : " << value << "\n"; } // find an entry if (o.find("foo") != o.end()) { // there is an entry with key "foo" } // or simpler using count() int foo_present = o.count("foo"); // 1 int fob_present = o.count("fob"); // 0 // delete an entry o.erase("foo"); ``` ### Conversion from STL containers Any sequence container (`std::array`, `std::vector`, `std::deque`, `std::forward_list`, `std::list`) whose values can be used to construct JSON values (e.g., integers, floating point numbers, Booleans, string types, or again STL containers described in this section) can be used to create a JSON array. The same holds for similar associative containers (`std::set`, `std::multiset`, `std::unordered_set`, `std::unordered_multiset`), but in these cases the order of the elements of the array depends on how the elements are ordered in the respective STL container. ```cpp std::vector c_vector {1, 2, 3, 4}; json j_vec(c_vector); // [1, 2, 3, 4] std::deque c_deque {1.2, 2.3, 3.4, 5.6}; json j_deque(c_deque); // [1.2, 2.3, 3.4, 5.6] std::list c_list {true, true, false, true}; json j_list(c_list); // [true, true, false, true] std::forward_list c_flist {12345678909876, 23456789098765, 34567890987654, 45678909876543}; json j_flist(c_flist); // [12345678909876, 23456789098765, 34567890987654, 45678909876543] std::array c_array {{1, 2, 3, 4}}; json j_array(c_array); // [1, 2, 3, 4] std::set c_set {"one", "two", "three", "four", "one"}; json j_set(c_set); // only one entry for "one" is used // ["four", "one", "three", "two"] std::unordered_set c_uset {"one", "two", "three", "four", "one"}; json j_uset(c_uset); // only one entry for "one" is used // maybe ["two", "three", "four", "one"] std::multiset c_mset {"one", "two", "one", "four"}; json j_mset(c_mset); // both entries for "one" are used // maybe ["one", "two", "one", "four"] std::unordered_multiset c_umset {"one", "two", "one", "four"}; json j_umset(c_umset); // both entries for "one" are used // maybe ["one", "two", "one", "four"] ``` Likewise, any associative key-value containers (`std::map`, `std::multimap`, `std::unordered_map`, `std::unordered_multimap`) whose keys can construct an `std::string` and whose values can be used to construct JSON values (see examples above) can be used to create a JSON object. Note that in case of multimaps only one key is used in the JSON object and the value depends on the internal order of the STL container. ```cpp std::map c_map { {"one", 1}, {"two", 2}, {"three", 3} }; json j_map(c_map); // {"one": 1, "three": 3, "two": 2 } std::unordered_map c_umap { {"one", 1.2}, {"two", 2.3}, {"three", 3.4} }; json j_umap(c_umap); // {"one": 1.2, "two": 2.3, "three": 3.4} std::multimap c_mmap { {"one", true}, {"two", true}, {"three", false}, {"three", true} }; json j_mmap(c_mmap); // only one entry for key "three" is used // maybe {"one": true, "two": true, "three": true} std::unordered_multimap c_ummap { {"one", true}, {"two", true}, {"three", false}, {"three", true} }; json j_ummap(c_ummap); // only one entry for key "three" is used // maybe {"one": true, "two": true, "three": true} ``` ### JSON Pointer and JSON Patch The library supports **JSON Pointer** ([RFC 6901](https://tools.ietf.org/html/rfc6901)) as alternative means to address structured values. On top of this, **JSON Patch** ([RFC 6902](https://tools.ietf.org/html/rfc6902)) allows to describe differences between two JSON values - effectively allowing patch and diff operations known from Unix. ```cpp // a JSON value json j_original = R"({ "baz": ["one", "two", "three"], "foo": "bar" })"_json; // access members with a JSON pointer (RFC 6901) j_original["/baz/1"_json_pointer]; // "two" // a JSON patch (RFC 6902) json j_patch = R"([ { "op": "replace", "path": "/baz", "value": "boo" }, { "op": "add", "path": "/hello", "value": ["world"] }, { "op": "remove", "path": "/foo"} ])"_json; // apply the patch json j_result = j_original.patch(j_patch); // { // "baz": "boo", // "hello": ["world"] // } // calculate a JSON patch from two JSON values json::diff(j_result, j_original); // [ // { "op":" replace", "path": "/baz", "value": ["one", "two", "three"] }, // { "op": "remove","path": "/hello" }, // { "op": "add", "path": "/foo", "value": "bar" } // ] ``` ### JSON Merge Patch The library supports **JSON Merge Patch** ([RFC 7386](https://tools.ietf.org/html/rfc7386)) as a patch format. Instead of using JSON Pointer (see above) to specify values to be manipulated, it describes the changes using a syntax that closely mimics the document being modified. ```cpp // a JSON value json j_document = R"({ "a": "b", "c": { "d": "e", "f": "g" } })"_json; // a patch json j_patch = R"({ "a":"z", "c": { "f": null } })"_json; // apply the patch j_document.merge_patch(j_patch); // { // "a": "z", // "c": { // "d": "e" // } // } ``` ### Implicit conversions Supported types can be implicitly converted to JSON values. It is recommended to **NOT USE** implicit conversions **FROM** a JSON value. You can find more details about this recommendation [here](https://www.github.com/nlohmann/json/issues/958). ```cpp // strings std::string s1 = "Hello, world!"; json js = s1; auto s2 = js.get(); // NOT RECOMMENDED std::string s3 = js; std::string s4; s4 = js; // Booleans bool b1 = true; json jb = b1; auto b2 = jb.get(); // NOT RECOMMENDED bool b3 = jb; bool b4; b4 = jb; // numbers int i = 42; json jn = i; auto f = jn.get(); // NOT RECOMMENDED double f2 = jb; double f3; f3 = jb; // etc. ``` Note that `char` types are not automatically converted to JSON strings, but to integer numbers. A conversion to a string must be specified explicitly: ```cpp char ch = 'A'; // ASCII value 65 json j_default = ch; // stores integer number 65 json j_string = std::string(1, ch); // stores string "A" ``` ### Arbitrary types conversions Every type can be serialized in JSON, not just STL containers and scalar types. Usually, you would do something along those lines: ```cpp namespace ns { // a simple struct to model a person struct person { std::string name; std::string address; int age; }; } ns::person p = {"Ned Flanders", "744 Evergreen Terrace", 60}; // convert to JSON: copy each value into the JSON object json j; j["name"] = p.name; j["address"] = p.address; j["age"] = p.age; // ... // convert from JSON: copy each value from the JSON object ns::person p { j["name"].get(), j["address"].get(), j["age"].get() }; ``` It works, but that's quite a lot of boilerplate... Fortunately, there's a better way: ```cpp // create a person ns::person p {"Ned Flanders", "744 Evergreen Terrace", 60}; // conversion: person -> json json j = p; std::cout << j << std::endl; // {"address":"744 Evergreen Terrace","age":60,"name":"Ned Flanders"} // conversion: json -> person auto p2 = j.get(); // that's it assert(p == p2); ``` #### Basic usage To make this work with one of your types, you only need to provide two functions: ```cpp using nlohmann::json; namespace ns { void to_json(json& j, const person& p) { j = json{{"name", p.name}, {"address", p.address}, {"age", p.age}}; } void from_json(const json& j, person& p) { j.at("name").get_to(p.name); j.at("address").get_to(p.address); j.at("age").get_to(p.age); } } // namespace ns ``` That's all! When calling the `json` constructor with your type, your custom `to_json` method will be automatically called. Likewise, when calling `get()` or `get_to(your_type&)`, the `from_json` method will be called. Some important things: * Those methods **MUST** be in your type's namespace (which can be the global namespace), or the library will not be able to locate them (in this example, they are in namespace `ns`, where `person` is defined). * Those methods **MUST** be available (e.g., proper headers must be included) everywhere you use these conversions. Look at [issue 1108](https://github.com/nlohmann/json/issues/1108) for errors that may occur otherwise. * When using `get()`, `your_type` **MUST** be [DefaultConstructible](https://en.cppreference.com/w/cpp/named_req/DefaultConstructible). (There is a way to bypass this requirement described later.) * In function `from_json`, use function [`at()`](https://nlohmann.github.io/json/classnlohmann_1_1basic__json_a93403e803947b86f4da2d1fb3345cf2c.html#a93403e803947b86f4da2d1fb3345cf2c) to access the object values rather than `operator[]`. In case a key does not exist, `at` throws an exception that you can handle, whereas `operator[]` exhibits undefined behavior. * You do not need to add serializers or deserializers for STL types like `std::vector`: the library already implements these. #### How do I convert third-party types? This requires a bit more advanced technique. But first, let's see how this conversion mechanism works: The library uses **JSON Serializers** to convert types to json. The default serializer for `nlohmann::json` is `nlohmann::adl_serializer` (ADL means [Argument-Dependent Lookup](https://en.cppreference.com/w/cpp/language/adl)). It is implemented like this (simplified): ```cpp template struct adl_serializer { static void to_json(json& j, const T& value) { // calls the "to_json" method in T's namespace } static void from_json(const json& j, T& value) { // same thing, but with the "from_json" method } }; ``` This serializer works fine when you have control over the type's namespace. However, what about `boost::optional` or `std::filesystem::path` (C++17)? Hijacking the `boost` namespace is pretty bad, and it's illegal to add something other than template specializations to `std`... To solve this, you need to add a specialization of `adl_serializer` to the `nlohmann` namespace, here's an example: ```cpp // partial specialization (full specialization works too) namespace nlohmann { template struct adl_serializer> { static void to_json(json& j, const boost::optional& opt) { if (opt == boost::none) { j = nullptr; } else { j = *opt; // this will call adl_serializer::to_json which will // find the free function to_json in T's namespace! } } static void from_json(const json& j, boost::optional& opt) { if (j.is_null()) { opt = boost::none; } else { opt = j.get(); // same as above, but with // adl_serializer::from_json } } }; } ``` #### How can I use `get()` for non-default constructible/non-copyable types? There is a way, if your type is [MoveConstructible](https://en.cppreference.com/w/cpp/named_req/MoveConstructible). You will need to specialize the `adl_serializer` as well, but with a special `from_json` overload: ```cpp struct move_only_type { move_only_type() = delete; move_only_type(int ii): i(ii) {} move_only_type(const move_only_type&) = delete; move_only_type(move_only_type&&) = default; int i; }; namespace nlohmann { template <> struct adl_serializer { // note: the return type is no longer 'void', and the method only takes // one argument static move_only_type from_json(const json& j) { return {j.get()}; } // Here's the catch! You must provide a to_json method! Otherwise you // will not be able to convert move_only_type to json, since you fully // specialized adl_serializer on that type static void to_json(json& j, move_only_type t) { j = t.i; } }; } ``` #### Can I write my own serializer? (Advanced use) Yes. You might want to take a look at [`unit-udt.cpp`](https://github.com/nlohmann/json/blob/develop/test/src/unit-udt.cpp) in the test suite, to see a few examples. If you write your own serializer, you'll need to do a few things: - use a different `basic_json` alias than `nlohmann::json` (the last template parameter of `basic_json` is the `JSONSerializer`) - use your `basic_json` alias (or a template parameter) in all your `to_json`/`from_json` methods - use `nlohmann::to_json` and `nlohmann::from_json` when you need ADL Here is an example, without simplifications, that only accepts types with a size <= 32, and uses ADL. ```cpp // You should use void as a second template argument // if you don't need compile-time checks on T template::type> struct less_than_32_serializer { template static void to_json(BasicJsonType& j, T value) { // we want to use ADL, and call the correct to_json overload using nlohmann::to_json; // this method is called by adl_serializer, // this is where the magic happens to_json(j, value); } template static void from_json(const BasicJsonType& j, T& value) { // same thing here using nlohmann::from_json; from_json(j, value); } }; ``` Be **very** careful when reimplementing your serializer, you can stack overflow if you don't pay attention: ```cpp template struct bad_serializer { template static void to_json(BasicJsonType& j, const T& value) { // this calls BasicJsonType::json_serializer::to_json(j, value); // if BasicJsonType::json_serializer == bad_serializer ... oops! j = value; } template static void to_json(const BasicJsonType& j, T& value) { // this calls BasicJsonType::json_serializer::from_json(j, value); // if BasicJsonType::json_serializer == bad_serializer ... oops! value = j.template get(); // oops! } }; ``` ### Specializing enum conversion By default, enum values are serialized to JSON as integers. In some cases this could result in undesired behavior. If an enum is modified or re-ordered after data has been serialized to JSON, the later de-serialized JSON data may be undefined or a different enum value than was originally intended. It is possible to more precisely specify how a given enum is mapped to and from JSON as shown below: ```cpp // example enum type declaration enum TaskState { TS_STOPPED, TS_RUNNING, TS_COMPLETED, TS_INVALID=-1, }; // map TaskState values to JSON as strings NLOHMANN_JSON_SERIALIZE_ENUM( TaskState, { {TS_INVALID, nullptr}, {TS_STOPPED, "stopped"}, {TS_RUNNING, "running"}, {TS_COMPLETED, "completed"}, }) ``` The `NLOHMANN_JSON_SERIALIZE_ENUM()` macro declares a set of `to_json()` / `from_json()` functions for type `TaskState` while avoiding repetition and boilerplate serialization code. **Usage:** ```cpp // enum to JSON as string json j = TS_STOPPED; assert(j == "stopped"); // json string to enum json j3 = "running"; assert(j3.get() == TS_RUNNING); // undefined json value to enum (where the first map entry above is the default) json jPi = 3.14; assert(jPi.get() == TS_INVALID ); ``` Just as in [Arbitrary Type Conversions](#arbitrary-types-conversions) above, - `NLOHMANN_JSON_SERIALIZE_ENUM()` MUST be declared in your enum type's namespace (which can be the global namespace), or the library will not be able to locate it and it will default to integer serialization. - It MUST be available (e.g., proper headers must be included) everywhere you use the conversions. Other Important points: - When using `get()`, undefined JSON values will default to the first pair specified in your map. Select this default pair carefully. - If an enum or JSON value is specified more than once in your map, the first matching occurrence from the top of the map will be returned when converting to or from JSON. ### Binary formats (BSON, CBOR, MessagePack, and UBJSON) Though JSON is a ubiquitous data format, it is not a very compact format suitable for data exchange, for instance over a network. Hence, the library supports [BSON](http://bsonspec.org) (Binary JSON), [CBOR](http://cbor.io) (Concise Binary Object Representation), [MessagePack](http://msgpack.org), and [UBJSON](http://ubjson.org) (Universal Binary JSON Specification) to efficiently encode JSON values to byte vectors and to decode such vectors. ```cpp // create a JSON value json j = R"({"compact": true, "schema": 0})"_json; // serialize to BSON std::vector v_bson = json::to_bson(j); // 0x1B, 0x00, 0x00, 0x00, 0x08, 0x63, 0x6F, 0x6D, 0x70, 0x61, 0x63, 0x74, 0x00, 0x01, 0x10, 0x73, 0x63, 0x68, 0x65, 0x6D, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // roundtrip json j_from_bson = json::from_bson(v_bson); // serialize to CBOR std::vector v_cbor = json::to_cbor(j); // 0xA2, 0x67, 0x63, 0x6F, 0x6D, 0x70, 0x61, 0x63, 0x74, 0xF5, 0x66, 0x73, 0x63, 0x68, 0x65, 0x6D, 0x61, 0x00 // roundtrip json j_from_cbor = json::from_cbor(v_cbor); // serialize to MessagePack std::vector v_msgpack = json::to_msgpack(j); // 0x82, 0xA7, 0x63, 0x6F, 0x6D, 0x70, 0x61, 0x63, 0x74, 0xC3, 0xA6, 0x73, 0x63, 0x68, 0x65, 0x6D, 0x61, 0x00 // roundtrip json j_from_msgpack = json::from_msgpack(v_msgpack); // serialize to UBJSON std::vector v_ubjson = json::to_ubjson(j); // 0x7B, 0x69, 0x07, 0x63, 0x6F, 0x6D, 0x70, 0x61, 0x63, 0x74, 0x54, 0x69, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6D, 0x61, 0x69, 0x00, 0x7D // roundtrip json j_from_ubjson = json::from_ubjson(v_ubjson); ``` ## Supported compilers Though it's 2019 already, the support for C++11 is still a bit sparse. Currently, the following compilers are known to work: - GCC 4.8 - 9.2 (and possibly later) - Clang 3.4 - 9.0 (and possibly later) - Intel C++ Compiler 17.0.2 (and possibly later) - Microsoft Visual C++ 2015 / Build Tools 14.0.25123.0 (and possibly later) - Microsoft Visual C++ 2017 / Build Tools 15.5.180.51428 (and possibly later) - Microsoft Visual C++ 2019 / Build Tools 16.3.1+1def00d3d (and possibly later) I would be happy to learn about other compilers/versions. Please note: - GCC 4.8 has a bug [57824](https://gcc.gnu.org/bugzilla/show_bug.cgi?id=57824)): multiline raw strings cannot be the arguments to macros. Don't use multiline raw strings directly in macros with this compiler. - Android defaults to using very old compilers and C++ libraries. To fix this, add the following to your `Application.mk`. This will switch to the LLVM C++ library, the Clang compiler, and enable C++11 and other features disabled by default. ``` APP_STL := c++_shared NDK_TOOLCHAIN_VERSION := clang3.6 APP_CPPFLAGS += -frtti -fexceptions ``` The code compiles successfully with [Android NDK](https://developer.android.com/ndk/index.html?hl=ml), Revision 9 - 11 (and possibly later) and [CrystaX's Android NDK](https://www.crystax.net/en/android/ndk) version 10. - For GCC running on MinGW or Android SDK, the error `'to_string' is not a member of 'std'` (or similarly, for `strtod`) may occur. Note this is not an issue with the code, but rather with the compiler itself. On Android, see above to build with a newer environment. For MinGW, please refer to [this site](http://tehsausage.com/mingw-to-string) and [this discussion](https://github.com/nlohmann/json/issues/136) for information on how to fix this bug. For Android NDK using `APP_STL := gnustl_static`, please refer to [this discussion](https://github.com/nlohmann/json/issues/219). - Unsupported versions of GCC and Clang are rejected by `#error` directives. This can be switched off by defining `JSON_SKIP_UNSUPPORTED_COMPILER_CHECK`. Note that you can expect no support in this case. The following compilers are currently used in continuous integration at [Travis](https://travis-ci.org/nlohmann/json), [AppVeyor](https://ci.appveyor.com/project/nlohmann/json), [CircleCI](https://circleci.com/gh/nlohmann/json), and [Doozer](https://doozer.io): | Compiler | Operating System | Version String | |-----------------------|------------------------------|----------------| | GCC 4.8.5 | Ubuntu 14.04.5 LTS | g++-4.8 (Ubuntu 4.8.5-2ubuntu1~14.04.2) 4.8.5 | | GCC 4.8.5 | CentOS Release-7-6.1810.2.el7.centos.x86_64 | g++ (GCC) 4.8.5 20150623 (Red Hat 4.8.5-36) | | GCC 4.9.2 (armv7l) | Raspbian GNU/Linux 8 (jessie) | g++ (Raspbian 4.9.2-10+deb8u2) 4.9.2 | | GCC 4.9.4 | Ubuntu 14.04.1 LTS | g++-4.9 (Ubuntu 4.9.4-2ubuntu1~14.04.1) 4.9.4 | | GCC 5.3.1 (armv7l) | Ubuntu 16.04 LTS | g++ (Ubuntu/Linaro 5.3.1-14ubuntu2) 5.3.1 20160413 | | GCC 5.5.0 | Ubuntu 14.04.1 LTS | g++-5 (Ubuntu 5.5.0-12ubuntu1~14.04) 5.5.0 20171010 | | GCC 6.3.0 | Debian 9 (stretch) | g++ (Debian 6.3.0-18+deb9u1) 6.3.0 20170516 | | GCC 6.3.1 | Fedora release 24 (Twenty Four) | g++ (GCC) 6.3.1 20161221 (Red Hat 6.3.1-1) | | GCC 6.4.0 | Ubuntu 14.04.1 LTS | g++-6 (Ubuntu 6.4.0-17ubuntu1~14.04) 6.4.0 20180424 | | GCC 7.3.0 | Ubuntu 14.04.1 LTS | g++-7 (Ubuntu 7.3.0-21ubuntu1~14.04) 7.3.0 | | GCC 7.3.0 | Windows Server 2012 R2 (x64) | g++ (x86_64-posix-seh-rev0, Built by MinGW-W64 project) 7.3.0 | | GCC 8.1.0 | Ubuntu 14.04.1 LTS | g++-8 (Ubuntu 8.1.0-5ubuntu1~14.04) 8.1.0 | | GCC 9.2.1 | Ubuntu 14.05.1 LTS | g++-9 (Ubuntu 9.2.1-16ubuntu1~14.04.1) 9.2.1 20191030 | | Clang 3.5.0 | Ubuntu 14.04.1 LTS | clang version 3.5.0-4ubuntu2~trusty2 (tags/RELEASE_350/final) (based on LLVM 3.5.0) | | Clang 3.6.2 | Ubuntu 14.04.1 LTS | clang version 3.6.2-svn240577-1~exp1 (branches/release_36) (based on LLVM 3.6.2) | | Clang 3.7.1 | Ubuntu 14.04.1 LTS | clang version 3.7.1-svn253571-1~exp1 (branches/release_37) (based on LLVM 3.7.1) | | Clang 3.8.0 | Ubuntu 14.04.1 LTS | clang version 3.8.0-2ubuntu3~trusty5 (tags/RELEASE_380/final) | | Clang 3.9.1 | Ubuntu 14.04.1 LTS | clang version 3.9.1-4ubuntu3~14.04.3 (tags/RELEASE_391/rc2) | | Clang 4.0.1 | Ubuntu 14.04.1 LTS | clang version 4.0.1-svn305264-1~exp1 (branches/release_40) | | Clang 5.0.2 | Ubuntu 14.04.1 LTS | clang version 5.0.2-svn328729-1~exp1~20180509123505.100 (branches/release_50) | | Clang 6.0.1 | Ubuntu 14.04.1 LTS | clang version 6.0.1-svn334776-1~exp1~20180726133705.85 (branches/release_60) | | Clang 7.0.1 | Ubuntu 14.04.1 LTS | clang version 7.0.1-svn348686-1~exp1~20181213084532.54 (branches/release_70) | | Clang Xcode 8.3 | OSX 10.11.6 | Apple LLVM version 8.1.0 (clang-802.0.38) | | Clang Xcode 9.0 | OSX 10.12.6 | Apple LLVM version 9.0.0 (clang-900.0.37) | | Clang Xcode 9.1 | OSX 10.12.6 | Apple LLVM version 9.0.0 (clang-900.0.38) | | Clang Xcode 9.2 | OSX 10.13.3 | Apple LLVM version 9.1.0 (clang-902.0.39.1) | | Clang Xcode 9.3 | OSX 10.13.3 | Apple LLVM version 9.1.0 (clang-902.0.39.2) | | Clang Xcode 10.0 | OSX 10.13.3 | Apple LLVM version 10.0.0 (clang-1000.11.45.2) | | Clang Xcode 10.1 | OSX 10.13.3 | Apple LLVM version 10.0.0 (clang-1000.11.45.5) | | Clang Xcode 10.2 | OSX 10.14.4 | Apple LLVM version 10.0.1 (clang-1001.0.46.4) | | Visual Studio 14 2015 | Windows Server 2012 R2 (x64) | Microsoft (R) Build Engine version 14.0.25420.1, MSVC 19.0.24215.1 | | Visual Studio 15 2017 | Windows Server 2012 R2 (x64) | Microsoft (R) Build Engine version 15.9.21+g9802d43bc3, MSVC 19.16.27032.1 | | Visual Studio 16 2019 | Windows Server 2012 R2 (x64) | Microsoft (R) Build Engine version 16.3.1+1def00d3d, MSVC 19.23.28106.4 | ## License The class is licensed under the [MIT License](http://opensource.org/licenses/MIT): Copyright © 2013-2019 [Niels Lohmann](http://nlohmann.me) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * * The class contains the UTF-8 Decoder from Bjoern Hoehrmann which is licensed under the [MIT License](http://opensource.org/licenses/MIT) (see above). Copyright © 2008-2009 [Björn Hoehrmann](http://bjoern.hoehrmann.de/) The class contains a slightly modified version of the Grisu2 algorithm from Florian Loitsch which is licensed under the [MIT License](http://opensource.org/licenses/MIT) (see above). Copyright © 2009 [Florian Loitsch](http://florian.loitsch.com/) The class contains a copy of [Hedley](https://nemequ.github.io/hedley/) from Evan Nemerson which is licensed as [CC0-1.0](http://creativecommons.org/publicdomain/zero/1.0/). ## Contact If you have questions regarding the library, I would like to invite you to [open an issue at GitHub](https://github.com/nlohmann/json/issues/new/choose). Please describe your request, problem, or question as detailed as possible, and also mention the version of the library you are using as well as the version of your compiler and operating system. Opening an issue at GitHub allows other users and contributors to this library to collaborate. For instance, I have little experience with MSVC, and most issues in this regard have been solved by a growing community. If you have a look at the [closed issues](https://github.com/nlohmann/json/issues?q=is%3Aissue+is%3Aclosed), you will see that we react quite timely in most cases. Only if your request would contain confidential information, please [send me an email](mailto:mail@nlohmann.me). For encrypted messages, please use [this key](https://keybase.io/nlohmann/pgp_keys.asc). ## Security [Commits by Niels Lohmann](https://github.com/nlohmann/json/commits) and [releases](https://github.com/nlohmann/json/releases) are signed with this [PGP Key](https://keybase.io/nlohmann/pgp_keys.asc?fingerprint=797167ae41c0a6d9232e48457f3cea63ae251b69). ## Thanks I deeply appreciate the help of the following people. - [Teemperor](https://github.com/Teemperor) implemented CMake support and lcov integration, realized escape and Unicode handling in the string parser, and fixed the JSON serialization. - [elliotgoodrich](https://github.com/elliotgoodrich) fixed an issue with double deletion in the iterator classes. - [kirkshoop](https://github.com/kirkshoop) made the iterators of the class composable to other libraries. - [wancw](https://github.com/wanwc) fixed a bug that hindered the class to compile with Clang. - Tomas Åblad found a bug in the iterator implementation. - [Joshua C. Randall](https://github.com/jrandall) fixed a bug in the floating-point serialization. - [Aaron Burghardt](https://github.com/aburgh) implemented code to parse streams incrementally. Furthermore, he greatly improved the parser class by allowing the definition of a filter function to discard undesired elements while parsing. - [Daniel Kopeček](https://github.com/dkopecek) fixed a bug in the compilation with GCC 5.0. - [Florian Weber](https://github.com/Florianjw) fixed a bug in and improved the performance of the comparison operators. - [Eric Cornelius](https://github.com/EricMCornelius) pointed out a bug in the handling with NaN and infinity values. He also improved the performance of the string escaping. - [易思龙](https://github.com/likebeta) implemented a conversion from anonymous enums. - [kepkin](https://github.com/kepkin) patiently pushed forward the support for Microsoft Visual studio. - [gregmarr](https://github.com/gregmarr) simplified the implementation of reverse iterators and helped with numerous hints and improvements. In particular, he pushed forward the implementation of user-defined types. - [Caio Luppi](https://github.com/caiovlp) fixed a bug in the Unicode handling. - [dariomt](https://github.com/dariomt) fixed some typos in the examples. - [Daniel Frey](https://github.com/d-frey) cleaned up some pointers and implemented exception-safe memory allocation. - [Colin Hirsch](https://github.com/ColinH) took care of a small namespace issue. - [Huu Nguyen](https://github.com/whoshuu) correct a variable name in the documentation. - [Silverweed](https://github.com/silverweed) overloaded `parse()` to accept an rvalue reference. - [dariomt](https://github.com/dariomt) fixed a subtlety in MSVC type support and implemented the `get_ref()` function to get a reference to stored values. - [ZahlGraf](https://github.com/ZahlGraf) added a workaround that allows compilation using Android NDK. - [whackashoe](https://github.com/whackashoe) replaced a function that was marked as unsafe by Visual Studio. - [406345](https://github.com/406345) fixed two small warnings. - [Glen Fernandes](https://github.com/glenfe) noted a potential portability problem in the `has_mapped_type` function. - [Corbin Hughes](https://github.com/nibroc) fixed some typos in the contribution guidelines. - [twelsby](https://github.com/twelsby) fixed the array subscript operator, an issue that failed the MSVC build, and floating-point parsing/dumping. He further added support for unsigned integer numbers and implemented better roundtrip support for parsed numbers. - [Volker Diels-Grabsch](https://github.com/vog) fixed a link in the README file. - [msm-](https://github.com/msm-) added support for American Fuzzy Lop. - [Annihil](https://github.com/Annihil) fixed an example in the README file. - [Themercee](https://github.com/Themercee) noted a wrong URL in the README file. - [Lv Zheng](https://github.com/lv-zheng) fixed a namespace issue with `int64_t` and `uint64_t`. - [abc100m](https://github.com/abc100m) analyzed the issues with GCC 4.8 and proposed a [partial solution](https://github.com/nlohmann/json/pull/212). - [zewt](https://github.com/zewt) added useful notes to the README file about Android. - [Róbert Márki](https://github.com/robertmrk) added a fix to use move iterators and improved the integration via CMake. - [Chris Kitching](https://github.com/ChrisKitching) cleaned up the CMake files. - [Tom Needham](https://github.com/06needhamt) fixed a subtle bug with MSVC 2015 which was also proposed by [Michael K.](https://github.com/Epidal). - [Mário Feroldi](https://github.com/thelostt) fixed a small typo. - [duncanwerner](https://github.com/duncanwerner) found a really embarrassing performance regression in the 2.0.0 release. - [Damien](https://github.com/dtoma) fixed one of the last conversion warnings. - [Thomas Braun](https://github.com/t-b) fixed a warning in a test case. - [Théo DELRIEU](https://github.com/theodelrieu) patiently and constructively oversaw the long way toward [iterator-range parsing](https://github.com/nlohmann/json/issues/290). He also implemented the magic behind the serialization/deserialization of user-defined types and split the single header file into smaller chunks. - [Stefan](https://github.com/5tefan) fixed a minor issue in the documentation. - [Vasil Dimov](https://github.com/vasild) fixed the documentation regarding conversions from `std::multiset`. - [ChristophJud](https://github.com/ChristophJud) overworked the CMake files to ease project inclusion. - [Vladimir Petrigo](https://github.com/vpetrigo) made a SFINAE hack more readable and added Visual Studio 17 to the build matrix. - [Denis Andrejew](https://github.com/seeekr) fixed a grammar issue in the README file. - [Pierre-Antoine Lacaze](https://github.com/palacaze) found a subtle bug in the `dump()` function. - [TurpentineDistillery](https://github.com/TurpentineDistillery) pointed to [`std::locale::classic()`](https://en.cppreference.com/w/cpp/locale/locale/classic) to avoid too much locale joggling, found some nice performance improvements in the parser, improved the benchmarking code, and realized locale-independent number parsing and printing. - [cgzones](https://github.com/cgzones) had an idea how to fix the Coverity scan. - [Jared Grubb](https://github.com/jaredgrubb) silenced a nasty documentation warning. - [Yixin Zhang](https://github.com/qwename) fixed an integer overflow check. - [Bosswestfalen](https://github.com/Bosswestfalen) merged two iterator classes into a smaller one. - [Daniel599](https://github.com/Daniel599) helped to get Travis execute the tests with Clang's sanitizers. - [Jonathan Lee](https://github.com/vjon) fixed an example in the README file. - [gnzlbg](https://github.com/gnzlbg) supported the implementation of user-defined types. - [Alexej Harm](https://github.com/qis) helped to get the user-defined types working with Visual Studio. - [Jared Grubb](https://github.com/jaredgrubb) supported the implementation of user-defined types. - [EnricoBilla](https://github.com/EnricoBilla) noted a typo in an example. - [Martin Hořeňovský](https://github.com/horenmar) found a way for a 2x speedup for the compilation time of the test suite. - [ukhegg](https://github.com/ukhegg) found proposed an improvement for the examples section. - [rswanson-ihi](https://github.com/rswanson-ihi) noted a typo in the README. - [Mihai Stan](https://github.com/stanmihai4) fixed a bug in the comparison with `nullptr`s. - [Tushar Maheshwari](https://github.com/tusharpm) added [cotire](https://github.com/sakra/cotire) support to speed up the compilation. - [TedLyngmo](https://github.com/TedLyngmo) noted a typo in the README, removed unnecessary bit arithmetic, and fixed some `-Weffc++` warnings. - [Krzysztof Woś](https://github.com/krzysztofwos) made exceptions more visible. - [ftillier](https://github.com/ftillier) fixed a compiler warning. - [tinloaf](https://github.com/tinloaf) made sure all pushed warnings are properly popped. - [Fytch](https://github.com/Fytch) found a bug in the documentation. - [Jay Sistar](https://github.com/Type1J) implemented a Meson build description. - [Henry Lee](https://github.com/HenryRLee) fixed a warning in ICC and improved the iterator implementation. - [Vincent Thiery](https://github.com/vthiery) maintains a package for the Conan package manager. - [Steffen](https://github.com/koemeet) fixed a potential issue with MSVC and `std::min`. - [Mike Tzou](https://github.com/Chocobo1) fixed some typos. - [amrcode](https://github.com/amrcode) noted a misleading documentation about comparison of floats. - [Oleg Endo](https://github.com/olegendo) reduced the memory consumption by replacing `` with ``. - [dan-42](https://github.com/dan-42) cleaned up the CMake files to simplify including/reusing of the library. - [Nikita Ofitserov](https://github.com/himikof) allowed for moving values from initializer lists. - [Greg Hurrell](https://github.com/wincent) fixed a typo. - [Dmitry Kukovinets](https://github.com/DmitryKuk) fixed a typo. - [kbthomp1](https://github.com/kbthomp1) fixed an issue related to the Intel OSX compiler. - [Markus Werle](https://github.com/daixtrose) fixed a typo. - [WebProdPP](https://github.com/WebProdPP) fixed a subtle error in a precondition check. - [Alex](https://github.com/leha-bot) noted an error in a code sample. - [Tom de Geus](https://github.com/tdegeus) reported some warnings with ICC and helped fixing them. - [Perry Kundert](https://github.com/pjkundert) simplified reading from input streams. - [Sonu Lohani](https://github.com/sonulohani) fixed a small compilation error. - [Jamie Seward](https://github.com/jseward) fixed all MSVC warnings. - [Nate Vargas](https://github.com/eld00d) added a Doxygen tag file. - [pvleuven](https://github.com/pvleuven) helped fixing a warning in ICC. - [Pavel](https://github.com/crea7or) helped fixing some warnings in MSVC. - [Jamie Seward](https://github.com/jseward) avoided unnecessary string copies in `find()` and `count()`. - [Mitja](https://github.com/Itja) fixed some typos. - [Jorrit Wronski](https://github.com/jowr) updated the Hunter package links. - [Matthias Möller](https://github.com/TinyTinni) added a `.natvis` for the MSVC debug view. - [bogemic](https://github.com/bogemic) fixed some C++17 deprecation warnings. - [Eren Okka](https://github.com/erengy) fixed some MSVC warnings. - [abolz](https://github.com/abolz) integrated the Grisu2 algorithm for proper floating-point formatting, allowing more roundtrip checks to succeed. - [Vadim Evard](https://github.com/Pipeliner) fixed a Markdown issue in the README. - [zerodefect](https://github.com/zerodefect) fixed a compiler warning. - [Kert](https://github.com/kaidokert) allowed to template the string type in the serialization and added the possibility to override the exceptional behavior. - [mark-99](https://github.com/mark-99) helped fixing an ICC error. - [Patrik Huber](https://github.com/patrikhuber) fixed links in the README file. - [johnfb](https://github.com/johnfb) found a bug in the implementation of CBOR's indefinite length strings. - [Paul Fultz II](https://github.com/pfultz2) added a note on the cget package manager. - [Wilson Lin](https://github.com/wla80) made the integration section of the README more concise. - [RalfBielig](https://github.com/ralfbielig) detected and fixed a memory leak in the parser callback. - [agrianius](https://github.com/agrianius) allowed to dump JSON to an alternative string type. - [Kevin Tonon](https://github.com/ktonon) overworked the C++11 compiler checks in CMake. - [Axel Huebl](https://github.com/ax3l) simplified a CMake check and added support for the [Spack package manager](https://spack.io). - [Carlos O'Ryan](https://github.com/coryan) fixed a typo. - [James Upjohn](https://github.com/jammehcow) fixed a version number in the compilers section. - [Chuck Atkins](https://github.com/chuckatkins) adjusted the CMake files to the CMake packaging guidelines and provided documentation for the CMake integration. - [Jan Schöppach](https://github.com/dns13) fixed a typo. - [martin-mfg](https://github.com/martin-mfg) fixed a typo. - [Matthias Möller](https://github.com/TinyTinni) removed the dependency from `std::stringstream`. - [agrianius](https://github.com/agrianius) added code to use alternative string implementations. - [Daniel599](https://github.com/Daniel599) allowed to use more algorithms with the `items()` function. - [Julius Rakow](https://github.com/jrakow) fixed the Meson include directory and fixed the links to [cppreference.com](cppreference.com). - [Sonu Lohani](https://github.com/sonulohani) fixed the compilation with MSVC 2015 in debug mode. - [grembo](https://github.com/grembo) fixed the test suite and re-enabled several test cases. - [Hyeon Kim](https://github.com/simnalamburt) introduced the macro `JSON_INTERNAL_CATCH` to control the exception handling inside the library. - [thyu](https://github.com/thyu) fixed a compiler warning. - [David Guthrie](https://github.com/LEgregius) fixed a subtle compilation error with Clang 3.4.2. - [Dennis Fischer](https://github.com/dennisfischer) allowed to call `find_package` without installing the library. - [Hyeon Kim](https://github.com/simnalamburt) fixed an issue with a double macro definition. - [Ben Berman](https://github.com/rivertam) made some error messages more understandable. - [zakalibit](https://github.com/zakalibit) fixed a compilation problem with the Intel C++ compiler. - [mandreyel](https://github.com/mandreyel) fixed a compilation problem. - [Kostiantyn Ponomarenko](https://github.com/koponomarenko) added version and license information to the Meson build file. - [Henry Schreiner](https://github.com/henryiii) added support for GCC 4.8. - [knilch](https://github.com/knilch0r) made sure the test suite does not stall when run in the wrong directory. - [Antonio Borondo](https://github.com/antonioborondo) fixed an MSVC 2017 warning. - [Dan Gendreau](https://github.com/dgendreau) implemented the `NLOHMANN_JSON_SERIALIZE_ENUM` macro to quickly define a enum/JSON mapping. - [efp](https://github.com/efp) added line and column information to parse errors. - [julian-becker](https://github.com/julian-becker) added BSON support. - [Pratik Chowdhury](https://github.com/pratikpc) added support for structured bindings. - [David Avedissian](https://github.com/davedissian) added support for Clang 5.0.1 (PS4 version). - [Jonathan Dumaresq](https://github.com/dumarjo) implemented an input adapter to read from `FILE*`. - [kjpus](https://github.com/kjpus) fixed a link in the documentation. - [Manvendra Singh](https://github.com/manu-chroma) fixed a typo in the documentation. - [ziggurat29](https://github.com/ziggurat29) fixed an MSVC warning. - [Sylvain Corlay](https://github.com/SylvainCorlay) added code to avoid an issue with MSVC. - [mefyl](https://github.com/mefyl) fixed a bug when JSON was parsed from an input stream. - [Millian Poquet](https://github.com/mpoquet) allowed to install the library via Meson. - [Michael Behrns-Miller](https://github.com/moodboom) found an issue with a missing namespace. - [Nasztanovics Ferenc](https://github.com/naszta) fixed a compilation issue with libc 2.12. - [Andreas Schwab](https://github.com/andreas-schwab) fixed the endian conversion. - [Mark-Dunning](https://github.com/Mark-Dunning) fixed a warning in MSVC. - [Gareth Sylvester-Bradley](https://github.com/garethsb-sony) added `operator/` for JSON Pointers. - [John-Mark](https://github.com/johnmarkwayve) noted a missing header. - [Vitaly Zaitsev](https://github.com/xvitaly) fixed compilation with GCC 9.0. - [Laurent Stacul](https://github.com/stac47) fixed compilation with GCC 9.0. - [Ivor Wanders](https://github.com/iwanders) helped reducing the CMake requirement to version 3.1. - [njlr](https://github.com/njlr) updated the Buckaroo instructions. - [Lion](https://github.com/lieff) fixed a compilation issue with GCC 7 on CentOS. - [Isaac Nickaein](https://github.com/nickaein) improved the integer serialization performance and implemented the `contains()` function. - [past-due](https://github.com/past-due) suppressed an unfixable warning. - [Elvis Oric](https://github.com/elvisoric) improved Meson support. - [Matěj Plch](https://github.com/Afforix) fixed an example in the README. - [Mark Beckwith](https://github.com/wythe) fixed a typo. - [scinart](https://github.com/scinart) fixed bug in the serializer. - [Patrick Boettcher](https://github.com/pboettch) implemented `push_back()` and `pop_back()` for JSON Pointers. - [Bruno Oliveira](https://github.com/nicoddemus) added support for Conda. - [Michele Caini](https://github.com/skypjack) fixed links in the README. - [Hani](https://github.com/hnkb) documented how to install the library with NuGet. - [Mark Beckwith](https://github.com/wythe) fixed a typo. - [yann-morin-1998](https://github.com/yann-morin-1998) helped reducing the CMake requirement to version 3.1. - [Konstantin Podsvirov](https://github.com/podsvirov) maintains a package for the MSYS2 software distro. - [remyabel](https://github.com/remyabel) added GNUInstallDirs to the CMake files. - [Taylor Howard](https://github.com/taylorhoward92) fixed a unit test. - [Gabe Ron](https://github.com/Macr0Nerd) implemented the `to_string` method. - [Watal M. Iwasaki](https://github.com/heavywatal) fixed a Clang warning. - [Viktor Kirilov](https://github.com/onqtam) switched the unit tests from [Catch](https://github.com/philsquared/Catch) to [doctest](https://github.com/onqtam/doctest) - [Juncheng E](https://github.com/ejcjason) fixed a typo. - [tete17](https://github.com/tete17) fixed a bug in the `contains` function. - [Xav83](https://github.com/Xav83) fixed some cppcheck warnings. - [0xflotus](https://github.com/0xflotus) fixed some typos. - [Christian Deneke](https://github.com/chris0x44) added a const version of `json_pointer::back`. - [Julien Hamaide](https://github.com/crazyjul) made the `items()` function work with custom string types. - [Evan Nemerson](https://github.com/nemequ) updated fixed a bug in Hedley and updated this library accordingly. - [Florian Pigorsch](https://github.com/flopp) fixed a lot of typos. - [Camille Bégué](https://github.com/cbegue) fixed an issue in the conversion from `std::pair` and `std::tuple` to `json`. - [Anthony VH](https://github.com/AnthonyVH) fixed a compile error in an enum deserialization. Thanks a lot for helping out! Please [let me know](mailto:mail@nlohmann.me) if I forgot someone. ## Used third-party tools The library itself consists of a single header file licensed under the MIT license. However, it is built, tested, documented, and whatnot using a lot of third-party tools and services. Thanks a lot! - [**amalgamate.py - Amalgamate C source and header files**](https://github.com/edlund/amalgamate) to create a single header file - [**American fuzzy lop**](http://lcamtuf.coredump.cx/afl/) for fuzz testing - [**AppVeyor**](https://www.appveyor.com) for [continuous integration](https://ci.appveyor.com/project/nlohmann/json) on Windows - [**Artistic Style**](http://astyle.sourceforge.net) for automatic source code indentation - [**CircleCI**](http://circleci.com) for [continuous integration](https://circleci.com/gh/nlohmann/json). - [**Clang**](http://clang.llvm.org) for compilation with code sanitizers - [**CMake**](https://cmake.org) for build automation - [**Codacity**](https://www.codacy.com) for further [code analysis](https://www.codacy.com/app/nlohmann/json) - [**Coveralls**](https://coveralls.io) to measure [code coverage](https://coveralls.io/github/nlohmann/json) - [**Coverity Scan**](https://scan.coverity.com) for [static analysis](https://scan.coverity.com/projects/nlohmann-json) - [**cppcheck**](http://cppcheck.sourceforge.net) for static analysis - [**doctest**](https://github.com/onqtam/doctest) for the unit tests - [**Doozer**](https://doozer.io) for [continuous integration](https://doozer.io/nlohmann/json) on Linux (CentOS, Raspbian, Fedora) - [**Doxygen**](http://www.stack.nl/~dimitri/doxygen/) to generate [documentation](https://nlohmann.github.io/json/) - [**fastcov**](https://github.com/RPGillespie6/fastcov) to process coverage information - [**git-update-ghpages**](https://github.com/rstacruz/git-update-ghpages) to upload the documentation to gh-pages - [**GitHub Changelog Generator**](https://github.com/skywinder/github-changelog-generator) to generate the [ChangeLog](https://github.com/nlohmann/json/blob/develop/ChangeLog.md) - [**Google Benchmark**](https://github.com/google/benchmark) to implement the benchmarks - [**Hedley**](https://nemequ.github.io/hedley/) to avoid re-inventing several compiler-agnostic feature macros - [**lcov**](http://ltp.sourceforge.net/coverage/lcov.php) to process coverage information and create a HTML view - [**libFuzzer**](http://llvm.org/docs/LibFuzzer.html) to implement fuzz testing for OSS-Fuzz - [**OSS-Fuzz**](https://github.com/google/oss-fuzz) for continuous fuzz testing of the library ([project repository](https://github.com/google/oss-fuzz/tree/master/projects/json)) - [**Probot**](https://probot.github.io) for automating maintainer tasks such as closing stale issues, requesting missing information, or detecting toxic comments. - [**send_to_wandbox**](https://github.com/nlohmann/json/blob/develop/doc/scripts/send_to_wandbox.py) to send code examples to [Wandbox](http://melpon.org/wandbox) - [**Travis**](https://travis-ci.org) for [continuous integration](https://travis-ci.org/nlohmann/json) on Linux and macOS - [**Valgrind**](http://valgrind.org) to check for correct memory management - [**Wandbox**](http://melpon.org/wandbox) for [online examples](https://wandbox.org/permlink/TarF5pPn9NtHQjhf) ## Projects using JSON for Modern C++ The library is currently used in Apple macOS Sierra and iOS 10. I am not sure what they are using the library for, but I am happy that it runs on so many devices. ## Notes ### Character encoding The library supports **Unicode input** as follows: - Only **UTF-8** encoded input is supported which is the default encoding for JSON according to [RFC 8259](https://tools.ietf.org/html/rfc8259.html#section-8.1). - `std::u16string` and `std::u32string` can be parsed, assuming UTF-16 and UTF-32 encoding, respectively. These encodings are not supported when reading from files or other input containers. - Other encodings such as Latin-1 or ISO 8859-1 are **not** supported and will yield parse or serialization errors. - [Unicode noncharacters](http://www.unicode.org/faq/private_use.html#nonchar1) will not be replaced by the library. - Invalid surrogates (e.g., incomplete pairs such as `\uDEAD`) will yield parse errors. - The strings stored in the library are UTF-8 encoded. When using the default string type (`std::string`), note that its length/size functions return the number of stored bytes rather than the number of characters or glyphs. - When you store strings with different encodings in the library, calling [`dump()`](https://nlohmann.github.io/json/classnlohmann_1_1basic__json_a50ec80b02d0f3f51130d4abb5d1cfdc5.html#a50ec80b02d0f3f51130d4abb5d1cfdc5) may throw an exception unless `json::error_handler_t::replace` or `json::error_handler_t::ignore` are used as error handlers. ### Comments in JSON This library does not support comments. It does so for three reasons: 1. Comments are not part of the [JSON specification](https://tools.ietf.org/html/rfc8259). You may argue that `//` or `/* */` are allowed in JavaScript, but JSON is not JavaScript. 2. This was not an oversight: Douglas Crockford [wrote on this](https://plus.google.com/118095276221607585885/posts/RK8qyGVaGSr) in May 2012: > I removed comments from JSON because I saw people were using them to hold parsing directives, a practice which would have destroyed interoperability. I know that the lack of comments makes some people sad, but it shouldn't. > Suppose you are using JSON to keep configuration files, which you would like to annotate. Go ahead and insert all the comments you like. Then pipe it through JSMin before handing it to your JSON parser. 3. It is dangerous for interoperability if some libraries would add comment support while others don't. Please check [The Harmful Consequences of the Robustness Principle](https://tools.ietf.org/html/draft-iab-protocol-maintenance-01) on this. This library will not support comments in the future. If you wish to use comments, I see three options: 1. Strip comments before using this library. 2. Use a different JSON library with comment support. 3. Use a format that natively supports comments (e.g., YAML or JSON5). ### Order of object keys By default, the library does not preserve the **insertion order of object elements**. This is standards-compliant, as the [JSON standard](https://tools.ietf.org/html/rfc8259.html) defines objects as "an unordered collection of zero or more name/value pairs". If you do want to preserve the insertion order, you can specialize the object type with containers like [`tsl::ordered_map`](https://github.com/Tessil/ordered-map) ([integration](https://github.com/nlohmann/json/issues/546#issuecomment-304447518)) or [`nlohmann::fifo_map`](https://github.com/nlohmann/fifo_map) ([integration](https://github.com/nlohmann/json/issues/485#issuecomment-333652309)). ### Further notes - The code contains numerous debug **assertions** which can be switched off by defining the preprocessor macro `NDEBUG`, see the [documentation of `assert`](https://en.cppreference.com/w/cpp/error/assert). In particular, note [`operator[]`](https://nlohmann.github.io/json/classnlohmann_1_1basic__json_a233b02b0839ef798942dd46157cc0fe6.html#a233b02b0839ef798942dd46157cc0fe6) implements **unchecked access** for const objects: If the given key is not present, the behavior is undefined (think of a dereferenced null pointer) and yields an [assertion failure](https://github.com/nlohmann/json/issues/289) if assertions are switched on. If you are not sure whether an element in an object exists, use checked access with the [`at()` function](https://nlohmann.github.io/json/classnlohmann_1_1basic__json_a73ae333487310e3302135189ce8ff5d8.html#a73ae333487310e3302135189ce8ff5d8). - As the exact type of a number is not defined in the [JSON specification](https://tools.ietf.org/html/rfc8259.html), this library tries to choose the best fitting C++ number type automatically. As a result, the type `double` may be used to store numbers which may yield [**floating-point exceptions**](https://github.com/nlohmann/json/issues/181) in certain rare situations if floating-point exceptions have been unmasked in the calling code. These exceptions are not caused by the library and need to be fixed in the calling code, such as by re-masking the exceptions prior to calling library functions. - The code can be compiled without C++ **runtime type identification** features; that is, you can use the `-fno-rtti` compiler flag. - **Exceptions** are used widely within the library. They can, however, be switched off with either using the compiler flag `-fno-exceptions` or by defining the symbol `JSON_NOEXCEPTION`. In this case, exceptions are replaced by `abort()` calls. You can further control this behavior by defining `JSON_THROW_USER´` (overriding `throw`), `JSON_TRY_USER` (overriding `try`), and `JSON_CATCH_USER` (overriding `catch`). Note that `JSON_THROW_USER` should leave the current scope (e.g., by throwing or aborting), as continuing after it may yield undefined behavior. ## Execute unit tests To compile and run the tests, you need to execute ```sh $ mkdir build $ cd build $ cmake .. $ cmake --build . $ ctest --output-on-failure ``` For more information, have a look at the file [.travis.yml](https://github.com/nlohmann/json/blob/master/.travis.yml). sqlitebrowser-3.12.1/libs/json/json.hpp000066400000000000000000030550211374246124700201070ustar00rootroot00000000000000/* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ | | |__ | | | | | | version 3.7.3 |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License . SPDX-License-Identifier: MIT Copyright (c) 2013-2019 Niels Lohmann . Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef INCLUDE_NLOHMANN_JSON_HPP_ #define INCLUDE_NLOHMANN_JSON_HPP_ #define NLOHMANN_JSON_VERSION_MAJOR 3 #define NLOHMANN_JSON_VERSION_MINOR 7 #define NLOHMANN_JSON_VERSION_PATCH 3 #include // all_of, find, for_each #include // assert #include // and, not, or #include // nullptr_t, ptrdiff_t, size_t #include // hash, less #include // initializer_list #include // istream, ostream #include // random_access_iterator_tag #include // unique_ptr #include // accumulate #include // string, stoi, to_string #include // declval, forward, move, pair, swap #include // vector // #include #include // #include #include // transform #include // array #include // and, not #include // forward_list #include // inserter, front_inserter, end #include // map #include // string #include // tuple, make_tuple #include // is_arithmetic, is_same, is_enum, underlying_type, is_convertible #include // unordered_map #include // pair, declval #include // valarray // #include #include // exception #include // runtime_error #include // to_string // #include #include // size_t namespace nlohmann { namespace detail { /// struct to capture the start position of the current token struct position_t { /// the total number of characters read std::size_t chars_read_total = 0; /// the number of characters read in the current line std::size_t chars_read_current_line = 0; /// the number of lines read std::size_t lines_read = 0; /// conversion to size_t to preserve SAX interface constexpr operator size_t() const { return chars_read_total; } }; } // namespace detail } // namespace nlohmann // #include #include // pair // #include /* Hedley - https://nemequ.github.io/hedley * Created by Evan Nemerson * * To the extent possible under law, the author(s) have dedicated all * copyright and related and neighboring rights to this software to * the public domain worldwide. This software is distributed without * any warranty. * * For details, see . * SPDX-License-Identifier: CC0-1.0 */ #if !defined(JSON_HEDLEY_VERSION) || (JSON_HEDLEY_VERSION < 11) #if defined(JSON_HEDLEY_VERSION) #undef JSON_HEDLEY_VERSION #endif #define JSON_HEDLEY_VERSION 11 #if defined(JSON_HEDLEY_STRINGIFY_EX) #undef JSON_HEDLEY_STRINGIFY_EX #endif #define JSON_HEDLEY_STRINGIFY_EX(x) #x #if defined(JSON_HEDLEY_STRINGIFY) #undef JSON_HEDLEY_STRINGIFY #endif #define JSON_HEDLEY_STRINGIFY(x) JSON_HEDLEY_STRINGIFY_EX(x) #if defined(JSON_HEDLEY_CONCAT_EX) #undef JSON_HEDLEY_CONCAT_EX #endif #define JSON_HEDLEY_CONCAT_EX(a,b) a##b #if defined(JSON_HEDLEY_CONCAT) #undef JSON_HEDLEY_CONCAT #endif #define JSON_HEDLEY_CONCAT(a,b) JSON_HEDLEY_CONCAT_EX(a,b) #if defined(JSON_HEDLEY_VERSION_ENCODE) #undef JSON_HEDLEY_VERSION_ENCODE #endif #define JSON_HEDLEY_VERSION_ENCODE(major,minor,revision) (((major) * 1000000) + ((minor) * 1000) + (revision)) #if defined(JSON_HEDLEY_VERSION_DECODE_MAJOR) #undef JSON_HEDLEY_VERSION_DECODE_MAJOR #endif #define JSON_HEDLEY_VERSION_DECODE_MAJOR(version) ((version) / 1000000) #if defined(JSON_HEDLEY_VERSION_DECODE_MINOR) #undef JSON_HEDLEY_VERSION_DECODE_MINOR #endif #define JSON_HEDLEY_VERSION_DECODE_MINOR(version) (((version) % 1000000) / 1000) #if defined(JSON_HEDLEY_VERSION_DECODE_REVISION) #undef JSON_HEDLEY_VERSION_DECODE_REVISION #endif #define JSON_HEDLEY_VERSION_DECODE_REVISION(version) ((version) % 1000) #if defined(JSON_HEDLEY_GNUC_VERSION) #undef JSON_HEDLEY_GNUC_VERSION #endif #if defined(__GNUC__) && defined(__GNUC_PATCHLEVEL__) #define JSON_HEDLEY_GNUC_VERSION JSON_HEDLEY_VERSION_ENCODE(__GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__) #elif defined(__GNUC__) #define JSON_HEDLEY_GNUC_VERSION JSON_HEDLEY_VERSION_ENCODE(__GNUC__, __GNUC_MINOR__, 0) #endif #if defined(JSON_HEDLEY_GNUC_VERSION_CHECK) #undef JSON_HEDLEY_GNUC_VERSION_CHECK #endif #if defined(JSON_HEDLEY_GNUC_VERSION) #define JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_GNUC_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) #else #define JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) (0) #endif #if defined(JSON_HEDLEY_MSVC_VERSION) #undef JSON_HEDLEY_MSVC_VERSION #endif #if defined(_MSC_FULL_VER) && (_MSC_FULL_VER >= 140000000) #define JSON_HEDLEY_MSVC_VERSION JSON_HEDLEY_VERSION_ENCODE(_MSC_FULL_VER / 10000000, (_MSC_FULL_VER % 10000000) / 100000, (_MSC_FULL_VER % 100000) / 100) #elif defined(_MSC_FULL_VER) #define JSON_HEDLEY_MSVC_VERSION JSON_HEDLEY_VERSION_ENCODE(_MSC_FULL_VER / 1000000, (_MSC_FULL_VER % 1000000) / 10000, (_MSC_FULL_VER % 10000) / 10) #elif defined(_MSC_VER) #define JSON_HEDLEY_MSVC_VERSION JSON_HEDLEY_VERSION_ENCODE(_MSC_VER / 100, _MSC_VER % 100, 0) #endif #if defined(JSON_HEDLEY_MSVC_VERSION_CHECK) #undef JSON_HEDLEY_MSVC_VERSION_CHECK #endif #if !defined(_MSC_VER) #define JSON_HEDLEY_MSVC_VERSION_CHECK(major,minor,patch) (0) #elif defined(_MSC_VER) && (_MSC_VER >= 1400) #define JSON_HEDLEY_MSVC_VERSION_CHECK(major,minor,patch) (_MSC_FULL_VER >= ((major * 10000000) + (minor * 100000) + (patch))) #elif defined(_MSC_VER) && (_MSC_VER >= 1200) #define JSON_HEDLEY_MSVC_VERSION_CHECK(major,minor,patch) (_MSC_FULL_VER >= ((major * 1000000) + (minor * 10000) + (patch))) #else #define JSON_HEDLEY_MSVC_VERSION_CHECK(major,minor,patch) (_MSC_VER >= ((major * 100) + (minor))) #endif #if defined(JSON_HEDLEY_INTEL_VERSION) #undef JSON_HEDLEY_INTEL_VERSION #endif #if defined(__INTEL_COMPILER) && defined(__INTEL_COMPILER_UPDATE) #define JSON_HEDLEY_INTEL_VERSION JSON_HEDLEY_VERSION_ENCODE(__INTEL_COMPILER / 100, __INTEL_COMPILER % 100, __INTEL_COMPILER_UPDATE) #elif defined(__INTEL_COMPILER) #define JSON_HEDLEY_INTEL_VERSION JSON_HEDLEY_VERSION_ENCODE(__INTEL_COMPILER / 100, __INTEL_COMPILER % 100, 0) #endif #if defined(JSON_HEDLEY_INTEL_VERSION_CHECK) #undef JSON_HEDLEY_INTEL_VERSION_CHECK #endif #if defined(JSON_HEDLEY_INTEL_VERSION) #define JSON_HEDLEY_INTEL_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_INTEL_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) #else #define JSON_HEDLEY_INTEL_VERSION_CHECK(major,minor,patch) (0) #endif #if defined(JSON_HEDLEY_PGI_VERSION) #undef JSON_HEDLEY_PGI_VERSION #endif #if defined(__PGI) && defined(__PGIC__) && defined(__PGIC_MINOR__) && defined(__PGIC_PATCHLEVEL__) #define JSON_HEDLEY_PGI_VERSION JSON_HEDLEY_VERSION_ENCODE(__PGIC__, __PGIC_MINOR__, __PGIC_PATCHLEVEL__) #endif #if defined(JSON_HEDLEY_PGI_VERSION_CHECK) #undef JSON_HEDLEY_PGI_VERSION_CHECK #endif #if defined(JSON_HEDLEY_PGI_VERSION) #define JSON_HEDLEY_PGI_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_PGI_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) #else #define JSON_HEDLEY_PGI_VERSION_CHECK(major,minor,patch) (0) #endif #if defined(JSON_HEDLEY_SUNPRO_VERSION) #undef JSON_HEDLEY_SUNPRO_VERSION #endif #if defined(__SUNPRO_C) && (__SUNPRO_C > 0x1000) #define JSON_HEDLEY_SUNPRO_VERSION JSON_HEDLEY_VERSION_ENCODE((((__SUNPRO_C >> 16) & 0xf) * 10) + ((__SUNPRO_C >> 12) & 0xf), (((__SUNPRO_C >> 8) & 0xf) * 10) + ((__SUNPRO_C >> 4) & 0xf), (__SUNPRO_C & 0xf) * 10) #elif defined(__SUNPRO_C) #define JSON_HEDLEY_SUNPRO_VERSION JSON_HEDLEY_VERSION_ENCODE((__SUNPRO_C >> 8) & 0xf, (__SUNPRO_C >> 4) & 0xf, (__SUNPRO_C) & 0xf) #elif defined(__SUNPRO_CC) && (__SUNPRO_CC > 0x1000) #define JSON_HEDLEY_SUNPRO_VERSION JSON_HEDLEY_VERSION_ENCODE((((__SUNPRO_CC >> 16) & 0xf) * 10) + ((__SUNPRO_CC >> 12) & 0xf), (((__SUNPRO_CC >> 8) & 0xf) * 10) + ((__SUNPRO_CC >> 4) & 0xf), (__SUNPRO_CC & 0xf) * 10) #elif defined(__SUNPRO_CC) #define JSON_HEDLEY_SUNPRO_VERSION JSON_HEDLEY_VERSION_ENCODE((__SUNPRO_CC >> 8) & 0xf, (__SUNPRO_CC >> 4) & 0xf, (__SUNPRO_CC) & 0xf) #endif #if defined(JSON_HEDLEY_SUNPRO_VERSION_CHECK) #undef JSON_HEDLEY_SUNPRO_VERSION_CHECK #endif #if defined(JSON_HEDLEY_SUNPRO_VERSION) #define JSON_HEDLEY_SUNPRO_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_SUNPRO_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) #else #define JSON_HEDLEY_SUNPRO_VERSION_CHECK(major,minor,patch) (0) #endif #if defined(JSON_HEDLEY_EMSCRIPTEN_VERSION) #undef JSON_HEDLEY_EMSCRIPTEN_VERSION #endif #if defined(__EMSCRIPTEN__) #define JSON_HEDLEY_EMSCRIPTEN_VERSION JSON_HEDLEY_VERSION_ENCODE(__EMSCRIPTEN_major__, __EMSCRIPTEN_minor__, __EMSCRIPTEN_tiny__) #endif #if defined(JSON_HEDLEY_EMSCRIPTEN_VERSION_CHECK) #undef JSON_HEDLEY_EMSCRIPTEN_VERSION_CHECK #endif #if defined(JSON_HEDLEY_EMSCRIPTEN_VERSION) #define JSON_HEDLEY_EMSCRIPTEN_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_EMSCRIPTEN_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) #else #define JSON_HEDLEY_EMSCRIPTEN_VERSION_CHECK(major,minor,patch) (0) #endif #if defined(JSON_HEDLEY_ARM_VERSION) #undef JSON_HEDLEY_ARM_VERSION #endif #if defined(__CC_ARM) && defined(__ARMCOMPILER_VERSION) #define JSON_HEDLEY_ARM_VERSION JSON_HEDLEY_VERSION_ENCODE(__ARMCOMPILER_VERSION / 1000000, (__ARMCOMPILER_VERSION % 1000000) / 10000, (__ARMCOMPILER_VERSION % 10000) / 100) #elif defined(__CC_ARM) && defined(__ARMCC_VERSION) #define JSON_HEDLEY_ARM_VERSION JSON_HEDLEY_VERSION_ENCODE(__ARMCC_VERSION / 1000000, (__ARMCC_VERSION % 1000000) / 10000, (__ARMCC_VERSION % 10000) / 100) #endif #if defined(JSON_HEDLEY_ARM_VERSION_CHECK) #undef JSON_HEDLEY_ARM_VERSION_CHECK #endif #if defined(JSON_HEDLEY_ARM_VERSION) #define JSON_HEDLEY_ARM_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_ARM_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) #else #define JSON_HEDLEY_ARM_VERSION_CHECK(major,minor,patch) (0) #endif #if defined(JSON_HEDLEY_IBM_VERSION) #undef JSON_HEDLEY_IBM_VERSION #endif #if defined(__ibmxl__) #define JSON_HEDLEY_IBM_VERSION JSON_HEDLEY_VERSION_ENCODE(__ibmxl_version__, __ibmxl_release__, __ibmxl_modification__) #elif defined(__xlC__) && defined(__xlC_ver__) #define JSON_HEDLEY_IBM_VERSION JSON_HEDLEY_VERSION_ENCODE(__xlC__ >> 8, __xlC__ & 0xff, (__xlC_ver__ >> 8) & 0xff) #elif defined(__xlC__) #define JSON_HEDLEY_IBM_VERSION JSON_HEDLEY_VERSION_ENCODE(__xlC__ >> 8, __xlC__ & 0xff, 0) #endif #if defined(JSON_HEDLEY_IBM_VERSION_CHECK) #undef JSON_HEDLEY_IBM_VERSION_CHECK #endif #if defined(JSON_HEDLEY_IBM_VERSION) #define JSON_HEDLEY_IBM_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_IBM_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) #else #define JSON_HEDLEY_IBM_VERSION_CHECK(major,minor,patch) (0) #endif #if defined(JSON_HEDLEY_TI_VERSION) #undef JSON_HEDLEY_TI_VERSION #endif #if defined(__TI_COMPILER_VERSION__) #define JSON_HEDLEY_TI_VERSION JSON_HEDLEY_VERSION_ENCODE(__TI_COMPILER_VERSION__ / 1000000, (__TI_COMPILER_VERSION__ % 1000000) / 1000, (__TI_COMPILER_VERSION__ % 1000)) #endif #if defined(JSON_HEDLEY_TI_VERSION_CHECK) #undef JSON_HEDLEY_TI_VERSION_CHECK #endif #if defined(JSON_HEDLEY_TI_VERSION) #define JSON_HEDLEY_TI_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_TI_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) #else #define JSON_HEDLEY_TI_VERSION_CHECK(major,minor,patch) (0) #endif #if defined(JSON_HEDLEY_CRAY_VERSION) #undef JSON_HEDLEY_CRAY_VERSION #endif #if defined(_CRAYC) #if defined(_RELEASE_PATCHLEVEL) #define JSON_HEDLEY_CRAY_VERSION JSON_HEDLEY_VERSION_ENCODE(_RELEASE_MAJOR, _RELEASE_MINOR, _RELEASE_PATCHLEVEL) #else #define JSON_HEDLEY_CRAY_VERSION JSON_HEDLEY_VERSION_ENCODE(_RELEASE_MAJOR, _RELEASE_MINOR, 0) #endif #endif #if defined(JSON_HEDLEY_CRAY_VERSION_CHECK) #undef JSON_HEDLEY_CRAY_VERSION_CHECK #endif #if defined(JSON_HEDLEY_CRAY_VERSION) #define JSON_HEDLEY_CRAY_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_CRAY_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) #else #define JSON_HEDLEY_CRAY_VERSION_CHECK(major,minor,patch) (0) #endif #if defined(JSON_HEDLEY_IAR_VERSION) #undef JSON_HEDLEY_IAR_VERSION #endif #if defined(__IAR_SYSTEMS_ICC__) #if __VER__ > 1000 #define JSON_HEDLEY_IAR_VERSION JSON_HEDLEY_VERSION_ENCODE((__VER__ / 1000000), ((__VER__ / 1000) % 1000), (__VER__ % 1000)) #else #define JSON_HEDLEY_IAR_VERSION JSON_HEDLEY_VERSION_ENCODE(VER / 100, __VER__ % 100, 0) #endif #endif #if defined(JSON_HEDLEY_IAR_VERSION_CHECK) #undef JSON_HEDLEY_IAR_VERSION_CHECK #endif #if defined(JSON_HEDLEY_IAR_VERSION) #define JSON_HEDLEY_IAR_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_IAR_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) #else #define JSON_HEDLEY_IAR_VERSION_CHECK(major,minor,patch) (0) #endif #if defined(JSON_HEDLEY_TINYC_VERSION) #undef JSON_HEDLEY_TINYC_VERSION #endif #if defined(__TINYC__) #define JSON_HEDLEY_TINYC_VERSION JSON_HEDLEY_VERSION_ENCODE(__TINYC__ / 1000, (__TINYC__ / 100) % 10, __TINYC__ % 100) #endif #if defined(JSON_HEDLEY_TINYC_VERSION_CHECK) #undef JSON_HEDLEY_TINYC_VERSION_CHECK #endif #if defined(JSON_HEDLEY_TINYC_VERSION) #define JSON_HEDLEY_TINYC_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_TINYC_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) #else #define JSON_HEDLEY_TINYC_VERSION_CHECK(major,minor,patch) (0) #endif #if defined(JSON_HEDLEY_DMC_VERSION) #undef JSON_HEDLEY_DMC_VERSION #endif #if defined(__DMC__) #define JSON_HEDLEY_DMC_VERSION JSON_HEDLEY_VERSION_ENCODE(__DMC__ >> 8, (__DMC__ >> 4) & 0xf, __DMC__ & 0xf) #endif #if defined(JSON_HEDLEY_DMC_VERSION_CHECK) #undef JSON_HEDLEY_DMC_VERSION_CHECK #endif #if defined(JSON_HEDLEY_DMC_VERSION) #define JSON_HEDLEY_DMC_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_DMC_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) #else #define JSON_HEDLEY_DMC_VERSION_CHECK(major,minor,patch) (0) #endif #if defined(JSON_HEDLEY_COMPCERT_VERSION) #undef JSON_HEDLEY_COMPCERT_VERSION #endif #if defined(__COMPCERT_VERSION__) #define JSON_HEDLEY_COMPCERT_VERSION JSON_HEDLEY_VERSION_ENCODE(__COMPCERT_VERSION__ / 10000, (__COMPCERT_VERSION__ / 100) % 100, __COMPCERT_VERSION__ % 100) #endif #if defined(JSON_HEDLEY_COMPCERT_VERSION_CHECK) #undef JSON_HEDLEY_COMPCERT_VERSION_CHECK #endif #if defined(JSON_HEDLEY_COMPCERT_VERSION) #define JSON_HEDLEY_COMPCERT_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_COMPCERT_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) #else #define JSON_HEDLEY_COMPCERT_VERSION_CHECK(major,minor,patch) (0) #endif #if defined(JSON_HEDLEY_PELLES_VERSION) #undef JSON_HEDLEY_PELLES_VERSION #endif #if defined(__POCC__) #define JSON_HEDLEY_PELLES_VERSION JSON_HEDLEY_VERSION_ENCODE(__POCC__ / 100, __POCC__ % 100, 0) #endif #if defined(JSON_HEDLEY_PELLES_VERSION_CHECK) #undef JSON_HEDLEY_PELLES_VERSION_CHECK #endif #if defined(JSON_HEDLEY_PELLES_VERSION) #define JSON_HEDLEY_PELLES_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_PELLES_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) #else #define JSON_HEDLEY_PELLES_VERSION_CHECK(major,minor,patch) (0) #endif #if defined(JSON_HEDLEY_GCC_VERSION) #undef JSON_HEDLEY_GCC_VERSION #endif #if \ defined(JSON_HEDLEY_GNUC_VERSION) && \ !defined(__clang__) && \ !defined(JSON_HEDLEY_INTEL_VERSION) && \ !defined(JSON_HEDLEY_PGI_VERSION) && \ !defined(JSON_HEDLEY_ARM_VERSION) && \ !defined(JSON_HEDLEY_TI_VERSION) && \ !defined(__COMPCERT__) #define JSON_HEDLEY_GCC_VERSION JSON_HEDLEY_GNUC_VERSION #endif #if defined(JSON_HEDLEY_GCC_VERSION_CHECK) #undef JSON_HEDLEY_GCC_VERSION_CHECK #endif #if defined(JSON_HEDLEY_GCC_VERSION) #define JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_GCC_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) #else #define JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch) (0) #endif #if defined(JSON_HEDLEY_HAS_ATTRIBUTE) #undef JSON_HEDLEY_HAS_ATTRIBUTE #endif #if defined(__has_attribute) #define JSON_HEDLEY_HAS_ATTRIBUTE(attribute) __has_attribute(attribute) #else #define JSON_HEDLEY_HAS_ATTRIBUTE(attribute) (0) #endif #if defined(JSON_HEDLEY_GNUC_HAS_ATTRIBUTE) #undef JSON_HEDLEY_GNUC_HAS_ATTRIBUTE #endif #if defined(__has_attribute) #define JSON_HEDLEY_GNUC_HAS_ATTRIBUTE(attribute,major,minor,patch) __has_attribute(attribute) #else #define JSON_HEDLEY_GNUC_HAS_ATTRIBUTE(attribute,major,minor,patch) JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) #endif #if defined(JSON_HEDLEY_GCC_HAS_ATTRIBUTE) #undef JSON_HEDLEY_GCC_HAS_ATTRIBUTE #endif #if defined(__has_attribute) #define JSON_HEDLEY_GCC_HAS_ATTRIBUTE(attribute,major,minor,patch) __has_attribute(attribute) #else #define JSON_HEDLEY_GCC_HAS_ATTRIBUTE(attribute,major,minor,patch) JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch) #endif #if defined(JSON_HEDLEY_HAS_CPP_ATTRIBUTE) #undef JSON_HEDLEY_HAS_CPP_ATTRIBUTE #endif #if \ defined(__has_cpp_attribute) && \ defined(__cplusplus) && \ (!defined(JSON_HEDLEY_SUNPRO_VERSION) || JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,15,0)) #define JSON_HEDLEY_HAS_CPP_ATTRIBUTE(attribute) __has_cpp_attribute(attribute) #else #define JSON_HEDLEY_HAS_CPP_ATTRIBUTE(attribute) (0) #endif #if defined(JSON_HEDLEY_HAS_CPP_ATTRIBUTE_NS) #undef JSON_HEDLEY_HAS_CPP_ATTRIBUTE_NS #endif #if !defined(__cplusplus) || !defined(__has_cpp_attribute) #define JSON_HEDLEY_HAS_CPP_ATTRIBUTE_NS(ns,attribute) (0) #elif \ !defined(JSON_HEDLEY_PGI_VERSION) && \ (!defined(JSON_HEDLEY_SUNPRO_VERSION) || JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,15,0)) && \ (!defined(JSON_HEDLEY_MSVC_VERSION) || JSON_HEDLEY_MSVC_VERSION_CHECK(19,20,0)) #define JSON_HEDLEY_HAS_CPP_ATTRIBUTE_NS(ns,attribute) JSON_HEDLEY_HAS_CPP_ATTRIBUTE(ns::attribute) #else #define JSON_HEDLEY_HAS_CPP_ATTRIBUTE_NS(ns,attribute) (0) #endif #if defined(JSON_HEDLEY_GNUC_HAS_CPP_ATTRIBUTE) #undef JSON_HEDLEY_GNUC_HAS_CPP_ATTRIBUTE #endif #if defined(__has_cpp_attribute) && defined(__cplusplus) #define JSON_HEDLEY_GNUC_HAS_CPP_ATTRIBUTE(attribute,major,minor,patch) __has_cpp_attribute(attribute) #else #define JSON_HEDLEY_GNUC_HAS_CPP_ATTRIBUTE(attribute,major,minor,patch) JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) #endif #if defined(JSON_HEDLEY_GCC_HAS_CPP_ATTRIBUTE) #undef JSON_HEDLEY_GCC_HAS_CPP_ATTRIBUTE #endif #if defined(__has_cpp_attribute) && defined(__cplusplus) #define JSON_HEDLEY_GCC_HAS_CPP_ATTRIBUTE(attribute,major,minor,patch) __has_cpp_attribute(attribute) #else #define JSON_HEDLEY_GCC_HAS_CPP_ATTRIBUTE(attribute,major,minor,patch) JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch) #endif #if defined(JSON_HEDLEY_HAS_BUILTIN) #undef JSON_HEDLEY_HAS_BUILTIN #endif #if defined(__has_builtin) #define JSON_HEDLEY_HAS_BUILTIN(builtin) __has_builtin(builtin) #else #define JSON_HEDLEY_HAS_BUILTIN(builtin) (0) #endif #if defined(JSON_HEDLEY_GNUC_HAS_BUILTIN) #undef JSON_HEDLEY_GNUC_HAS_BUILTIN #endif #if defined(__has_builtin) #define JSON_HEDLEY_GNUC_HAS_BUILTIN(builtin,major,minor,patch) __has_builtin(builtin) #else #define JSON_HEDLEY_GNUC_HAS_BUILTIN(builtin,major,minor,patch) JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) #endif #if defined(JSON_HEDLEY_GCC_HAS_BUILTIN) #undef JSON_HEDLEY_GCC_HAS_BUILTIN #endif #if defined(__has_builtin) #define JSON_HEDLEY_GCC_HAS_BUILTIN(builtin,major,minor,patch) __has_builtin(builtin) #else #define JSON_HEDLEY_GCC_HAS_BUILTIN(builtin,major,minor,patch) JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch) #endif #if defined(JSON_HEDLEY_HAS_FEATURE) #undef JSON_HEDLEY_HAS_FEATURE #endif #if defined(__has_feature) #define JSON_HEDLEY_HAS_FEATURE(feature) __has_feature(feature) #else #define JSON_HEDLEY_HAS_FEATURE(feature) (0) #endif #if defined(JSON_HEDLEY_GNUC_HAS_FEATURE) #undef JSON_HEDLEY_GNUC_HAS_FEATURE #endif #if defined(__has_feature) #define JSON_HEDLEY_GNUC_HAS_FEATURE(feature,major,minor,patch) __has_feature(feature) #else #define JSON_HEDLEY_GNUC_HAS_FEATURE(feature,major,minor,patch) JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) #endif #if defined(JSON_HEDLEY_GCC_HAS_FEATURE) #undef JSON_HEDLEY_GCC_HAS_FEATURE #endif #if defined(__has_feature) #define JSON_HEDLEY_GCC_HAS_FEATURE(feature,major,minor,patch) __has_feature(feature) #else #define JSON_HEDLEY_GCC_HAS_FEATURE(feature,major,minor,patch) JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch) #endif #if defined(JSON_HEDLEY_HAS_EXTENSION) #undef JSON_HEDLEY_HAS_EXTENSION #endif #if defined(__has_extension) #define JSON_HEDLEY_HAS_EXTENSION(extension) __has_extension(extension) #else #define JSON_HEDLEY_HAS_EXTENSION(extension) (0) #endif #if defined(JSON_HEDLEY_GNUC_HAS_EXTENSION) #undef JSON_HEDLEY_GNUC_HAS_EXTENSION #endif #if defined(__has_extension) #define JSON_HEDLEY_GNUC_HAS_EXTENSION(extension,major,minor,patch) __has_extension(extension) #else #define JSON_HEDLEY_GNUC_HAS_EXTENSION(extension,major,minor,patch) JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) #endif #if defined(JSON_HEDLEY_GCC_HAS_EXTENSION) #undef JSON_HEDLEY_GCC_HAS_EXTENSION #endif #if defined(__has_extension) #define JSON_HEDLEY_GCC_HAS_EXTENSION(extension,major,minor,patch) __has_extension(extension) #else #define JSON_HEDLEY_GCC_HAS_EXTENSION(extension,major,minor,patch) JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch) #endif #if defined(JSON_HEDLEY_HAS_DECLSPEC_ATTRIBUTE) #undef JSON_HEDLEY_HAS_DECLSPEC_ATTRIBUTE #endif #if defined(__has_declspec_attribute) #define JSON_HEDLEY_HAS_DECLSPEC_ATTRIBUTE(attribute) __has_declspec_attribute(attribute) #else #define JSON_HEDLEY_HAS_DECLSPEC_ATTRIBUTE(attribute) (0) #endif #if defined(JSON_HEDLEY_GNUC_HAS_DECLSPEC_ATTRIBUTE) #undef JSON_HEDLEY_GNUC_HAS_DECLSPEC_ATTRIBUTE #endif #if defined(__has_declspec_attribute) #define JSON_HEDLEY_GNUC_HAS_DECLSPEC_ATTRIBUTE(attribute,major,minor,patch) __has_declspec_attribute(attribute) #else #define JSON_HEDLEY_GNUC_HAS_DECLSPEC_ATTRIBUTE(attribute,major,minor,patch) JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) #endif #if defined(JSON_HEDLEY_GCC_HAS_DECLSPEC_ATTRIBUTE) #undef JSON_HEDLEY_GCC_HAS_DECLSPEC_ATTRIBUTE #endif #if defined(__has_declspec_attribute) #define JSON_HEDLEY_GCC_HAS_DECLSPEC_ATTRIBUTE(attribute,major,minor,patch) __has_declspec_attribute(attribute) #else #define JSON_HEDLEY_GCC_HAS_DECLSPEC_ATTRIBUTE(attribute,major,minor,patch) JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch) #endif #if defined(JSON_HEDLEY_HAS_WARNING) #undef JSON_HEDLEY_HAS_WARNING #endif #if defined(__has_warning) #define JSON_HEDLEY_HAS_WARNING(warning) __has_warning(warning) #else #define JSON_HEDLEY_HAS_WARNING(warning) (0) #endif #if defined(JSON_HEDLEY_GNUC_HAS_WARNING) #undef JSON_HEDLEY_GNUC_HAS_WARNING #endif #if defined(__has_warning) #define JSON_HEDLEY_GNUC_HAS_WARNING(warning,major,minor,patch) __has_warning(warning) #else #define JSON_HEDLEY_GNUC_HAS_WARNING(warning,major,minor,patch) JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) #endif #if defined(JSON_HEDLEY_GCC_HAS_WARNING) #undef JSON_HEDLEY_GCC_HAS_WARNING #endif #if defined(__has_warning) #define JSON_HEDLEY_GCC_HAS_WARNING(warning,major,minor,patch) __has_warning(warning) #else #define JSON_HEDLEY_GCC_HAS_WARNING(warning,major,minor,patch) JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch) #endif /* JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_ is for HEDLEY INTERNAL USE ONLY. API subject to change without notice. */ #if defined(JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_) #undef JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_ #endif #if defined(__cplusplus) && JSON_HEDLEY_HAS_WARNING("-Wc++98-compat") # define JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(xpr) \ JSON_HEDLEY_DIAGNOSTIC_PUSH \ _Pragma("clang diagnostic ignored \"-Wc++98-compat\"") \ xpr \ JSON_HEDLEY_DIAGNOSTIC_POP #else # define JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(x) x #endif #if \ (defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || \ defined(__clang__) || \ JSON_HEDLEY_GCC_VERSION_CHECK(3,0,0) || \ JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0) || \ JSON_HEDLEY_PGI_VERSION_CHECK(18,4,0) || \ JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ JSON_HEDLEY_TI_VERSION_CHECK(6,0,0) || \ JSON_HEDLEY_CRAY_VERSION_CHECK(5,0,0) || \ JSON_HEDLEY_TINYC_VERSION_CHECK(0,9,17) || \ JSON_HEDLEY_SUNPRO_VERSION_CHECK(8,0,0) || \ (JSON_HEDLEY_IBM_VERSION_CHECK(10,1,0) && defined(__C99_PRAGMA_OPERATOR)) #define JSON_HEDLEY_PRAGMA(value) _Pragma(#value) #elif JSON_HEDLEY_MSVC_VERSION_CHECK(15,0,0) #define JSON_HEDLEY_PRAGMA(value) __pragma(value) #else #define JSON_HEDLEY_PRAGMA(value) #endif #if defined(JSON_HEDLEY_DIAGNOSTIC_PUSH) #undef JSON_HEDLEY_DIAGNOSTIC_PUSH #endif #if defined(JSON_HEDLEY_DIAGNOSTIC_POP) #undef JSON_HEDLEY_DIAGNOSTIC_POP #endif #if defined(__clang__) #define JSON_HEDLEY_DIAGNOSTIC_PUSH _Pragma("clang diagnostic push") #define JSON_HEDLEY_DIAGNOSTIC_POP _Pragma("clang diagnostic pop") #elif JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) #define JSON_HEDLEY_DIAGNOSTIC_PUSH _Pragma("warning(push)") #define JSON_HEDLEY_DIAGNOSTIC_POP _Pragma("warning(pop)") #elif JSON_HEDLEY_GCC_VERSION_CHECK(4,6,0) #define JSON_HEDLEY_DIAGNOSTIC_PUSH _Pragma("GCC diagnostic push") #define JSON_HEDLEY_DIAGNOSTIC_POP _Pragma("GCC diagnostic pop") #elif JSON_HEDLEY_MSVC_VERSION_CHECK(15,0,0) #define JSON_HEDLEY_DIAGNOSTIC_PUSH __pragma(warning(push)) #define JSON_HEDLEY_DIAGNOSTIC_POP __pragma(warning(pop)) #elif JSON_HEDLEY_ARM_VERSION_CHECK(5,6,0) #define JSON_HEDLEY_DIAGNOSTIC_PUSH _Pragma("push") #define JSON_HEDLEY_DIAGNOSTIC_POP _Pragma("pop") #elif JSON_HEDLEY_TI_VERSION_CHECK(8,1,0) #define JSON_HEDLEY_DIAGNOSTIC_PUSH _Pragma("diag_push") #define JSON_HEDLEY_DIAGNOSTIC_POP _Pragma("diag_pop") #elif JSON_HEDLEY_PELLES_VERSION_CHECK(2,90,0) #define JSON_HEDLEY_DIAGNOSTIC_PUSH _Pragma("warning(push)") #define JSON_HEDLEY_DIAGNOSTIC_POP _Pragma("warning(pop)") #else #define JSON_HEDLEY_DIAGNOSTIC_PUSH #define JSON_HEDLEY_DIAGNOSTIC_POP #endif #if defined(JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED) #undef JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED #endif #if JSON_HEDLEY_HAS_WARNING("-Wdeprecated-declarations") #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("clang diagnostic ignored \"-Wdeprecated-declarations\"") #elif JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("warning(disable:1478 1786)") #elif JSON_HEDLEY_PGI_VERSION_CHECK(17,10,0) #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("diag_suppress 1215,1444") #elif JSON_HEDLEY_GCC_VERSION_CHECK(4,3,0) #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"") #elif JSON_HEDLEY_MSVC_VERSION_CHECK(15,0,0) #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED __pragma(warning(disable:4996)) #elif JSON_HEDLEY_TI_VERSION_CHECK(8,0,0) #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("diag_suppress 1291,1718") #elif JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,13,0) && !defined(__cplusplus) #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("error_messages(off,E_DEPRECATED_ATT,E_DEPRECATED_ATT_MESS)") #elif JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,13,0) && defined(__cplusplus) #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("error_messages(off,symdeprecated,symdeprecated2)") #elif JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0) #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("diag_suppress=Pe1444,Pe1215") #elif JSON_HEDLEY_PELLES_VERSION_CHECK(2,90,0) #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("warn(disable:2241)") #else #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED #endif #if defined(JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS) #undef JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS #endif #if JSON_HEDLEY_HAS_WARNING("-Wunknown-pragmas") #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("clang diagnostic ignored \"-Wunknown-pragmas\"") #elif JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("warning(disable:161)") #elif JSON_HEDLEY_PGI_VERSION_CHECK(17,10,0) #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("diag_suppress 1675") #elif JSON_HEDLEY_GCC_VERSION_CHECK(4,3,0) #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("GCC diagnostic ignored \"-Wunknown-pragmas\"") #elif JSON_HEDLEY_MSVC_VERSION_CHECK(15,0,0) #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS __pragma(warning(disable:4068)) #elif JSON_HEDLEY_TI_VERSION_CHECK(8,0,0) #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("diag_suppress 163") #elif JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0) #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("diag_suppress=Pe161") #else #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS #endif #if defined(JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES) #undef JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES #endif #if JSON_HEDLEY_HAS_WARNING("-Wunknown-attributes") #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("clang diagnostic ignored \"-Wunknown-attributes\"") #elif JSON_HEDLEY_GCC_VERSION_CHECK(4,6,0) #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"") #elif JSON_HEDLEY_INTEL_VERSION_CHECK(17,0,0) #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("warning(disable:1292)") #elif JSON_HEDLEY_MSVC_VERSION_CHECK(19,0,0) #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES __pragma(warning(disable:5030)) #elif JSON_HEDLEY_PGI_VERSION_CHECK(17,10,0) #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("diag_suppress 1097") #elif JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,14,0) && defined(__cplusplus) #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("error_messages(off,attrskipunsup)") #elif JSON_HEDLEY_TI_VERSION_CHECK(8,0,0) #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("diag_suppress 1173") #else #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES #endif #if defined(JSON_HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL) #undef JSON_HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL #endif #if JSON_HEDLEY_HAS_WARNING("-Wcast-qual") #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL _Pragma("clang diagnostic ignored \"-Wcast-qual\"") #elif JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL _Pragma("warning(disable:2203 2331)") #elif JSON_HEDLEY_GCC_VERSION_CHECK(3,0,0) #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL _Pragma("GCC diagnostic ignored \"-Wcast-qual\"") #else #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL #endif #if defined(JSON_HEDLEY_DEPRECATED) #undef JSON_HEDLEY_DEPRECATED #endif #if defined(JSON_HEDLEY_DEPRECATED_FOR) #undef JSON_HEDLEY_DEPRECATED_FOR #endif #if defined(__cplusplus) && (__cplusplus >= 201402L) #define JSON_HEDLEY_DEPRECATED(since) JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[deprecated("Since " #since)]]) #define JSON_HEDLEY_DEPRECATED_FOR(since, replacement) JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[deprecated("Since " #since "; use " #replacement)]]) #elif \ JSON_HEDLEY_HAS_EXTENSION(attribute_deprecated_with_message) || \ JSON_HEDLEY_GCC_VERSION_CHECK(4,5,0) || \ JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ JSON_HEDLEY_ARM_VERSION_CHECK(5,6,0) || \ JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,13,0) || \ JSON_HEDLEY_PGI_VERSION_CHECK(17,10,0) || \ JSON_HEDLEY_TI_VERSION_CHECK(8,3,0) #define JSON_HEDLEY_DEPRECATED(since) __attribute__((__deprecated__("Since " #since))) #define JSON_HEDLEY_DEPRECATED_FOR(since, replacement) __attribute__((__deprecated__("Since " #since "; use " #replacement))) #elif \ JSON_HEDLEY_HAS_ATTRIBUTE(deprecated) || \ JSON_HEDLEY_GCC_VERSION_CHECK(3,1,0) || \ JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ JSON_HEDLEY_TI_VERSION_CHECK(8,0,0) || \ (JSON_HEDLEY_TI_VERSION_CHECK(7,3,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) #define JSON_HEDLEY_DEPRECATED(since) __attribute__((__deprecated__)) #define JSON_HEDLEY_DEPRECATED_FOR(since, replacement) __attribute__((__deprecated__)) #elif JSON_HEDLEY_MSVC_VERSION_CHECK(14,0,0) #define JSON_HEDLEY_DEPRECATED(since) __declspec(deprecated("Since " # since)) #define JSON_HEDLEY_DEPRECATED_FOR(since, replacement) __declspec(deprecated("Since " #since "; use " #replacement)) #elif \ JSON_HEDLEY_MSVC_VERSION_CHECK(13,10,0) || \ JSON_HEDLEY_PELLES_VERSION_CHECK(6,50,0) #define JSON_HEDLEY_DEPRECATED(since) __declspec(deprecated) #define JSON_HEDLEY_DEPRECATED_FOR(since, replacement) __declspec(deprecated) #elif JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0) #define JSON_HEDLEY_DEPRECATED(since) _Pragma("deprecated") #define JSON_HEDLEY_DEPRECATED_FOR(since, replacement) _Pragma("deprecated") #else #define JSON_HEDLEY_DEPRECATED(since) #define JSON_HEDLEY_DEPRECATED_FOR(since, replacement) #endif #if defined(JSON_HEDLEY_UNAVAILABLE) #undef JSON_HEDLEY_UNAVAILABLE #endif #if \ JSON_HEDLEY_HAS_ATTRIBUTE(warning) || \ JSON_HEDLEY_GCC_VERSION_CHECK(4,3,0) || \ JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) #define JSON_HEDLEY_UNAVAILABLE(available_since) __attribute__((__warning__("Not available until " #available_since))) #else #define JSON_HEDLEY_UNAVAILABLE(available_since) #endif #if defined(JSON_HEDLEY_WARN_UNUSED_RESULT) #undef JSON_HEDLEY_WARN_UNUSED_RESULT #endif #if defined(__cplusplus) && (__cplusplus >= 201703L) #define JSON_HEDLEY_WARN_UNUSED_RESULT JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[nodiscard]]) #elif \ JSON_HEDLEY_HAS_ATTRIBUTE(warn_unused_result) || \ JSON_HEDLEY_GCC_VERSION_CHECK(3,4,0) || \ JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ JSON_HEDLEY_TI_VERSION_CHECK(8,0,0) || \ (JSON_HEDLEY_TI_VERSION_CHECK(7,3,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ (JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,15,0) && defined(__cplusplus)) || \ JSON_HEDLEY_PGI_VERSION_CHECK(17,10,0) #define JSON_HEDLEY_WARN_UNUSED_RESULT __attribute__((__warn_unused_result__)) #elif defined(_Check_return_) /* SAL */ #define JSON_HEDLEY_WARN_UNUSED_RESULT _Check_return_ #else #define JSON_HEDLEY_WARN_UNUSED_RESULT #endif #if defined(JSON_HEDLEY_SENTINEL) #undef JSON_HEDLEY_SENTINEL #endif #if \ JSON_HEDLEY_HAS_ATTRIBUTE(sentinel) || \ JSON_HEDLEY_GCC_VERSION_CHECK(4,0,0) || \ JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ JSON_HEDLEY_ARM_VERSION_CHECK(5,4,0) #define JSON_HEDLEY_SENTINEL(position) __attribute__((__sentinel__(position))) #else #define JSON_HEDLEY_SENTINEL(position) #endif #if defined(JSON_HEDLEY_NO_RETURN) #undef JSON_HEDLEY_NO_RETURN #endif #if JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0) #define JSON_HEDLEY_NO_RETURN __noreturn #elif JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) #define JSON_HEDLEY_NO_RETURN __attribute__((__noreturn__)) #elif defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L #define JSON_HEDLEY_NO_RETURN _Noreturn #elif defined(__cplusplus) && (__cplusplus >= 201103L) #define JSON_HEDLEY_NO_RETURN JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[noreturn]]) #elif \ JSON_HEDLEY_HAS_ATTRIBUTE(noreturn) || \ JSON_HEDLEY_GCC_VERSION_CHECK(3,2,0) || \ JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,11,0) || \ JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ JSON_HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ JSON_HEDLEY_TI_VERSION_CHECK(18,0,0) || \ (JSON_HEDLEY_TI_VERSION_CHECK(17,3,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) #define JSON_HEDLEY_NO_RETURN __attribute__((__noreturn__)) #elif JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,10,0) #define JSON_HEDLEY_NO_RETURN _Pragma("does_not_return") #elif JSON_HEDLEY_MSVC_VERSION_CHECK(13,10,0) #define JSON_HEDLEY_NO_RETURN __declspec(noreturn) #elif JSON_HEDLEY_TI_VERSION_CHECK(6,0,0) && defined(__cplusplus) #define JSON_HEDLEY_NO_RETURN _Pragma("FUNC_NEVER_RETURNS;") #elif JSON_HEDLEY_COMPCERT_VERSION_CHECK(3,2,0) #define JSON_HEDLEY_NO_RETURN __attribute((noreturn)) #elif JSON_HEDLEY_PELLES_VERSION_CHECK(9,0,0) #define JSON_HEDLEY_NO_RETURN __declspec(noreturn) #else #define JSON_HEDLEY_NO_RETURN #endif #if defined(JSON_HEDLEY_NO_ESCAPE) #undef JSON_HEDLEY_NO_ESCAPE #endif #if JSON_HEDLEY_HAS_ATTRIBUTE(noescape) #define JSON_HEDLEY_NO_ESCAPE __attribute__((__noescape__)) #else #define JSON_HEDLEY_NO_ESCAPE #endif #if defined(JSON_HEDLEY_UNREACHABLE) #undef JSON_HEDLEY_UNREACHABLE #endif #if defined(JSON_HEDLEY_UNREACHABLE_RETURN) #undef JSON_HEDLEY_UNREACHABLE_RETURN #endif #if \ (JSON_HEDLEY_HAS_BUILTIN(__builtin_unreachable) && (!defined(JSON_HEDLEY_ARM_VERSION))) || \ JSON_HEDLEY_GCC_VERSION_CHECK(4,5,0) || \ JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ JSON_HEDLEY_IBM_VERSION_CHECK(13,1,5) #define JSON_HEDLEY_UNREACHABLE() __builtin_unreachable() #elif JSON_HEDLEY_MSVC_VERSION_CHECK(13,10,0) #define JSON_HEDLEY_UNREACHABLE() __assume(0) #elif JSON_HEDLEY_TI_VERSION_CHECK(6,0,0) #if defined(__cplusplus) #define JSON_HEDLEY_UNREACHABLE() std::_nassert(0) #else #define JSON_HEDLEY_UNREACHABLE() _nassert(0) #endif #define JSON_HEDLEY_UNREACHABLE_RETURN(value) return value #elif defined(EXIT_FAILURE) #define JSON_HEDLEY_UNREACHABLE() abort() #else #define JSON_HEDLEY_UNREACHABLE() #define JSON_HEDLEY_UNREACHABLE_RETURN(value) return value #endif #if !defined(JSON_HEDLEY_UNREACHABLE_RETURN) #define JSON_HEDLEY_UNREACHABLE_RETURN(value) JSON_HEDLEY_UNREACHABLE() #endif #if defined(JSON_HEDLEY_ASSUME) #undef JSON_HEDLEY_ASSUME #endif #if \ JSON_HEDLEY_MSVC_VERSION_CHECK(13,10,0) || \ JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) #define JSON_HEDLEY_ASSUME(expr) __assume(expr) #elif JSON_HEDLEY_HAS_BUILTIN(__builtin_assume) #define JSON_HEDLEY_ASSUME(expr) __builtin_assume(expr) #elif JSON_HEDLEY_TI_VERSION_CHECK(6,0,0) #if defined(__cplusplus) #define JSON_HEDLEY_ASSUME(expr) std::_nassert(expr) #else #define JSON_HEDLEY_ASSUME(expr) _nassert(expr) #endif #elif \ (JSON_HEDLEY_HAS_BUILTIN(__builtin_unreachable) && !defined(JSON_HEDLEY_ARM_VERSION)) || \ JSON_HEDLEY_GCC_VERSION_CHECK(4,5,0) || \ JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ JSON_HEDLEY_IBM_VERSION_CHECK(13,1,5) #define JSON_HEDLEY_ASSUME(expr) ((void) ((expr) ? 1 : (__builtin_unreachable(), 1))) #else #define JSON_HEDLEY_ASSUME(expr) ((void) (expr)) #endif JSON_HEDLEY_DIAGNOSTIC_PUSH #if JSON_HEDLEY_HAS_WARNING("-Wpedantic") #pragma clang diagnostic ignored "-Wpedantic" #endif #if JSON_HEDLEY_HAS_WARNING("-Wc++98-compat-pedantic") && defined(__cplusplus) #pragma clang diagnostic ignored "-Wc++98-compat-pedantic" #endif #if JSON_HEDLEY_GCC_HAS_WARNING("-Wvariadic-macros",4,0,0) #if defined(__clang__) #pragma clang diagnostic ignored "-Wvariadic-macros" #elif defined(JSON_HEDLEY_GCC_VERSION) #pragma GCC diagnostic ignored "-Wvariadic-macros" #endif #endif #if defined(JSON_HEDLEY_NON_NULL) #undef JSON_HEDLEY_NON_NULL #endif #if \ JSON_HEDLEY_HAS_ATTRIBUTE(nonnull) || \ JSON_HEDLEY_GCC_VERSION_CHECK(3,3,0) || \ JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) #define JSON_HEDLEY_NON_NULL(...) __attribute__((__nonnull__(__VA_ARGS__))) #else #define JSON_HEDLEY_NON_NULL(...) #endif JSON_HEDLEY_DIAGNOSTIC_POP #if defined(JSON_HEDLEY_PRINTF_FORMAT) #undef JSON_HEDLEY_PRINTF_FORMAT #endif #if defined(__MINGW32__) && JSON_HEDLEY_GCC_HAS_ATTRIBUTE(format,4,4,0) && !defined(__USE_MINGW_ANSI_STDIO) #define JSON_HEDLEY_PRINTF_FORMAT(string_idx,first_to_check) __attribute__((__format__(ms_printf, string_idx, first_to_check))) #elif defined(__MINGW32__) && JSON_HEDLEY_GCC_HAS_ATTRIBUTE(format,4,4,0) && defined(__USE_MINGW_ANSI_STDIO) #define JSON_HEDLEY_PRINTF_FORMAT(string_idx,first_to_check) __attribute__((__format__(gnu_printf, string_idx, first_to_check))) #elif \ JSON_HEDLEY_HAS_ATTRIBUTE(format) || \ JSON_HEDLEY_GCC_VERSION_CHECK(3,1,0) || \ JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ JSON_HEDLEY_ARM_VERSION_CHECK(5,6,0) || \ JSON_HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ JSON_HEDLEY_TI_VERSION_CHECK(8,0,0) || \ (JSON_HEDLEY_TI_VERSION_CHECK(7,3,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) #define JSON_HEDLEY_PRINTF_FORMAT(string_idx,first_to_check) __attribute__((__format__(__printf__, string_idx, first_to_check))) #elif JSON_HEDLEY_PELLES_VERSION_CHECK(6,0,0) #define JSON_HEDLEY_PRINTF_FORMAT(string_idx,first_to_check) __declspec(vaformat(printf,string_idx,first_to_check)) #else #define JSON_HEDLEY_PRINTF_FORMAT(string_idx,first_to_check) #endif #if defined(JSON_HEDLEY_CONSTEXPR) #undef JSON_HEDLEY_CONSTEXPR #endif #if defined(__cplusplus) #if __cplusplus >= 201103L #define JSON_HEDLEY_CONSTEXPR JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(constexpr) #endif #endif #if !defined(JSON_HEDLEY_CONSTEXPR) #define JSON_HEDLEY_CONSTEXPR #endif #if defined(JSON_HEDLEY_PREDICT) #undef JSON_HEDLEY_PREDICT #endif #if defined(JSON_HEDLEY_LIKELY) #undef JSON_HEDLEY_LIKELY #endif #if defined(JSON_HEDLEY_UNLIKELY) #undef JSON_HEDLEY_UNLIKELY #endif #if defined(JSON_HEDLEY_UNPREDICTABLE) #undef JSON_HEDLEY_UNPREDICTABLE #endif #if JSON_HEDLEY_HAS_BUILTIN(__builtin_unpredictable) #define JSON_HEDLEY_UNPREDICTABLE(expr) __builtin_unpredictable(!!(expr)) #endif #if \ JSON_HEDLEY_HAS_BUILTIN(__builtin_expect_with_probability) || \ JSON_HEDLEY_GCC_VERSION_CHECK(9,0,0) # define JSON_HEDLEY_PREDICT(expr, value, probability) __builtin_expect_with_probability(expr, value, probability) # define JSON_HEDLEY_PREDICT_TRUE(expr, probability) __builtin_expect_with_probability(!!(expr), 1, probability) # define JSON_HEDLEY_PREDICT_FALSE(expr, probability) __builtin_expect_with_probability(!!(expr), 0, probability) # define JSON_HEDLEY_LIKELY(expr) __builtin_expect(!!(expr), 1) # define JSON_HEDLEY_UNLIKELY(expr) __builtin_expect(!!(expr), 0) #if !defined(JSON_HEDLEY_BUILTIN_UNPREDICTABLE) #define JSON_HEDLEY_BUILTIN_UNPREDICTABLE(expr) __builtin_expect_with_probability(!!(expr), 1, 0.5) #endif #elif \ JSON_HEDLEY_HAS_BUILTIN(__builtin_expect) || \ JSON_HEDLEY_GCC_VERSION_CHECK(3,0,0) || \ JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ (JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,15,0) && defined(__cplusplus)) || \ JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ JSON_HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ JSON_HEDLEY_TI_VERSION_CHECK(6,1,0) || \ JSON_HEDLEY_TINYC_VERSION_CHECK(0,9,27) # define JSON_HEDLEY_PREDICT(expr, expected, probability) \ (((probability) >= 0.9) ? __builtin_expect(!!(expr), (expected)) : (((void) (expected)), !!(expr))) # define JSON_HEDLEY_PREDICT_TRUE(expr, probability) \ (__extension__ ({ \ JSON_HEDLEY_CONSTEXPR double hedley_probability_ = (probability); \ ((hedley_probability_ >= 0.9) ? __builtin_expect(!!(expr), 1) : ((hedley_probability_ <= 0.1) ? __builtin_expect(!!(expr), 0) : !!(expr))); \ })) # define JSON_HEDLEY_PREDICT_FALSE(expr, probability) \ (__extension__ ({ \ JSON_HEDLEY_CONSTEXPR double hedley_probability_ = (probability); \ ((hedley_probability_ >= 0.9) ? __builtin_expect(!!(expr), 0) : ((hedley_probability_ <= 0.1) ? __builtin_expect(!!(expr), 1) : !!(expr))); \ })) # define JSON_HEDLEY_LIKELY(expr) __builtin_expect(!!(expr), 1) # define JSON_HEDLEY_UNLIKELY(expr) __builtin_expect(!!(expr), 0) #else # define JSON_HEDLEY_PREDICT(expr, expected, probability) (((void) (expected)), !!(expr)) # define JSON_HEDLEY_PREDICT_TRUE(expr, probability) (!!(expr)) # define JSON_HEDLEY_PREDICT_FALSE(expr, probability) (!!(expr)) # define JSON_HEDLEY_LIKELY(expr) (!!(expr)) # define JSON_HEDLEY_UNLIKELY(expr) (!!(expr)) #endif #if !defined(JSON_HEDLEY_UNPREDICTABLE) #define JSON_HEDLEY_UNPREDICTABLE(expr) JSON_HEDLEY_PREDICT(expr, 1, 0.5) #endif #if defined(JSON_HEDLEY_MALLOC) #undef JSON_HEDLEY_MALLOC #endif #if \ JSON_HEDLEY_HAS_ATTRIBUTE(malloc) || \ JSON_HEDLEY_GCC_VERSION_CHECK(3,1,0) || \ JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,11,0) || \ JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ JSON_HEDLEY_IBM_VERSION_CHECK(12,1,0) || \ JSON_HEDLEY_TI_VERSION_CHECK(8,0,0) || \ (JSON_HEDLEY_TI_VERSION_CHECK(7,3,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) #define JSON_HEDLEY_MALLOC __attribute__((__malloc__)) #elif JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,10,0) #define JSON_HEDLEY_MALLOC _Pragma("returns_new_memory") #elif JSON_HEDLEY_MSVC_VERSION_CHECK(14, 0, 0) #define JSON_HEDLEY_MALLOC __declspec(restrict) #else #define JSON_HEDLEY_MALLOC #endif #if defined(JSON_HEDLEY_PURE) #undef JSON_HEDLEY_PURE #endif #if \ JSON_HEDLEY_HAS_ATTRIBUTE(pure) || \ JSON_HEDLEY_GCC_VERSION_CHECK(2,96,0) || \ JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,11,0) || \ JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ JSON_HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ JSON_HEDLEY_TI_VERSION_CHECK(8,0,0) || \ (JSON_HEDLEY_TI_VERSION_CHECK(7,3,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ JSON_HEDLEY_PGI_VERSION_CHECK(17,10,0) #define JSON_HEDLEY_PURE __attribute__((__pure__)) #elif JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,10,0) #define JSON_HEDLEY_PURE _Pragma("does_not_write_global_data") #elif JSON_HEDLEY_TI_VERSION_CHECK(6,0,0) && defined(__cplusplus) #define JSON_HEDLEY_PURE _Pragma("FUNC_IS_PURE;") #else #define JSON_HEDLEY_PURE #endif #if defined(JSON_HEDLEY_CONST) #undef JSON_HEDLEY_CONST #endif #if \ JSON_HEDLEY_HAS_ATTRIBUTE(const) || \ JSON_HEDLEY_GCC_VERSION_CHECK(2,5,0) || \ JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,11,0) || \ JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ JSON_HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ JSON_HEDLEY_TI_VERSION_CHECK(8,0,0) || \ (JSON_HEDLEY_TI_VERSION_CHECK(7,3,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ JSON_HEDLEY_PGI_VERSION_CHECK(17,10,0) #define JSON_HEDLEY_CONST __attribute__((__const__)) #elif \ JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,10,0) #define JSON_HEDLEY_CONST _Pragma("no_side_effect") #else #define JSON_HEDLEY_CONST JSON_HEDLEY_PURE #endif #if defined(JSON_HEDLEY_RESTRICT) #undef JSON_HEDLEY_RESTRICT #endif #if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) && !defined(__cplusplus) #define JSON_HEDLEY_RESTRICT restrict #elif \ JSON_HEDLEY_GCC_VERSION_CHECK(3,1,0) || \ JSON_HEDLEY_MSVC_VERSION_CHECK(14,0,0) || \ JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ JSON_HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ JSON_HEDLEY_PGI_VERSION_CHECK(17,10,0) || \ JSON_HEDLEY_TI_VERSION_CHECK(8,0,0) || \ (JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,14,0) && defined(__cplusplus)) || \ JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0) || \ defined(__clang__) #define JSON_HEDLEY_RESTRICT __restrict #elif JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,3,0) && !defined(__cplusplus) #define JSON_HEDLEY_RESTRICT _Restrict #else #define JSON_HEDLEY_RESTRICT #endif #if defined(JSON_HEDLEY_INLINE) #undef JSON_HEDLEY_INLINE #endif #if \ (defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || \ (defined(__cplusplus) && (__cplusplus >= 199711L)) #define JSON_HEDLEY_INLINE inline #elif \ defined(JSON_HEDLEY_GCC_VERSION) || \ JSON_HEDLEY_ARM_VERSION_CHECK(6,2,0) #define JSON_HEDLEY_INLINE __inline__ #elif \ JSON_HEDLEY_MSVC_VERSION_CHECK(12,0,0) || \ JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ JSON_HEDLEY_TI_VERSION_CHECK(8,0,0) #define JSON_HEDLEY_INLINE __inline #else #define JSON_HEDLEY_INLINE #endif #if defined(JSON_HEDLEY_ALWAYS_INLINE) #undef JSON_HEDLEY_ALWAYS_INLINE #endif #if \ JSON_HEDLEY_HAS_ATTRIBUTE(always_inline) || \ JSON_HEDLEY_GCC_VERSION_CHECK(4,0,0) || \ JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,11,0) || \ JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ JSON_HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ JSON_HEDLEY_TI_VERSION_CHECK(8,0,0) || \ (JSON_HEDLEY_TI_VERSION_CHECK(7,3,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) #define JSON_HEDLEY_ALWAYS_INLINE __attribute__((__always_inline__)) JSON_HEDLEY_INLINE #elif JSON_HEDLEY_MSVC_VERSION_CHECK(12,0,0) #define JSON_HEDLEY_ALWAYS_INLINE __forceinline #elif JSON_HEDLEY_TI_VERSION_CHECK(7,0,0) && defined(__cplusplus) #define JSON_HEDLEY_ALWAYS_INLINE _Pragma("FUNC_ALWAYS_INLINE;") #elif JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0) #define JSON_HEDLEY_ALWAYS_INLINE _Pragma("inline=forced") #else #define JSON_HEDLEY_ALWAYS_INLINE JSON_HEDLEY_INLINE #endif #if defined(JSON_HEDLEY_NEVER_INLINE) #undef JSON_HEDLEY_NEVER_INLINE #endif #if \ JSON_HEDLEY_HAS_ATTRIBUTE(noinline) || \ JSON_HEDLEY_GCC_VERSION_CHECK(4,0,0) || \ JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,11,0) || \ JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ JSON_HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ JSON_HEDLEY_TI_VERSION_CHECK(8,0,0) || \ (JSON_HEDLEY_TI_VERSION_CHECK(7,3,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) #define JSON_HEDLEY_NEVER_INLINE __attribute__((__noinline__)) #elif JSON_HEDLEY_MSVC_VERSION_CHECK(13,10,0) #define JSON_HEDLEY_NEVER_INLINE __declspec(noinline) #elif JSON_HEDLEY_PGI_VERSION_CHECK(10,2,0) #define JSON_HEDLEY_NEVER_INLINE _Pragma("noinline") #elif JSON_HEDLEY_TI_VERSION_CHECK(6,0,0) && defined(__cplusplus) #define JSON_HEDLEY_NEVER_INLINE _Pragma("FUNC_CANNOT_INLINE;") #elif JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0) #define JSON_HEDLEY_NEVER_INLINE _Pragma("inline=never") #elif JSON_HEDLEY_COMPCERT_VERSION_CHECK(3,2,0) #define JSON_HEDLEY_NEVER_INLINE __attribute((noinline)) #elif JSON_HEDLEY_PELLES_VERSION_CHECK(9,0,0) #define JSON_HEDLEY_NEVER_INLINE __declspec(noinline) #else #define JSON_HEDLEY_NEVER_INLINE #endif #if defined(JSON_HEDLEY_PRIVATE) #undef JSON_HEDLEY_PRIVATE #endif #if defined(JSON_HEDLEY_PUBLIC) #undef JSON_HEDLEY_PUBLIC #endif #if defined(JSON_HEDLEY_IMPORT) #undef JSON_HEDLEY_IMPORT #endif #if defined(_WIN32) || defined(__CYGWIN__) #define JSON_HEDLEY_PRIVATE #define JSON_HEDLEY_PUBLIC __declspec(dllexport) #define JSON_HEDLEY_IMPORT __declspec(dllimport) #else #if \ JSON_HEDLEY_HAS_ATTRIBUTE(visibility) || \ JSON_HEDLEY_GCC_VERSION_CHECK(3,3,0) || \ JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,11,0) || \ JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ JSON_HEDLEY_IBM_VERSION_CHECK(13,1,0) || \ JSON_HEDLEY_TI_VERSION_CHECK(8,0,0) || \ (JSON_HEDLEY_TI_VERSION_CHECK(7,3,0) && defined(__TI_EABI__) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) #define JSON_HEDLEY_PRIVATE __attribute__((__visibility__("hidden"))) #define JSON_HEDLEY_PUBLIC __attribute__((__visibility__("default"))) #else #define JSON_HEDLEY_PRIVATE #define JSON_HEDLEY_PUBLIC #endif #define JSON_HEDLEY_IMPORT extern #endif #if defined(JSON_HEDLEY_NO_THROW) #undef JSON_HEDLEY_NO_THROW #endif #if \ JSON_HEDLEY_HAS_ATTRIBUTE(nothrow) || \ JSON_HEDLEY_GCC_VERSION_CHECK(3,3,0) || \ JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) #define JSON_HEDLEY_NO_THROW __attribute__((__nothrow__)) #elif \ JSON_HEDLEY_MSVC_VERSION_CHECK(13,1,0) || \ JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) #define JSON_HEDLEY_NO_THROW __declspec(nothrow) #else #define JSON_HEDLEY_NO_THROW #endif #if defined(JSON_HEDLEY_FALL_THROUGH) #undef JSON_HEDLEY_FALL_THROUGH #endif #if JSON_HEDLEY_GNUC_HAS_ATTRIBUTE(fallthrough,7,0,0) && !defined(JSON_HEDLEY_PGI_VERSION) #define JSON_HEDLEY_FALL_THROUGH __attribute__((__fallthrough__)) #elif JSON_HEDLEY_HAS_CPP_ATTRIBUTE_NS(clang,fallthrough) #define JSON_HEDLEY_FALL_THROUGH JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[clang::fallthrough]]) #elif JSON_HEDLEY_HAS_CPP_ATTRIBUTE(fallthrough) #define JSON_HEDLEY_FALL_THROUGH JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[fallthrough]]) #elif defined(__fallthrough) /* SAL */ #define JSON_HEDLEY_FALL_THROUGH __fallthrough #else #define JSON_HEDLEY_FALL_THROUGH #endif #if defined(JSON_HEDLEY_RETURNS_NON_NULL) #undef JSON_HEDLEY_RETURNS_NON_NULL #endif #if \ JSON_HEDLEY_HAS_ATTRIBUTE(returns_nonnull) || \ JSON_HEDLEY_GCC_VERSION_CHECK(4,9,0) #define JSON_HEDLEY_RETURNS_NON_NULL __attribute__((__returns_nonnull__)) #elif defined(_Ret_notnull_) /* SAL */ #define JSON_HEDLEY_RETURNS_NON_NULL _Ret_notnull_ #else #define JSON_HEDLEY_RETURNS_NON_NULL #endif #if defined(JSON_HEDLEY_ARRAY_PARAM) #undef JSON_HEDLEY_ARRAY_PARAM #endif #if \ defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) && \ !defined(__STDC_NO_VLA__) && \ !defined(__cplusplus) && \ !defined(JSON_HEDLEY_PGI_VERSION) && \ !defined(JSON_HEDLEY_TINYC_VERSION) #define JSON_HEDLEY_ARRAY_PARAM(name) (name) #else #define JSON_HEDLEY_ARRAY_PARAM(name) #endif #if defined(JSON_HEDLEY_IS_CONSTANT) #undef JSON_HEDLEY_IS_CONSTANT #endif #if defined(JSON_HEDLEY_REQUIRE_CONSTEXPR) #undef JSON_HEDLEY_REQUIRE_CONSTEXPR #endif /* JSON_HEDLEY_IS_CONSTEXPR_ is for HEDLEY INTERNAL USE ONLY. API subject to change without notice. */ #if defined(JSON_HEDLEY_IS_CONSTEXPR_) #undef JSON_HEDLEY_IS_CONSTEXPR_ #endif #if \ JSON_HEDLEY_HAS_BUILTIN(__builtin_constant_p) || \ JSON_HEDLEY_GCC_VERSION_CHECK(3,4,0) || \ JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ JSON_HEDLEY_TINYC_VERSION_CHECK(0,9,19) || \ JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ JSON_HEDLEY_IBM_VERSION_CHECK(13,1,0) || \ JSON_HEDLEY_TI_VERSION_CHECK(6,1,0) || \ (JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,10,0) && !defined(__cplusplus)) || \ JSON_HEDLEY_CRAY_VERSION_CHECK(8,1,0) #define JSON_HEDLEY_IS_CONSTANT(expr) __builtin_constant_p(expr) #endif #if !defined(__cplusplus) # if \ JSON_HEDLEY_HAS_BUILTIN(__builtin_types_compatible_p) || \ JSON_HEDLEY_GCC_VERSION_CHECK(3,4,0) || \ JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ JSON_HEDLEY_IBM_VERSION_CHECK(13,1,0) || \ JSON_HEDLEY_CRAY_VERSION_CHECK(8,1,0) || \ JSON_HEDLEY_ARM_VERSION_CHECK(5,4,0) || \ JSON_HEDLEY_TINYC_VERSION_CHECK(0,9,24) #if defined(__INTPTR_TYPE__) #define JSON_HEDLEY_IS_CONSTEXPR_(expr) __builtin_types_compatible_p(__typeof__((1 ? (void*) ((__INTPTR_TYPE__) ((expr) * 0)) : (int*) 0)), int*) #else #include #define JSON_HEDLEY_IS_CONSTEXPR_(expr) __builtin_types_compatible_p(__typeof__((1 ? (void*) ((intptr_t) ((expr) * 0)) : (int*) 0)), int*) #endif # elif \ (defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L) && !defined(JSON_HEDLEY_SUNPRO_VERSION) && !defined(JSON_HEDLEY_PGI_VERSION)) || \ JSON_HEDLEY_HAS_EXTENSION(c_generic_selections) || \ JSON_HEDLEY_GCC_VERSION_CHECK(4,9,0) || \ JSON_HEDLEY_INTEL_VERSION_CHECK(17,0,0) || \ JSON_HEDLEY_IBM_VERSION_CHECK(12,1,0) || \ JSON_HEDLEY_ARM_VERSION_CHECK(5,3,0) #if defined(__INTPTR_TYPE__) #define JSON_HEDLEY_IS_CONSTEXPR_(expr) _Generic((1 ? (void*) ((__INTPTR_TYPE__) ((expr) * 0)) : (int*) 0), int*: 1, void*: 0) #else #include #define JSON_HEDLEY_IS_CONSTEXPR_(expr) _Generic((1 ? (void*) ((intptr_t) * 0) : (int*) 0), int*: 1, void*: 0) #endif # elif \ defined(JSON_HEDLEY_GCC_VERSION) || \ defined(JSON_HEDLEY_INTEL_VERSION) || \ defined(JSON_HEDLEY_TINYC_VERSION) || \ defined(JSON_HEDLEY_TI_VERSION) || \ defined(__clang__) # define JSON_HEDLEY_IS_CONSTEXPR_(expr) ( \ sizeof(void) != \ sizeof(*( \ 1 ? \ ((void*) ((expr) * 0L) ) : \ ((struct { char v[sizeof(void) * 2]; } *) 1) \ ) \ ) \ ) # endif #endif #if defined(JSON_HEDLEY_IS_CONSTEXPR_) #if !defined(JSON_HEDLEY_IS_CONSTANT) #define JSON_HEDLEY_IS_CONSTANT(expr) JSON_HEDLEY_IS_CONSTEXPR_(expr) #endif #define JSON_HEDLEY_REQUIRE_CONSTEXPR(expr) (JSON_HEDLEY_IS_CONSTEXPR_(expr) ? (expr) : (-1)) #else #if !defined(JSON_HEDLEY_IS_CONSTANT) #define JSON_HEDLEY_IS_CONSTANT(expr) (0) #endif #define JSON_HEDLEY_REQUIRE_CONSTEXPR(expr) (expr) #endif #if defined(JSON_HEDLEY_BEGIN_C_DECLS) #undef JSON_HEDLEY_BEGIN_C_DECLS #endif #if defined(JSON_HEDLEY_END_C_DECLS) #undef JSON_HEDLEY_END_C_DECLS #endif #if defined(JSON_HEDLEY_C_DECL) #undef JSON_HEDLEY_C_DECL #endif #if defined(__cplusplus) #define JSON_HEDLEY_BEGIN_C_DECLS extern "C" { #define JSON_HEDLEY_END_C_DECLS } #define JSON_HEDLEY_C_DECL extern "C" #else #define JSON_HEDLEY_BEGIN_C_DECLS #define JSON_HEDLEY_END_C_DECLS #define JSON_HEDLEY_C_DECL #endif #if defined(JSON_HEDLEY_STATIC_ASSERT) #undef JSON_HEDLEY_STATIC_ASSERT #endif #if \ !defined(__cplusplus) && ( \ (defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L)) || \ JSON_HEDLEY_HAS_FEATURE(c_static_assert) || \ JSON_HEDLEY_GCC_VERSION_CHECK(6,0,0) || \ JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ defined(_Static_assert) \ ) # define JSON_HEDLEY_STATIC_ASSERT(expr, message) _Static_assert(expr, message) #elif \ (defined(__cplusplus) && (__cplusplus >= 201103L)) || \ JSON_HEDLEY_MSVC_VERSION_CHECK(16,0,0) || \ (defined(__cplusplus) && JSON_HEDLEY_TI_VERSION_CHECK(8,3,0)) # define JSON_HEDLEY_STATIC_ASSERT(expr, message) JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(static_assert(expr, message)) #else # define JSON_HEDLEY_STATIC_ASSERT(expr, message) #endif #if defined(JSON_HEDLEY_CONST_CAST) #undef JSON_HEDLEY_CONST_CAST #endif #if defined(__cplusplus) # define JSON_HEDLEY_CONST_CAST(T, expr) (const_cast(expr)) #elif \ JSON_HEDLEY_HAS_WARNING("-Wcast-qual") || \ JSON_HEDLEY_GCC_VERSION_CHECK(4,6,0) || \ JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) # define JSON_HEDLEY_CONST_CAST(T, expr) (__extension__ ({ \ JSON_HEDLEY_DIAGNOSTIC_PUSH \ JSON_HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL \ ((T) (expr)); \ JSON_HEDLEY_DIAGNOSTIC_POP \ })) #else # define JSON_HEDLEY_CONST_CAST(T, expr) ((T) (expr)) #endif #if defined(JSON_HEDLEY_REINTERPRET_CAST) #undef JSON_HEDLEY_REINTERPRET_CAST #endif #if defined(__cplusplus) #define JSON_HEDLEY_REINTERPRET_CAST(T, expr) (reinterpret_cast(expr)) #else #define JSON_HEDLEY_REINTERPRET_CAST(T, expr) (*((T*) &(expr))) #endif #if defined(JSON_HEDLEY_STATIC_CAST) #undef JSON_HEDLEY_STATIC_CAST #endif #if defined(__cplusplus) #define JSON_HEDLEY_STATIC_CAST(T, expr) (static_cast(expr)) #else #define JSON_HEDLEY_STATIC_CAST(T, expr) ((T) (expr)) #endif #if defined(JSON_HEDLEY_CPP_CAST) #undef JSON_HEDLEY_CPP_CAST #endif #if defined(__cplusplus) #define JSON_HEDLEY_CPP_CAST(T, expr) static_cast(expr) #else #define JSON_HEDLEY_CPP_CAST(T, expr) (expr) #endif #if defined(JSON_HEDLEY_NULL) #undef JSON_HEDLEY_NULL #endif #if defined(__cplusplus) #if __cplusplus >= 201103L #define JSON_HEDLEY_NULL JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(nullptr) #elif defined(NULL) #define JSON_HEDLEY_NULL NULL #else #define JSON_HEDLEY_NULL JSON_HEDLEY_STATIC_CAST(void*, 0) #endif #elif defined(NULL) #define JSON_HEDLEY_NULL NULL #else #define JSON_HEDLEY_NULL ((void*) 0) #endif #if defined(JSON_HEDLEY_MESSAGE) #undef JSON_HEDLEY_MESSAGE #endif #if JSON_HEDLEY_HAS_WARNING("-Wunknown-pragmas") # define JSON_HEDLEY_MESSAGE(msg) \ JSON_HEDLEY_DIAGNOSTIC_PUSH \ JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS \ JSON_HEDLEY_PRAGMA(message msg) \ JSON_HEDLEY_DIAGNOSTIC_POP #elif \ JSON_HEDLEY_GCC_VERSION_CHECK(4,4,0) || \ JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) # define JSON_HEDLEY_MESSAGE(msg) JSON_HEDLEY_PRAGMA(message msg) #elif JSON_HEDLEY_CRAY_VERSION_CHECK(5,0,0) # define JSON_HEDLEY_MESSAGE(msg) JSON_HEDLEY_PRAGMA(_CRI message msg) #elif JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0) # define JSON_HEDLEY_MESSAGE(msg) JSON_HEDLEY_PRAGMA(message(msg)) #elif JSON_HEDLEY_PELLES_VERSION_CHECK(2,0,0) # define JSON_HEDLEY_MESSAGE(msg) JSON_HEDLEY_PRAGMA(message(msg)) #else # define JSON_HEDLEY_MESSAGE(msg) #endif #if defined(JSON_HEDLEY_WARNING) #undef JSON_HEDLEY_WARNING #endif #if JSON_HEDLEY_HAS_WARNING("-Wunknown-pragmas") # define JSON_HEDLEY_WARNING(msg) \ JSON_HEDLEY_DIAGNOSTIC_PUSH \ JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS \ JSON_HEDLEY_PRAGMA(clang warning msg) \ JSON_HEDLEY_DIAGNOSTIC_POP #elif \ JSON_HEDLEY_GCC_VERSION_CHECK(4,8,0) || \ JSON_HEDLEY_PGI_VERSION_CHECK(18,4,0) # define JSON_HEDLEY_WARNING(msg) JSON_HEDLEY_PRAGMA(GCC warning msg) #elif JSON_HEDLEY_MSVC_VERSION_CHECK(15,0,0) # define JSON_HEDLEY_WARNING(msg) JSON_HEDLEY_PRAGMA(message(msg)) #else # define JSON_HEDLEY_WARNING(msg) JSON_HEDLEY_MESSAGE(msg) #endif #if defined(JSON_HEDLEY_REQUIRE) #undef JSON_HEDLEY_REQUIRE #endif #if defined(JSON_HEDLEY_REQUIRE_MSG) #undef JSON_HEDLEY_REQUIRE_MSG #endif #if JSON_HEDLEY_HAS_ATTRIBUTE(diagnose_if) # if JSON_HEDLEY_HAS_WARNING("-Wgcc-compat") # define JSON_HEDLEY_REQUIRE(expr) \ JSON_HEDLEY_DIAGNOSTIC_PUSH \ _Pragma("clang diagnostic ignored \"-Wgcc-compat\"") \ __attribute__((diagnose_if(!(expr), #expr, "error"))) \ JSON_HEDLEY_DIAGNOSTIC_POP # define JSON_HEDLEY_REQUIRE_MSG(expr,msg) \ JSON_HEDLEY_DIAGNOSTIC_PUSH \ _Pragma("clang diagnostic ignored \"-Wgcc-compat\"") \ __attribute__((diagnose_if(!(expr), msg, "error"))) \ JSON_HEDLEY_DIAGNOSTIC_POP # else # define JSON_HEDLEY_REQUIRE(expr) __attribute__((diagnose_if(!(expr), #expr, "error"))) # define JSON_HEDLEY_REQUIRE_MSG(expr,msg) __attribute__((diagnose_if(!(expr), msg, "error"))) # endif #else # define JSON_HEDLEY_REQUIRE(expr) # define JSON_HEDLEY_REQUIRE_MSG(expr,msg) #endif #if defined(JSON_HEDLEY_FLAGS) #undef JSON_HEDLEY_FLAGS #endif #if JSON_HEDLEY_HAS_ATTRIBUTE(flag_enum) #define JSON_HEDLEY_FLAGS __attribute__((__flag_enum__)) #endif #if defined(JSON_HEDLEY_FLAGS_CAST) #undef JSON_HEDLEY_FLAGS_CAST #endif #if JSON_HEDLEY_INTEL_VERSION_CHECK(19,0,0) # define JSON_HEDLEY_FLAGS_CAST(T, expr) (__extension__ ({ \ JSON_HEDLEY_DIAGNOSTIC_PUSH \ _Pragma("warning(disable:188)") \ ((T) (expr)); \ JSON_HEDLEY_DIAGNOSTIC_POP \ })) #else # define JSON_HEDLEY_FLAGS_CAST(T, expr) JSON_HEDLEY_STATIC_CAST(T, expr) #endif #if defined(JSON_HEDLEY_EMPTY_BASES) #undef JSON_HEDLEY_EMPTY_BASES #endif #if JSON_HEDLEY_MSVC_VERSION_CHECK(19,0,23918) && !JSON_HEDLEY_MSVC_VERSION_CHECK(20,0,0) #define JSON_HEDLEY_EMPTY_BASES __declspec(empty_bases) #else #define JSON_HEDLEY_EMPTY_BASES #endif /* Remaining macros are deprecated. */ #if defined(JSON_HEDLEY_GCC_NOT_CLANG_VERSION_CHECK) #undef JSON_HEDLEY_GCC_NOT_CLANG_VERSION_CHECK #endif #if defined(__clang__) #define JSON_HEDLEY_GCC_NOT_CLANG_VERSION_CHECK(major,minor,patch) (0) #else #define JSON_HEDLEY_GCC_NOT_CLANG_VERSION_CHECK(major,minor,patch) JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch) #endif #if defined(JSON_HEDLEY_CLANG_HAS_ATTRIBUTE) #undef JSON_HEDLEY_CLANG_HAS_ATTRIBUTE #endif #define JSON_HEDLEY_CLANG_HAS_ATTRIBUTE(attribute) JSON_HEDLEY_HAS_ATTRIBUTE(attribute) #if defined(JSON_HEDLEY_CLANG_HAS_CPP_ATTRIBUTE) #undef JSON_HEDLEY_CLANG_HAS_CPP_ATTRIBUTE #endif #define JSON_HEDLEY_CLANG_HAS_CPP_ATTRIBUTE(attribute) JSON_HEDLEY_HAS_CPP_ATTRIBUTE(attribute) #if defined(JSON_HEDLEY_CLANG_HAS_BUILTIN) #undef JSON_HEDLEY_CLANG_HAS_BUILTIN #endif #define JSON_HEDLEY_CLANG_HAS_BUILTIN(builtin) JSON_HEDLEY_HAS_BUILTIN(builtin) #if defined(JSON_HEDLEY_CLANG_HAS_FEATURE) #undef JSON_HEDLEY_CLANG_HAS_FEATURE #endif #define JSON_HEDLEY_CLANG_HAS_FEATURE(feature) JSON_HEDLEY_HAS_FEATURE(feature) #if defined(JSON_HEDLEY_CLANG_HAS_EXTENSION) #undef JSON_HEDLEY_CLANG_HAS_EXTENSION #endif #define JSON_HEDLEY_CLANG_HAS_EXTENSION(extension) JSON_HEDLEY_HAS_EXTENSION(extension) #if defined(JSON_HEDLEY_CLANG_HAS_DECLSPEC_DECLSPEC_ATTRIBUTE) #undef JSON_HEDLEY_CLANG_HAS_DECLSPEC_DECLSPEC_ATTRIBUTE #endif #define JSON_HEDLEY_CLANG_HAS_DECLSPEC_ATTRIBUTE(attribute) JSON_HEDLEY_HAS_DECLSPEC_ATTRIBUTE(attribute) #if defined(JSON_HEDLEY_CLANG_HAS_WARNING) #undef JSON_HEDLEY_CLANG_HAS_WARNING #endif #define JSON_HEDLEY_CLANG_HAS_WARNING(warning) JSON_HEDLEY_HAS_WARNING(warning) #endif /* !defined(JSON_HEDLEY_VERSION) || (JSON_HEDLEY_VERSION < X) */ // This file contains all internal macro definitions // You MUST include macro_unscope.hpp at the end of json.hpp to undef all of them // exclude unsupported compilers #if !defined(JSON_SKIP_UNSUPPORTED_COMPILER_CHECK) #if defined(__clang__) #if (__clang_major__ * 10000 + __clang_minor__ * 100 + __clang_patchlevel__) < 30400 #error "unsupported Clang version - see https://github.com/nlohmann/json#supported-compilers" #endif #elif defined(__GNUC__) && !(defined(__ICC) || defined(__INTEL_COMPILER)) #if (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) < 40800 #error "unsupported GCC version - see https://github.com/nlohmann/json#supported-compilers" #endif #endif #endif // C++ language standard detection #if (defined(__cplusplus) && __cplusplus >= 201703L) || (defined(_HAS_CXX17) && _HAS_CXX17 == 1) // fix for issue #464 #define JSON_HAS_CPP_17 #define JSON_HAS_CPP_14 #elif (defined(__cplusplus) && __cplusplus >= 201402L) || (defined(_HAS_CXX14) && _HAS_CXX14 == 1) #define JSON_HAS_CPP_14 #endif // disable float-equal warnings on GCC/clang #if defined(__clang__) || defined(__GNUC__) || defined(__GNUG__) #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wfloat-equal" #endif // disable documentation warnings on clang #if defined(__clang__) #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wdocumentation" #endif // allow to disable exceptions #if (defined(__cpp_exceptions) || defined(__EXCEPTIONS) || defined(_CPPUNWIND)) && !defined(JSON_NOEXCEPTION) #define JSON_THROW(exception) throw exception #define JSON_TRY try #define JSON_CATCH(exception) catch(exception) #define JSON_INTERNAL_CATCH(exception) catch(exception) #else #include #define JSON_THROW(exception) std::abort() #define JSON_TRY if(true) #define JSON_CATCH(exception) if(false) #define JSON_INTERNAL_CATCH(exception) if(false) #endif // override exception macros #if defined(JSON_THROW_USER) #undef JSON_THROW #define JSON_THROW JSON_THROW_USER #endif #if defined(JSON_TRY_USER) #undef JSON_TRY #define JSON_TRY JSON_TRY_USER #endif #if defined(JSON_CATCH_USER) #undef JSON_CATCH #define JSON_CATCH JSON_CATCH_USER #undef JSON_INTERNAL_CATCH #define JSON_INTERNAL_CATCH JSON_CATCH_USER #endif #if defined(JSON_INTERNAL_CATCH_USER) #undef JSON_INTERNAL_CATCH #define JSON_INTERNAL_CATCH JSON_INTERNAL_CATCH_USER #endif /*! @brief macro to briefly define a mapping between an enum and JSON @def NLOHMANN_JSON_SERIALIZE_ENUM @since version 3.4.0 */ #define NLOHMANN_JSON_SERIALIZE_ENUM(ENUM_TYPE, ...) \ template \ inline void to_json(BasicJsonType& j, const ENUM_TYPE& e) \ { \ static_assert(std::is_enum::value, #ENUM_TYPE " must be an enum!"); \ static const std::pair m[] = __VA_ARGS__; \ auto it = std::find_if(std::begin(m), std::end(m), \ [e](const std::pair& ej_pair) -> bool \ { \ return ej_pair.first == e; \ }); \ j = ((it != std::end(m)) ? it : std::begin(m))->second; \ } \ template \ inline void from_json(const BasicJsonType& j, ENUM_TYPE& e) \ { \ static_assert(std::is_enum::value, #ENUM_TYPE " must be an enum!"); \ static const std::pair m[] = __VA_ARGS__; \ auto it = std::find_if(std::begin(m), std::end(m), \ [&j](const std::pair& ej_pair) -> bool \ { \ return ej_pair.second == j; \ }); \ e = ((it != std::end(m)) ? it : std::begin(m))->first; \ } // Ugly macros to avoid uglier copy-paste when specializing basic_json. They // may be removed in the future once the class is split. #define NLOHMANN_BASIC_JSON_TPL_DECLARATION \ template class ObjectType, \ template class ArrayType, \ class StringType, class BooleanType, class NumberIntegerType, \ class NumberUnsignedType, class NumberFloatType, \ template class AllocatorType, \ template class JSONSerializer> #define NLOHMANN_BASIC_JSON_TPL \ basic_json namespace nlohmann { namespace detail { //////////////// // exceptions // //////////////// /*! @brief general exception of the @ref basic_json class This class is an extension of `std::exception` objects with a member @a id for exception ids. It is used as the base class for all exceptions thrown by the @ref basic_json class. This class can hence be used as "wildcard" to catch exceptions. Subclasses: - @ref parse_error for exceptions indicating a parse error - @ref invalid_iterator for exceptions indicating errors with iterators - @ref type_error for exceptions indicating executing a member function with a wrong type - @ref out_of_range for exceptions indicating access out of the defined range - @ref other_error for exceptions indicating other library errors @internal @note To have nothrow-copy-constructible exceptions, we internally use `std::runtime_error` which can cope with arbitrary-length error messages. Intermediate strings are built with static functions and then passed to the actual constructor. @endinternal @liveexample{The following code shows how arbitrary library exceptions can be caught.,exception} @since version 3.0.0 */ class exception : public std::exception { public: /// returns the explanatory string JSON_HEDLEY_RETURNS_NON_NULL const char* what() const noexcept override { return m.what(); } /// the id of the exception const int id; protected: JSON_HEDLEY_NON_NULL(3) exception(int id_, const char* what_arg) : id(id_), m(what_arg) {} static std::string name(const std::string& ename, int id_) { return "[json.exception." + ename + "." + std::to_string(id_) + "] "; } private: /// an exception object as storage for error messages std::runtime_error m; }; /*! @brief exception indicating a parse error This exception is thrown by the library when a parse error occurs. Parse errors can occur during the deserialization of JSON text, CBOR, MessagePack, as well as when using JSON Patch. Member @a byte holds the byte index of the last read character in the input file. Exceptions have ids 1xx. name / id | example message | description ------------------------------ | --------------- | ------------------------- json.exception.parse_error.101 | parse error at 2: unexpected end of input; expected string literal | This error indicates a syntax error while deserializing a JSON text. The error message describes that an unexpected token (character) was encountered, and the member @a byte indicates the error position. json.exception.parse_error.102 | parse error at 14: missing or wrong low surrogate | JSON uses the `\uxxxx` format to describe Unicode characters. Code points above above 0xFFFF are split into two `\uxxxx` entries ("surrogate pairs"). This error indicates that the surrogate pair is incomplete or contains an invalid code point. json.exception.parse_error.103 | parse error: code points above 0x10FFFF are invalid | Unicode supports code points up to 0x10FFFF. Code points above 0x10FFFF are invalid. json.exception.parse_error.104 | parse error: JSON patch must be an array of objects | [RFC 6902](https://tools.ietf.org/html/rfc6902) requires a JSON Patch document to be a JSON document that represents an array of objects. json.exception.parse_error.105 | parse error: operation must have string member 'op' | An operation of a JSON Patch document must contain exactly one "op" member, whose value indicates the operation to perform. Its value must be one of "add", "remove", "replace", "move", "copy", or "test"; other values are errors. json.exception.parse_error.106 | parse error: array index '01' must not begin with '0' | An array index in a JSON Pointer ([RFC 6901](https://tools.ietf.org/html/rfc6901)) may be `0` or any number without a leading `0`. json.exception.parse_error.107 | parse error: JSON pointer must be empty or begin with '/' - was: 'foo' | A JSON Pointer must be a Unicode string containing a sequence of zero or more reference tokens, each prefixed by a `/` character. json.exception.parse_error.108 | parse error: escape character '~' must be followed with '0' or '1' | In a JSON Pointer, only `~0` and `~1` are valid escape sequences. json.exception.parse_error.109 | parse error: array index 'one' is not a number | A JSON Pointer array index must be a number. json.exception.parse_error.110 | parse error at 1: cannot read 2 bytes from vector | When parsing CBOR or MessagePack, the byte vector ends before the complete value has been read. json.exception.parse_error.112 | parse error at 1: error reading CBOR; last byte: 0xF8 | Not all types of CBOR or MessagePack are supported. This exception occurs if an unsupported byte was read. json.exception.parse_error.113 | parse error at 2: expected a CBOR string; last byte: 0x98 | While parsing a map key, a value that is not a string has been read. json.exception.parse_error.114 | parse error: Unsupported BSON record type 0x0F | The parsing of the corresponding BSON record type is not implemented (yet). @note For an input with n bytes, 1 is the index of the first character and n+1 is the index of the terminating null byte or the end of file. This also holds true when reading a byte vector (CBOR or MessagePack). @liveexample{The following code shows how a `parse_error` exception can be caught.,parse_error} @sa - @ref exception for the base class of the library exceptions @sa - @ref invalid_iterator for exceptions indicating errors with iterators @sa - @ref type_error for exceptions indicating executing a member function with a wrong type @sa - @ref out_of_range for exceptions indicating access out of the defined range @sa - @ref other_error for exceptions indicating other library errors @since version 3.0.0 */ class parse_error : public exception { public: /*! @brief create a parse error exception @param[in] id_ the id of the exception @param[in] pos the position where the error occurred (or with chars_read_total=0 if the position cannot be determined) @param[in] what_arg the explanatory string @return parse_error object */ static parse_error create(int id_, const position_t& pos, const std::string& what_arg) { std::string w = exception::name("parse_error", id_) + "parse error" + position_string(pos) + ": " + what_arg; return parse_error(id_, pos.chars_read_total, w.c_str()); } static parse_error create(int id_, std::size_t byte_, const std::string& what_arg) { std::string w = exception::name("parse_error", id_) + "parse error" + (byte_ != 0 ? (" at byte " + std::to_string(byte_)) : "") + ": " + what_arg; return parse_error(id_, byte_, w.c_str()); } /*! @brief byte index of the parse error The byte index of the last read character in the input file. @note For an input with n bytes, 1 is the index of the first character and n+1 is the index of the terminating null byte or the end of file. This also holds true when reading a byte vector (CBOR or MessagePack). */ const std::size_t byte; private: parse_error(int id_, std::size_t byte_, const char* what_arg) : exception(id_, what_arg), byte(byte_) {} static std::string position_string(const position_t& pos) { return " at line " + std::to_string(pos.lines_read + 1) + ", column " + std::to_string(pos.chars_read_current_line); } }; /*! @brief exception indicating errors with iterators This exception is thrown if iterators passed to a library function do not match the expected semantics. Exceptions have ids 2xx. name / id | example message | description ----------------------------------- | --------------- | ------------------------- json.exception.invalid_iterator.201 | iterators are not compatible | The iterators passed to constructor @ref basic_json(InputIT first, InputIT last) are not compatible, meaning they do not belong to the same container. Therefore, the range (@a first, @a last) is invalid. json.exception.invalid_iterator.202 | iterator does not fit current value | In an erase or insert function, the passed iterator @a pos does not belong to the JSON value for which the function was called. It hence does not define a valid position for the deletion/insertion. json.exception.invalid_iterator.203 | iterators do not fit current value | Either iterator passed to function @ref erase(IteratorType first, IteratorType last) does not belong to the JSON value from which values shall be erased. It hence does not define a valid range to delete values from. json.exception.invalid_iterator.204 | iterators out of range | When an iterator range for a primitive type (number, boolean, or string) is passed to a constructor or an erase function, this range has to be exactly (@ref begin(), @ref end()), because this is the only way the single stored value is expressed. All other ranges are invalid. json.exception.invalid_iterator.205 | iterator out of range | When an iterator for a primitive type (number, boolean, or string) is passed to an erase function, the iterator has to be the @ref begin() iterator, because it is the only way to address the stored value. All other iterators are invalid. json.exception.invalid_iterator.206 | cannot construct with iterators from null | The iterators passed to constructor @ref basic_json(InputIT first, InputIT last) belong to a JSON null value and hence to not define a valid range. json.exception.invalid_iterator.207 | cannot use key() for non-object iterators | The key() member function can only be used on iterators belonging to a JSON object, because other types do not have a concept of a key. json.exception.invalid_iterator.208 | cannot use operator[] for object iterators | The operator[] to specify a concrete offset cannot be used on iterators belonging to a JSON object, because JSON objects are unordered. json.exception.invalid_iterator.209 | cannot use offsets with object iterators | The offset operators (+, -, +=, -=) cannot be used on iterators belonging to a JSON object, because JSON objects are unordered. json.exception.invalid_iterator.210 | iterators do not fit | The iterator range passed to the insert function are not compatible, meaning they do not belong to the same container. Therefore, the range (@a first, @a last) is invalid. json.exception.invalid_iterator.211 | passed iterators may not belong to container | The iterator range passed to the insert function must not be a subrange of the container to insert to. json.exception.invalid_iterator.212 | cannot compare iterators of different containers | When two iterators are compared, they must belong to the same container. json.exception.invalid_iterator.213 | cannot compare order of object iterators | The order of object iterators cannot be compared, because JSON objects are unordered. json.exception.invalid_iterator.214 | cannot get value | Cannot get value for iterator: Either the iterator belongs to a null value or it is an iterator to a primitive type (number, boolean, or string), but the iterator is different to @ref begin(). @liveexample{The following code shows how an `invalid_iterator` exception can be caught.,invalid_iterator} @sa - @ref exception for the base class of the library exceptions @sa - @ref parse_error for exceptions indicating a parse error @sa - @ref type_error for exceptions indicating executing a member function with a wrong type @sa - @ref out_of_range for exceptions indicating access out of the defined range @sa - @ref other_error for exceptions indicating other library errors @since version 3.0.0 */ class invalid_iterator : public exception { public: static invalid_iterator create(int id_, const std::string& what_arg) { std::string w = exception::name("invalid_iterator", id_) + what_arg; return invalid_iterator(id_, w.c_str()); } private: JSON_HEDLEY_NON_NULL(3) invalid_iterator(int id_, const char* what_arg) : exception(id_, what_arg) {} }; /*! @brief exception indicating executing a member function with a wrong type This exception is thrown in case of a type error; that is, a library function is executed on a JSON value whose type does not match the expected semantics. Exceptions have ids 3xx. name / id | example message | description ----------------------------- | --------------- | ------------------------- json.exception.type_error.301 | cannot create object from initializer list | To create an object from an initializer list, the initializer list must consist only of a list of pairs whose first element is a string. When this constraint is violated, an array is created instead. json.exception.type_error.302 | type must be object, but is array | During implicit or explicit value conversion, the JSON type must be compatible to the target type. For instance, a JSON string can only be converted into string types, but not into numbers or boolean types. json.exception.type_error.303 | incompatible ReferenceType for get_ref, actual type is object | To retrieve a reference to a value stored in a @ref basic_json object with @ref get_ref, the type of the reference must match the value type. For instance, for a JSON array, the @a ReferenceType must be @ref array_t &. json.exception.type_error.304 | cannot use at() with string | The @ref at() member functions can only be executed for certain JSON types. json.exception.type_error.305 | cannot use operator[] with string | The @ref operator[] member functions can only be executed for certain JSON types. json.exception.type_error.306 | cannot use value() with string | The @ref value() member functions can only be executed for certain JSON types. json.exception.type_error.307 | cannot use erase() with string | The @ref erase() member functions can only be executed for certain JSON types. json.exception.type_error.308 | cannot use push_back() with string | The @ref push_back() and @ref operator+= member functions can only be executed for certain JSON types. json.exception.type_error.309 | cannot use insert() with | The @ref insert() member functions can only be executed for certain JSON types. json.exception.type_error.310 | cannot use swap() with number | The @ref swap() member functions can only be executed for certain JSON types. json.exception.type_error.311 | cannot use emplace_back() with string | The @ref emplace_back() member function can only be executed for certain JSON types. json.exception.type_error.312 | cannot use update() with string | The @ref update() member functions can only be executed for certain JSON types. json.exception.type_error.313 | invalid value to unflatten | The @ref unflatten function converts an object whose keys are JSON Pointers back into an arbitrary nested JSON value. The JSON Pointers must not overlap, because then the resulting value would not be well defined. json.exception.type_error.314 | only objects can be unflattened | The @ref unflatten function only works for an object whose keys are JSON Pointers. json.exception.type_error.315 | values in object must be primitive | The @ref unflatten function only works for an object whose keys are JSON Pointers and whose values are primitive. json.exception.type_error.316 | invalid UTF-8 byte at index 10: 0x7E | The @ref dump function only works with UTF-8 encoded strings; that is, if you assign a `std::string` to a JSON value, make sure it is UTF-8 encoded. | json.exception.type_error.317 | JSON value cannot be serialized to requested format | The dynamic type of the object cannot be represented in the requested serialization format (e.g. a raw `true` or `null` JSON object cannot be serialized to BSON) | @liveexample{The following code shows how a `type_error` exception can be caught.,type_error} @sa - @ref exception for the base class of the library exceptions @sa - @ref parse_error for exceptions indicating a parse error @sa - @ref invalid_iterator for exceptions indicating errors with iterators @sa - @ref out_of_range for exceptions indicating access out of the defined range @sa - @ref other_error for exceptions indicating other library errors @since version 3.0.0 */ class type_error : public exception { public: static type_error create(int id_, const std::string& what_arg) { std::string w = exception::name("type_error", id_) + what_arg; return type_error(id_, w.c_str()); } private: JSON_HEDLEY_NON_NULL(3) type_error(int id_, const char* what_arg) : exception(id_, what_arg) {} }; /*! @brief exception indicating access out of the defined range This exception is thrown in case a library function is called on an input parameter that exceeds the expected range, for instance in case of array indices or nonexisting object keys. Exceptions have ids 4xx. name / id | example message | description ------------------------------- | --------------- | ------------------------- json.exception.out_of_range.401 | array index 3 is out of range | The provided array index @a i is larger than @a size-1. json.exception.out_of_range.402 | array index '-' (3) is out of range | The special array index `-` in a JSON Pointer never describes a valid element of the array, but the index past the end. That is, it can only be used to add elements at this position, but not to read it. json.exception.out_of_range.403 | key 'foo' not found | The provided key was not found in the JSON object. json.exception.out_of_range.404 | unresolved reference token 'foo' | A reference token in a JSON Pointer could not be resolved. json.exception.out_of_range.405 | JSON pointer has no parent | The JSON Patch operations 'remove' and 'add' can not be applied to the root element of the JSON value. json.exception.out_of_range.406 | number overflow parsing '10E1000' | A parsed number could not be stored as without changing it to NaN or INF. json.exception.out_of_range.407 | number overflow serializing '9223372036854775808' | UBJSON and BSON only support integer numbers up to 9223372036854775807. | json.exception.out_of_range.408 | excessive array size: 8658170730974374167 | The size (following `#`) of an UBJSON array or object exceeds the maximal capacity. | json.exception.out_of_range.409 | BSON key cannot contain code point U+0000 (at byte 2) | Key identifiers to be serialized to BSON cannot contain code point U+0000, since the key is stored as zero-terminated c-string | @liveexample{The following code shows how an `out_of_range` exception can be caught.,out_of_range} @sa - @ref exception for the base class of the library exceptions @sa - @ref parse_error for exceptions indicating a parse error @sa - @ref invalid_iterator for exceptions indicating errors with iterators @sa - @ref type_error for exceptions indicating executing a member function with a wrong type @sa - @ref other_error for exceptions indicating other library errors @since version 3.0.0 */ class out_of_range : public exception { public: static out_of_range create(int id_, const std::string& what_arg) { std::string w = exception::name("out_of_range", id_) + what_arg; return out_of_range(id_, w.c_str()); } private: JSON_HEDLEY_NON_NULL(3) out_of_range(int id_, const char* what_arg) : exception(id_, what_arg) {} }; /*! @brief exception indicating other library errors This exception is thrown in case of errors that cannot be classified with the other exception types. Exceptions have ids 5xx. name / id | example message | description ------------------------------ | --------------- | ------------------------- json.exception.other_error.501 | unsuccessful: {"op":"test","path":"/baz", "value":"bar"} | A JSON Patch operation 'test' failed. The unsuccessful operation is also printed. @sa - @ref exception for the base class of the library exceptions @sa - @ref parse_error for exceptions indicating a parse error @sa - @ref invalid_iterator for exceptions indicating errors with iterators @sa - @ref type_error for exceptions indicating executing a member function with a wrong type @sa - @ref out_of_range for exceptions indicating access out of the defined range @liveexample{The following code shows how an `other_error` exception can be caught.,other_error} @since version 3.0.0 */ class other_error : public exception { public: static other_error create(int id_, const std::string& what_arg) { std::string w = exception::name("other_error", id_) + what_arg; return other_error(id_, w.c_str()); } private: JSON_HEDLEY_NON_NULL(3) other_error(int id_, const char* what_arg) : exception(id_, what_arg) {} }; } // namespace detail } // namespace nlohmann // #include // #include #include // not #include // size_t #include // conditional, enable_if, false_type, integral_constant, is_constructible, is_integral, is_same, remove_cv, remove_reference, true_type namespace nlohmann { namespace detail { // alias templates to reduce boilerplate template using enable_if_t = typename std::enable_if::type; template using uncvref_t = typename std::remove_cv::type>::type; // implementation of C++14 index_sequence and affiliates // source: https://stackoverflow.com/a/32223343 template struct index_sequence { using type = index_sequence; using value_type = std::size_t; static constexpr std::size_t size() noexcept { return sizeof...(Ints); } }; template struct merge_and_renumber; template struct merge_and_renumber, index_sequence> : index_sequence < I1..., (sizeof...(I1) + I2)... > {}; template struct make_index_sequence : merge_and_renumber < typename make_index_sequence < N / 2 >::type, typename make_index_sequence < N - N / 2 >::type > {}; template<> struct make_index_sequence<0> : index_sequence<> {}; template<> struct make_index_sequence<1> : index_sequence<0> {}; template using index_sequence_for = make_index_sequence; // dispatch utility (taken from ranges-v3) template struct priority_tag : priority_tag < N - 1 > {}; template<> struct priority_tag<0> {}; // taken from ranges-v3 template struct static_const { static constexpr T value{}; }; template constexpr T static_const::value; } // namespace detail } // namespace nlohmann // #include #include // not #include // numeric_limits #include // false_type, is_constructible, is_integral, is_same, true_type #include // declval // #include #include // random_access_iterator_tag // #include namespace nlohmann { namespace detail { template struct make_void { using type = void; }; template using void_t = typename make_void::type; } // namespace detail } // namespace nlohmann // #include namespace nlohmann { namespace detail { template struct iterator_types {}; template struct iterator_types < It, void_t> { using difference_type = typename It::difference_type; using value_type = typename It::value_type; using pointer = typename It::pointer; using reference = typename It::reference; using iterator_category = typename It::iterator_category; }; // This is required as some compilers implement std::iterator_traits in a way that // doesn't work with SFINAE. See https://github.com/nlohmann/json/issues/1341. template struct iterator_traits { }; template struct iterator_traits < T, enable_if_t < !std::is_pointer::value >> : iterator_types { }; template struct iterator_traits::value>> { using iterator_category = std::random_access_iterator_tag; using value_type = T; using difference_type = ptrdiff_t; using pointer = T*; using reference = T&; }; } // namespace detail } // namespace nlohmann // #include // #include // #include #include // #include // http://en.cppreference.com/w/cpp/experimental/is_detected namespace nlohmann { namespace detail { struct nonesuch { nonesuch() = delete; ~nonesuch() = delete; nonesuch(nonesuch const&) = delete; nonesuch(nonesuch const&&) = delete; void operator=(nonesuch const&) = delete; void operator=(nonesuch&&) = delete; }; template class Op, class... Args> struct detector { using value_t = std::false_type; using type = Default; }; template class Op, class... Args> struct detector>, Op, Args...> { using value_t = std::true_type; using type = Op; }; template