mirror of
https://git.jami.net/savoirfairelinux/jami-client-qt.git
synced 2025-03-28 14:56:19 +01:00
packaging: add global installation support for linux
- avoid using fixed paths and find LRC either when globally installed or located in custom directory - add installation rules for binaries, .desktop files, .appdata.xml, logo and doc - add support for generating and copying runtime files (webresources and translations) - add launcher script (client qt/gnome/kde selector) - add uninstall support - add missing sources (moderatorlistmodel) - update README Gitlab: #160, #230, #263, #264 Change-Id: I3fee77a917be038072a20c7f99b510f9a8bf65b4
This commit is contained in:
parent
b55be608f3
commit
69db8684a1
16 changed files with 1206 additions and 70 deletions
204
CMakeLists.txt
204
CMakeLists.txt
|
@ -12,24 +12,11 @@ set(CMAKE_AUTORCC ON)
|
|||
set(CMAKE_AUTOUIC ON)
|
||||
set(CMAKE_INCLUDE_CURRENT_DIR ON)
|
||||
|
||||
set(SRC_DIR ${CMAKE_SOURCE_DIR}/src)
|
||||
set(SRC_DIR ${PROJECT_SOURCE_DIR}/src)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${Qt5Widgets_EXECUTABLE_COMPILE_FLAGS}")
|
||||
|
||||
set(QML_RESOURCES ${CMAKE_SOURCE_DIR}/resources.qrc)
|
||||
set(QML_RESOURCES_QML ${CMAKE_SOURCE_DIR}/qml.qrc)
|
||||
|
||||
if(NOT DEFINED LRC)
|
||||
set(LRC ${CMAKE_CURRENT_SOURCE_DIR}/../install/lrc)
|
||||
set(LRCPATH ${LRC}/include/libringclient)
|
||||
set(LRCLIBDIR ${LRC}/lib)
|
||||
else()
|
||||
set(LRCPATH ${LRC}/src)
|
||||
if (NOT DEFINED LRCBUILD)
|
||||
set(LRCLIBDIR ${LRC}/build)
|
||||
else()
|
||||
set(LRCLIBDIR ${LRCBUILD})
|
||||
endif()
|
||||
endif()
|
||||
set(QML_RESOURCES ${PROJECT_SOURCE_DIR}/resources.qrc)
|
||||
set(QML_RESOURCES_QML ${PROJECT_SOURCE_DIR}/qml.qrc)
|
||||
|
||||
set(QML_LIBS
|
||||
Qt5::Quick
|
||||
|
@ -80,7 +67,8 @@ set(COMMON_SOURCES
|
|||
${SRC_DIR}/qmlregister.cpp
|
||||
${SRC_DIR}/utilsadapter.cpp
|
||||
${SRC_DIR}/dbuserrorhandler.cpp
|
||||
${SRC_DIR}/xrectsel.c)
|
||||
${SRC_DIR}/xrectsel.c
|
||||
${SRC_DIR}/moderatorlistmodel.cpp)
|
||||
|
||||
set(COMMON_HEADERS
|
||||
${SRC_DIR}/avatarimageprovider.h
|
||||
|
@ -130,7 +118,8 @@ set(COMMON_HEADERS
|
|||
${SRC_DIR}/qtutils.h
|
||||
${SRC_DIR}/utilsadapter.h
|
||||
${SRC_DIR}/dbuserrorhandler.h
|
||||
${SRC_DIR}/xrectsel.h)
|
||||
${SRC_DIR}/xrectsel.h
|
||||
${SRC_DIR}/moderatorlistmodel.h)
|
||||
|
||||
find_package(PkgConfig REQUIRED)
|
||||
pkg_check_modules(LIBNM libnm)
|
||||
|
@ -140,66 +129,169 @@ if(LIBNM_FOUND)
|
|||
endif()
|
||||
|
||||
if(QT5_VER AND QT5_PATH)
|
||||
string(REPLACE "." ";" VERSION_LIST ${QT5_VER})
|
||||
list(GET VERSION_LIST 0 QT5_VER_MAJOR)
|
||||
list(GET VERSION_LIST 1 QT5_VER_MINOR)
|
||||
list(GET VERSION_LIST 2 QT5_VER_PATCH)
|
||||
string(REPLACE "." ";" VERSION_LIST ${QT5_VER})
|
||||
list(GET VERSION_LIST 0 QT5_VER_MAJOR)
|
||||
list(GET VERSION_LIST 1 QT5_VER_MINOR)
|
||||
list(GET VERSION_LIST 2 QT5_VER_PATCH)
|
||||
|
||||
if ((${QT5_VER_MAJOR} GREATER_EQUAL 5) AND (${QT5_VER_MINOR} GREATER_EQUAL 14))
|
||||
message(STATUS "Using custom Qt version")
|
||||
find_package(Qt5 ${QT5_VER} REQUIRED
|
||||
COMPONENTS
|
||||
Core
|
||||
Quick
|
||||
QuickWidgets
|
||||
Network
|
||||
Svg
|
||||
QuickControls2
|
||||
WebEngine
|
||||
DBus
|
||||
PATHS ${QT5_PATH} NO_DEFAULT_PATH)
|
||||
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH true)
|
||||
endif()
|
||||
if((${QT5_VER_MAJOR} GREATER_EQUAL 5) AND (${QT5_VER_MINOR} GREATER_EQUAL 14))
|
||||
message(STATUS "Using custom Qt version")
|
||||
find_package(Qt5 ${QT5_VER} REQUIRED COMPONENTS
|
||||
Core
|
||||
Quick
|
||||
QuickWidgets
|
||||
Network
|
||||
Svg
|
||||
QuickControls2
|
||||
WebEngine
|
||||
DBus
|
||||
PATHS ${QT5_PATH} NO_DEFAULT_PATH)
|
||||
find_package(Qt5LinguistTools ${QT5_VER}
|
||||
PATHS ${QT5_PATH} NO_DEFAULT_PATH)
|
||||
endif()
|
||||
else()
|
||||
find_package(Qt5 REQUIRED
|
||||
COMPONENTS
|
||||
Core
|
||||
Quick
|
||||
QuickWidgets
|
||||
Network
|
||||
Svg
|
||||
QuickControls2
|
||||
WebEngine
|
||||
DBus)
|
||||
find_package(Qt5 REQUIRED COMPONENTS
|
||||
Core
|
||||
Quick
|
||||
QuickWidgets
|
||||
Network
|
||||
Svg
|
||||
QuickControls2
|
||||
WebEngine
|
||||
DBus)
|
||||
find_package(Qt5LinguistTools)
|
||||
endif()
|
||||
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH true)
|
||||
|
||||
# If LRC is not globally installed, it's path should be specified
|
||||
# by setting variable LRC. If library is not inside LRC + suffixes
|
||||
# lib, build or build-local, it's path should be set with LRCLIB.
|
||||
if(DEFINED LRC)
|
||||
if(EXISTS ${LRC}/include/libringclient)
|
||||
set(LRC_SRC_PATH ${LRC}/include/libringclient)
|
||||
else()
|
||||
set(LRC_SRC_PATH ${LRC}/src)
|
||||
endif()
|
||||
if(NOT DEFINED LRCLIB)
|
||||
set(LRCLIB ${LRC})
|
||||
endif()
|
||||
find_library(ringclient ringclient
|
||||
PATHS ${LRCLIB}
|
||||
PATH_SUFFIXES lib build build-local NO_DEFAULT_PATH)
|
||||
message("Will expect lrc library in ${LRCLIB} (including \
|
||||
subdirs /lib, /build and /build-local)")
|
||||
set(LRC_LIB_NAME ${ringclient})
|
||||
else()
|
||||
find_package(LibRingClient REQUIRED)
|
||||
if (LibRingClient_FOUND)
|
||||
set(LRC_SRC_PATH ${LIB_RING_CLIENT_INCLUDE_DIR})
|
||||
set(LRC_LIB_NAME ${LIB_RING_CLIENT_LIBRARY})
|
||||
else()
|
||||
message("lrc not found!")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
include_directories(${CMAKE_CURRENT_SOURCE_DIR}
|
||||
${SRC_DIR}
|
||||
${LRCPATH}
|
||||
${LIBNM_INCLUDE_DIRS})
|
||||
message("Will expect lrc headers in ${LRC_SRC_PATH}")
|
||||
|
||||
link_libraries(${LIBNM_LIBRARIES})
|
||||
include_directories(${PROJECT_SOURCE_DIR}
|
||||
${SRC_DIR}
|
||||
${LRC_SRC_PATH}
|
||||
${LIBNM_INCLUDE_DIRS})
|
||||
|
||||
add_executable(${PROJECT_NAME}
|
||||
${SRC_DIR}/main.cpp
|
||||
${COMMON_HEADERS}
|
||||
${COMMON_SOURCES}
|
||||
${QML_RESOURCES}
|
||||
${QML_RESOURCES_QML})
|
||||
${QML_RESOURCES_QML}
|
||||
${LRC_SRC_PATH}/webresource.qrc)
|
||||
|
||||
message(${LRCLIBDIR})
|
||||
find_library(ringclient ringclient ${LRCLIBDIR} NO_DEFAULT_PATH)
|
||||
find_library(qrencode qrencode)
|
||||
find_library(X11 X11)
|
||||
|
||||
target_link_libraries(jami-qt
|
||||
${QML_LIBS}
|
||||
${ringclient}
|
||||
${LRC_LIB_NAME}
|
||||
${qrencode}
|
||||
${X11}
|
||||
)
|
||||
${LIBNM_LIBRARIES})
|
||||
|
||||
if(ENABLE_TESTS)
|
||||
message("Add Jami tests")
|
||||
add_subdirectory(tests)
|
||||
endif()
|
||||
|
||||
# Installation rules
|
||||
install(TARGETS jami-qt
|
||||
RUNTIME DESTINATION bin)
|
||||
|
||||
# install .desktop in XDG desktop dir so that it is recognized by the system
|
||||
install(FILES ${PROJECT_SOURCE_DIR}/jami-qt.desktop
|
||||
DESTINATION ${CMAKE_INSTALL_PREFIX}/share/applications)
|
||||
|
||||
# logos
|
||||
install(FILES images/jami.svg
|
||||
DESTINATION ${CMAKE_INSTALL_PREFIX}/share/icons/hicolor/scalable/apps)
|
||||
|
||||
install(FILES images/jami-48px.png
|
||||
DESTINATION ${CMAKE_INSTALL_PREFIX}/share/icons/hicolor/48x48/apps
|
||||
RENAME jami.png)
|
||||
|
||||
install(FILES images/jami-32px.xpm
|
||||
DESTINATION ${CMAKE_INSTALL_PREFIX}/share/pixmaps
|
||||
RENAME jami.xpm)
|
||||
|
||||
install(FILES jami-qt.appdata.xml
|
||||
DESTINATION ${CMAKE_INSTALL_PREFIX}/share/metainfo)
|
||||
|
||||
# install jami launcher that selects between clients
|
||||
install(
|
||||
FILES
|
||||
"${PROJECT_SOURCE_DIR}/src/jami"
|
||||
DESTINATION
|
||||
${CMAKE_INSTALL_PREFIX}/bin
|
||||
PERMISSIONS
|
||||
WORLD_READ
|
||||
OWNER_WRITE
|
||||
OWNER_READ
|
||||
GROUP_READ
|
||||
OWNER_EXECUTE
|
||||
GROUP_EXECUTE
|
||||
WORLD_EXECUTE)
|
||||
|
||||
# add a target to generate API documentation with Doxygen
|
||||
find_package(Doxygen)
|
||||
if(DOXYGEN_FOUND)
|
||||
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/doc/Doxyfile.in ${CMAKE_CURRENT_SOURCE_DIR}/doc/Doxyfile @ONLY)
|
||||
add_custom_target(doc
|
||||
COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/doc/Doxyfile
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/doc
|
||||
COMMENT "Generating API documentation with Doxygen" VERBATIM)
|
||||
|
||||
# create doc/README.md symlink to README since Doxygen doesn't understand file with no extension
|
||||
add_custom_command(
|
||||
TARGET doc
|
||||
PRE_BUILD
|
||||
COMMAND ln -sf ${CMAKE_CURRENT_SOURCE_DIR}/README ${CMAKE_CURRENT_SOURCE_DIR}/doc/README.md)
|
||||
endif(DOXYGEN_FOUND)
|
||||
|
||||
|
||||
# translations
|
||||
if(Qt5LinguistTools_FOUND)
|
||||
message("Releasing and copying translation files")
|
||||
file(GLOB TS_FILES ${PROJECT_SOURCE_DIR}/translations/*.ts)
|
||||
qt5_add_translation(QM_FILES ${TS_FILES})
|
||||
add_custom_target(translations ALL DEPENDS ${QM_FILES})
|
||||
install(FILES ${QM_FILES}
|
||||
DESTINATION "${CMAKE_INSTALL_PREFIX}/share/libringclient/translations")
|
||||
endif()
|
||||
|
||||
# uninstall
|
||||
configure_file(
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/cmake/cmake_uninstall.cmake.in"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
|
||||
IMMEDIATE @ONLY)
|
||||
|
||||
add_custom_target(uninstall
|
||||
COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake)
|
||||
|
|
21
README.md
21
README.md
|
@ -71,6 +71,9 @@ Then, you can build daemon, lrc and client-qt with:
|
|||
|
||||
And you will have the daemon in `daemon/bin/dring` and the client in `client-qt/build-local/jami-qt`. You also can run it with
|
||||
|
||||
If you use a Qt version that is not wide-system installed you need to specify its path after the `--qt` flag, i. e., `./make-ring.py --install --qt /home/<username>/Qt/5.15.0/gcc_64
|
||||
|
||||
|
||||
```bash
|
||||
./make-ring.py --run --qt
|
||||
```
|
||||
|
@ -81,10 +84,23 @@ And you will have the daemon in `daemon/bin/dring` and the client in `client-qt/
|
|||
cd client-qt
|
||||
mkdir build
|
||||
cd build
|
||||
${YOUR_QT5_gcc64_PATH}/bin/qmake ../jami-qt.pro
|
||||
make -j9
|
||||
cmake .. -DQT5_VER=5.15.0 -DQT5_PATH=/home/<username>/Qt/5.15.0/gcc_64 -DLRC=<path_to_lrc> -DCMAKE_INSTALL_PREFIX=<installation_path>
|
||||
make -j
|
||||
```
|
||||
|
||||
Variables `QT5_VER` and `QT5_PATH` are used to specify version and path for a custom installation of Qt.
|
||||
|
||||
If lrc library is installed in a custom directory you can set its path with the variable LRC. Additionally you can specify built library location with `LRCLIB` (otherwise it will seach inside LRC with the suffixes `/lib`, `/build` and `/build-local`).
|
||||
|
||||
After the build has finished, you are finally ready to launch jami-qt in your build directory.
|
||||
|
||||
If you want to install it to the path provided by `CMAKE_INSTALL_PREFIX` you can run:
|
||||
|
||||
```bash
|
||||
make install
|
||||
```
|
||||
|
||||
|
||||
If you want more details, or separately build other projects you can check [this page](https://git.jami.net/savoirfairelinux/ring-project/wikis/technical/Build-instructions).
|
||||
|
||||
## Building On Native Windows
|
||||
|
@ -184,7 +200,6 @@ Only 64-bit MSVC build can be compiled.
|
|||
|
||||
```bash
|
||||
cd client-windows
|
||||
pandoc -f markdown -t html5 -o changelog.html changelog.md
|
||||
python make-client.py -d
|
||||
python make-client.py -b
|
||||
powershell -ExecutionPolicy Unrestricted -File copy-runtime-files.ps1
|
||||
|
|
41
cmake/cmake_uninstall.cmake.in
Normal file
41
cmake/cmake_uninstall.cmake.in
Normal file
|
@ -0,0 +1,41 @@
|
|||
# Taken from:
|
||||
# https://cmake.org/Wiki/CMake_FAQ#Can_I_do_.22make_uninstall.22_with_CMake.3F
|
||||
#
|
||||
# Copyright (C) 2021 Savoir-faire Linux Inc.
|
||||
#
|
||||
# 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, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
|
||||
if(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
|
||||
message(FATAL_ERROR "Cannot find install manifest: @CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
|
||||
endif(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
|
||||
|
||||
file(READ "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt" files)
|
||||
string(REGEX REPLACE "\n" ";" files "${files}")
|
||||
foreach(file ${files})
|
||||
message(STATUS "Uninstalling $ENV{DESTDIR}${file}")
|
||||
if(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}")
|
||||
exec_program(
|
||||
"@CMAKE_COMMAND@" ARGS "-E remove \"$ENV{DESTDIR}${file}\""
|
||||
OUTPUT_VARIABLE rm_out
|
||||
RETURN_VALUE rm_retval
|
||||
)
|
||||
if(NOT "${rm_retval}" STREQUAL 0)
|
||||
message(FATAL_ERROR "Problem when removing $ENV{DESTDIR}${file}")
|
||||
endif(NOT "${rm_retval}" STREQUAL 0)
|
||||
else(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}")
|
||||
message(STATUS "File $ENV{DESTDIR}${file} does not exist.")
|
||||
endif(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}")
|
||||
endforeach(file)
|
|
@ -195,7 +195,7 @@ def compile_and_copy_web_resources():
|
|||
print(bcolors.FAIL + "No rcc found!" + bcolors.ENDC)
|
||||
sys.exit()
|
||||
|
||||
lrc_web_resources_path = globalVar.lrc_path + os.sep + 'webresource.qrc'
|
||||
lrc_web_resources_path = globalVar.lrc_path + os.sep + "src" + os.sep + 'webresource.qrc'
|
||||
|
||||
execute_cmd(rcc + ' -binary ' + lrc_web_resources_path +
|
||||
' -o ' + globalVar.output_path + os.sep + 'webresource.rcc')
|
||||
|
|
10
doc/Doxyfile
Normal file
10
doc/Doxyfile
Normal file
|
@ -0,0 +1,10 @@
|
|||
PROJECT_NAME = "jami-qt"
|
||||
PROJECT_NUMBER =
|
||||
INPUT = /home/ababi/ring-project/client-qt
|
||||
RECURSIVE = YES
|
||||
EXCLUDE = /home/ababi/ring-project/client-qt/build-local
|
||||
FILE_PATTERNS = *.cpp *.h *.c *.md
|
||||
INPUT_ENCODING = UTF-8
|
||||
USE_MDFILE_AS_MAINPAGE = /home/ababi/ring-project/client-qt/doc/README.md
|
||||
EXTRACT_ALL = YES
|
||||
EXTRACT_LOCAL_CLASSES = YES
|
10
doc/Doxyfile.in
Normal file
10
doc/Doxyfile.in
Normal file
|
@ -0,0 +1,10 @@
|
|||
PROJECT_NAME = "@CMAKE_PROJECT_NAME@"
|
||||
PROJECT_NUMBER = @PROJECT_VERSION@
|
||||
INPUT = @PROJECT_SOURCE_DIR@
|
||||
RECURSIVE = YES
|
||||
EXCLUDE = @PROJECT_BINARY_DIR@
|
||||
FILE_PATTERNS = *.cpp *.h *.c *.md
|
||||
INPUT_ENCODING = UTF-8
|
||||
USE_MDFILE_AS_MAINPAGE = @PROJECT_SOURCE_DIR@/doc/README.md
|
||||
EXTRACT_ALL = YES
|
||||
EXTRACT_LOCAL_CLASSES = YES
|
21
doc/jami-qt.1
Normal file
21
doc/jami-qt.1
Normal file
|
@ -0,0 +1,21 @@
|
|||
.\" Manpage for jami-qt.
|
||||
.TH man 8 "08 April 2021" "1.0" "jami-qt man page"
|
||||
.SH NAME
|
||||
jami-qt \- Qt client for jami.net
|
||||
.SH SYNOPSIS
|
||||
jami-qt [options]
|
||||
.SH DESCRIPTION
|
||||
jami-qt is a qt client for jami.net
|
||||
.SH OPTIONS
|
||||
.B \-v, \-\-version
|
||||
Display the version and exit.
|
||||
.TP
|
||||
.B \-d, \-\-debug
|
||||
Enable debug.
|
||||
.TP
|
||||
.B \-h, \-\-help
|
||||
Display help text and exit.
|
||||
.SH SEE ALSO
|
||||
dring(1)
|
||||
.SH AUTHOR
|
||||
Alexandre Viau (alexandre.viau@savoirfairelinux.net)
|
392
images/jami-32px.xpm
Normal file
392
images/jami-32px.xpm
Normal file
|
@ -0,0 +1,392 @@
|
|||
/* XPM */
|
||||
static char * jami_xpm[] = {
|
||||
"32 32 357 2",
|
||||
" c None",
|
||||
". c #2B5B92",
|
||||
"+ c #202654",
|
||||
"@ c #262F5E",
|
||||
"# c #252C5A",
|
||||
"$ c #252F5D",
|
||||
"% c #2865A0",
|
||||
"& c #2767A2",
|
||||
"* c #2569A5",
|
||||
"= c #26305F",
|
||||
"- c #293868",
|
||||
"; c #2B4070",
|
||||
"> c #2B3D6D",
|
||||
", c #2B3E6E",
|
||||
"' c #256BA6",
|
||||
") c #2868A3",
|
||||
"! c #2171AF",
|
||||
"~ c #2073B2",
|
||||
"{ c #1C77B7",
|
||||
"] c #197ABA",
|
||||
"^ c #284172",
|
||||
"/ c #2C4172",
|
||||
"( c #2D4879",
|
||||
"_ c #2E4C7E",
|
||||
": c #2E4B7D",
|
||||
"< c #2E4E7F",
|
||||
"[ c #2E4C7D",
|
||||
"} c #2C5183",
|
||||
"| c #1A7AB8",
|
||||
"1 c #2074B0",
|
||||
"2 c #256CA8",
|
||||
"3 c #1A79B9",
|
||||
"4 c #177CBC",
|
||||
"5 c #147EBF",
|
||||
"6 c #127FC1",
|
||||
"7 c #1080C2",
|
||||
"8 c #265A90",
|
||||
"9 c #2D497A",
|
||||
"0 c #2E4779",
|
||||
"a c #2D4172",
|
||||
"b c #2D5487",
|
||||
"c c #2D5386",
|
||||
"d c #27649A",
|
||||
"e c #0D85C3",
|
||||
"f c #1380BD",
|
||||
"g c #1A7AB7",
|
||||
"h c #2173AF",
|
||||
"i c #266CA7",
|
||||
"j c #117FC2",
|
||||
"k c #1080C3",
|
||||
"l c #0F80C3",
|
||||
"m c #0F81C4",
|
||||
"n c #0E81C4",
|
||||
"o c #1F6EAB",
|
||||
"p c #2E4B7C",
|
||||
"q c #2E4678",
|
||||
"r c #2C4070",
|
||||
"s c #2C4A7C",
|
||||
"t c #2D568A",
|
||||
"u c #1F79B3",
|
||||
"v c #0A8ECC",
|
||||
"w c #0B8AC8",
|
||||
"x c #0E85C3",
|
||||
"y c #147FBD",
|
||||
"z c #1B79B6",
|
||||
"A c #2074B1",
|
||||
"B c #0E81C5",
|
||||
"C c #147DBE",
|
||||
"D c #2D4577",
|
||||
"E c #2C3E6F",
|
||||
"F c #2B4576",
|
||||
"G c #2D568B",
|
||||
"H c #138FCC",
|
||||
"I c #0A94D3",
|
||||
"J c #0A91CF",
|
||||
"K c #0A8DCB",
|
||||
"L c #0B89C7",
|
||||
"M c #0E84C2",
|
||||
"N c #1180C2",
|
||||
"O c #137EC0",
|
||||
"P c #157DBE",
|
||||
"Q c #275D93",
|
||||
"R c #293B6A",
|
||||
"S c #2B4E81",
|
||||
"T c #2C4F82",
|
||||
"U c #26679C",
|
||||
"V c #0B9AD9",
|
||||
"W c #0B98D7",
|
||||
"X c #0B96D5",
|
||||
"Y c #0A94D2",
|
||||
"Z c #0B8DCB",
|
||||
"` c #1E76B5",
|
||||
" . c #2172B0",
|
||||
".. c #2368A2",
|
||||
"+. c #273261",
|
||||
"@. c #294374",
|
||||
"#. c #2A4577",
|
||||
"$. c #1B86C1",
|
||||
"%. c #0D9BDB",
|
||||
"&. c #0C9BDB",
|
||||
"*. c #0C99D9",
|
||||
"=. c #0B96D4",
|
||||
"-. c #1C77B6",
|
||||
";. c #1F73B1",
|
||||
">. c #2075B2",
|
||||
",. c #2079B6",
|
||||
"'. c #207EBA",
|
||||
"). c #2080BC",
|
||||
"!. c #1D85C1",
|
||||
"~. c #1980B9",
|
||||
"{. c #1980BA",
|
||||
"]. c #187FB8",
|
||||
"^. c #187BB4",
|
||||
"/. c #1973AD",
|
||||
"(. c #2069A2",
|
||||
"_. c #275D94",
|
||||
":. c #26669C",
|
||||
"<. c #0F9CDC",
|
||||
"[. c #0E9CDC",
|
||||
"}. c #0D9CDC",
|
||||
"|. c #0C9BDA",
|
||||
"1. c #0B99D9",
|
||||
"2. c #0A93D1",
|
||||
"3. c #1092D0",
|
||||
"4. c #0E98D8",
|
||||
"5. c #0E9DDD",
|
||||
"6. c #109EDE",
|
||||
"7. c #0F9DDD",
|
||||
"8. c #0B99D8",
|
||||
"9. c #0A95D3",
|
||||
"0. c #0E85C2",
|
||||
"a. c #1C78B5",
|
||||
"b. c #2769A4",
|
||||
"c. c #1D8ECC",
|
||||
"d. c #0F9EDE",
|
||||
"e. c #158AC9",
|
||||
"f. c #1C78B9",
|
||||
"g. c #1181BF",
|
||||
"h. c #0B8BC9",
|
||||
"i. c #0A93D2",
|
||||
"j. c #0B98D8",
|
||||
"k. c #1083C1",
|
||||
"l. c #1E76B3",
|
||||
"m. c #2676B0",
|
||||
"n. c #119EDD",
|
||||
"o. c #0E9BDB",
|
||||
"p. c #1C78B7",
|
||||
"q. c #1D77B7",
|
||||
"r. c #2074B2",
|
||||
"s. c #1F75B2",
|
||||
"t. c #1083C0",
|
||||
"u. c #0B8CCA",
|
||||
"v. c #1C94D1",
|
||||
"w. c #168ECD",
|
||||
"x. c #2073B1",
|
||||
"y. c #2669A4",
|
||||
"z. c #2769A5",
|
||||
"A. c #1D77B4",
|
||||
"B. c #0B97D6",
|
||||
"C. c #137FBD",
|
||||
"D. c #1F85C1",
|
||||
"E. c #109DDD",
|
||||
"F. c #1C7BB9",
|
||||
"G. c #1C78B8",
|
||||
"H. c #2072B1",
|
||||
"I. c #2768A3",
|
||||
"J. c #2C598E",
|
||||
"K. c #266BA7",
|
||||
"L. c #1B79B7",
|
||||
"M. c #0D86C4",
|
||||
"N. c #0A8FCD",
|
||||
"O. c #0A96D4",
|
||||
"P. c #0C9ADA",
|
||||
"Q. c #0A92D0",
|
||||
"R. c #157FBD",
|
||||
"S. c #1196D4",
|
||||
"T. c #178DCB",
|
||||
"U. c #1D77B6",
|
||||
"V. c #2C588C",
|
||||
"W. c #246EAA",
|
||||
"X. c #197BB9",
|
||||
"Y. c #0C87C5",
|
||||
"Z. c #0A90CE",
|
||||
"`. c #0C9AD9",
|
||||
" + c #149EDD",
|
||||
".+ c #1697D4",
|
||||
"++ c #1790CD",
|
||||
"@+ c #1486C3",
|
||||
"#+ c #1285C3",
|
||||
"$+ c #0E9ADA",
|
||||
"%+ c #2866A1",
|
||||
"&+ c #2D578B",
|
||||
"*+ c #2370AC",
|
||||
"=+ c #177DBA",
|
||||
"-+ c #1095D4",
|
||||
";+ c #198AC6",
|
||||
">+ c #207EB7",
|
||||
",+ c #2674AA",
|
||||
"'+ c #2A6FA5",
|
||||
")+ c #2D679A",
|
||||
"!+ c #2D598D",
|
||||
"~+ c #2D5488",
|
||||
"{+ c #2C5A8F",
|
||||
"]+ c #2A6097",
|
||||
"^+ c #1A7CB5",
|
||||
"/+ c #24679E",
|
||||
"(+ c #2070AB",
|
||||
"_+ c #1B78B7",
|
||||
":+ c #28669F",
|
||||
"<+ c #2172AF",
|
||||
"[+ c #147FBC",
|
||||
"}+ c #157FBB",
|
||||
"|+ c #216EA5",
|
||||
"1+ c #285689",
|
||||
"2+ c #2C4272",
|
||||
"3+ c #2C4171",
|
||||
"4+ c #2B5C91",
|
||||
"5+ c #29639A",
|
||||
"6+ c #27679F",
|
||||
"7+ c #256BA4",
|
||||
"8+ c #236EA9",
|
||||
"9+ c #2172AD",
|
||||
"0+ c #1F75B1",
|
||||
"a+ c #187DBA",
|
||||
"b+ c #1380BE",
|
||||
"c+ c #0F8ECA",
|
||||
"d+ c #273B6A",
|
||||
"e+ c #2A3969",
|
||||
"f+ c #2C4071",
|
||||
"g+ c #294E81",
|
||||
"h+ c #265E95",
|
||||
"i+ c #2469A5",
|
||||
"j+ c #28659E",
|
||||
"k+ c #2D5689",
|
||||
"l+ c #236FAA",
|
||||
"m+ c #285D93",
|
||||
"n+ c #2D4D7F",
|
||||
"o+ c #2A5B90",
|
||||
"p+ c #1C79B5",
|
||||
"q+ c #197BB8",
|
||||
"r+ c #167EBB",
|
||||
"s+ c #1082C0",
|
||||
"t+ c #0F85C2",
|
||||
"u+ c #0D87C4",
|
||||
"v+ c #1683C1",
|
||||
"w+ c #225E91",
|
||||
"x+ c #2A3A6A",
|
||||
"y+ c #2A3C6D",
|
||||
"z+ c #2D4A7C",
|
||||
"A+ c #2C5488",
|
||||
"B+ c #2D5588",
|
||||
"C+ c #2E568B",
|
||||
"D+ c #1B7AB5",
|
||||
"E+ c #0B93D1",
|
||||
"F+ c #1C71AA",
|
||||
"G+ c #2B3F6F",
|
||||
"H+ c #2C4374",
|
||||
"I+ c #2D4B7E",
|
||||
"J+ c #2C5C94",
|
||||
"K+ c #2B5C95",
|
||||
"L+ c #29639B",
|
||||
"M+ c #0E90CE",
|
||||
"N+ c #0B94D2",
|
||||
"O+ c #0C97D5",
|
||||
"P+ c #0C98D6",
|
||||
"Q+ c #0C99D7",
|
||||
"R+ c #1195D3",
|
||||
"S+ c #266DA8",
|
||||
"T+ c #256CA7",
|
||||
"U+ c #2B4B7D",
|
||||
"V+ c #2D4576",
|
||||
"W+ c #2D4778",
|
||||
"X+ c #2D487A",
|
||||
"Y+ c #2E4A7C",
|
||||
"Z+ c #2C5B92",
|
||||
"`+ c #2A6099",
|
||||
" @ c #2A5D95",
|
||||
".@ c #2A5F98",
|
||||
"+@ c #2A609A",
|
||||
"@@ c #2179B4",
|
||||
"#@ c #0D9AD8",
|
||||
"$@ c #0D9BD9",
|
||||
"%@ c #0E9BD9",
|
||||
"&@ c #0E9CDA",
|
||||
"*@ c #0E9CDB",
|
||||
"=@ c #1691CE",
|
||||
"-@ c #2B588D",
|
||||
";@ c #2C568B",
|
||||
">@ c #2A5F99",
|
||||
",@ c #2D4678",
|
||||
"'@ c #2B4475",
|
||||
")@ c #294576",
|
||||
"!@ c #274779",
|
||||
"~@ c #264F83",
|
||||
"{@ c #2275B1",
|
||||
"]@ c #1B8AC5",
|
||||
"^@ c #0F9DDB",
|
||||
"/@ c #0F9DDC",
|
||||
"(@ c #1B88C3",
|
||||
"_@ c #2E4D7F",
|
||||
":@ c #2E4A7D",
|
||||
"<@ c #2E5488",
|
||||
"[@ c #2E5083",
|
||||
"}@ c #2D4475",
|
||||
"|@ c #2A3D6D",
|
||||
"1@ c #1B72AC",
|
||||
"2@ c #1F75B4",
|
||||
"3@ c #1496D4",
|
||||
"4@ c #109EDD",
|
||||
"5@ c #1E81BA",
|
||||
"6@ c #2E4A7B",
|
||||
"7@ c #2E487A",
|
||||
"8@ c #2E5487",
|
||||
"9@ c #1D74B1",
|
||||
"0@ c #117FC1",
|
||||
"a@ c #187BBB",
|
||||
"b@ c #1F74B2",
|
||||
"c@ c #2373AF",
|
||||
"d@ c #119CDC",
|
||||
"e@ c #1F7DB6",
|
||||
"f@ c #2E4778",
|
||||
"g@ c #2D4375",
|
||||
"h@ c #2D4173",
|
||||
"i@ c #2E4F81",
|
||||
"j@ c #2E5285",
|
||||
"k@ c #2E5589",
|
||||
"l@ c #1B77B5",
|
||||
"m@ c #127FC0",
|
||||
"n@ c #197ABB",
|
||||
"o@ c #1F7CB8",
|
||||
"p@ c #1C81BB",
|
||||
"q@ c #2B3C6C",
|
||||
"r@ c #2A3767",
|
||||
"s@ c #2D4374",
|
||||
"t@ c #2E497A",
|
||||
"u@ c #2A5A90",
|
||||
"v@ c #187ABA",
|
||||
"w@ c #0F80C4",
|
||||
"x@ c #1A7ABA",
|
||||
"y@ c #1C83C0",
|
||||
"z@ c #0B97D5",
|
||||
"A@ c #1489C5",
|
||||
"B@ c #245081",
|
||||
"C@ c #272F5E",
|
||||
"D@ c #252D5C",
|
||||
"E@ c #26629B",
|
||||
"F@ c #137EBF",
|
||||
"G@ c #2270AE",
|
||||
"H@ c #1574AC",
|
||||
"I@ c #1B78B8",
|
||||
"J@ c #147DBF",
|
||||
"K@ c #0D87C5",
|
||||
"L@ c #1182BF",
|
||||
"M@ c #167DBB",
|
||||
"N@ c #1E77B3",
|
||||
"O@ c #236FAB",
|
||||
"P@ c #2669A3",
|
||||
" ",
|
||||
" . + @ # $ % ",
|
||||
" & * = - ; > > , ' ) ",
|
||||
" ! ~ { ] ^ / ( _ : < [ [ [ } | 1 2 ) ",
|
||||
" 3 4 5 6 7 8 9 _ : 0 a b c c c c d e f g h i ",
|
||||
" 6 j k l m n o _ p q r s t t t t t u v w x y z A ",
|
||||
" m m B B m m C _ D E F G G G G G G H I J K L M f ",
|
||||
" m l k N O P Q > R S T T T T T U V W X Y J Z ",
|
||||
" 6 5 4 3 ` ...+.@.#.#.#.#.#.#.$.%.&.*.W =.Y ",
|
||||
" -.;.>.,.'.).!.~.{.].^./.(._.:.<.[.}.%.|.1.W ",
|
||||
" 2.3.4.}.5.6.7.[.%.8.9.v 0.a.b.c.d.7.5.[.}.&.e.f. ",
|
||||
" g.h.i.W &.}.7.6.7.[.&.j.I Z k.l.m.n.d.6.d.7.5.o.p.f.q.r. ",
|
||||
" s.t.u.I W &.[.7.6.7.}.&.W Y u.g.1 v.[.5.7.d.6.d.w.q.f.q.x.y. ",
|
||||
"z.A.M v 9.8.&.[.7.6.7.}.|.B.2.w C.D.o.%.}.[.5.7.E.F.G.G.q.H.I.J.",
|
||||
"K.L.M.N.O.*.%.[.7.6.5.}.P.B.Q.L R.S.W *.&.}.}.[.T.` G.G.U. .& V.",
|
||||
"W.X.Y.Z.X `.}.5.d.d.7.n. +.+++@+#+J I X W `.&.$+>.U.G.G.U. .%+&+",
|
||||
"*+=+L J X -+;+>+,+'+)+!+~+&+{+]+f L K Q.9.X W ^+/+(+_+f.U.! :+t ",
|
||||
"<+[+}+|+1+2+3+3+2+4+5+6+7+8+9+0+a+b+e w v Q.c+d+e+3+f+g+h+i+j+k+",
|
||||
"l+m+n+n+n+n+n+n+n+o+p+q+r+f s+t+u+v+g b+M.w w+x+y+z+n+n+n+n+A+B+",
|
||||
"C+C+C+C+C+C+C+C+C+C+D+L h.Z v Z.Q.E+,.A q+F+G+/ H+I+C+C+C+C+C+ ",
|
||||
" J+K+K+K+K+K+K+K+L+M+N+=.=.O+P+Q+R+S+T+U+V+W+X+Y+Z+K+K+J+ ",
|
||||
" `+ @.@+@+@+@+@@@#@$@%@&@&@*@*@=@-@9 Y+[ _ _ ;@>@ ",
|
||||
" _ ,@'@)@!@~@{@]@^@^@/@/@/@/@7.(@_@_ _ _ : :@ ",
|
||||
" <@[@: }@|@1@2@T+3@E.4@4@6.6.6.6.5@: Y+6@7@0 ",
|
||||
" G t 8@[@9@0@a@b@c@d@7.7.7.7.5.5.[.e@f@V+g@h@ ",
|
||||
" i@j@k@J.l@m l m@n@x.o@[.[.}.}.}.%.&.&.p@H+q@e+r@ ",
|
||||
" s@t@u@v@w@B m l O x@! y@&.P.`.1.8.W B.z@A@B@C@D@ ",
|
||||
" E@-.P 7 m B m k F@3 G@W X O.9.Y 2.J Z.v u.H@ ",
|
||||
" ! I@J@7 m B m k 5 J v u.w L K@x t.L@ ",
|
||||
" 3 F@k m B b+M@q+a.N@ ",
|
||||
" a@O l O@y.P@ ",
|
||||
" "};
|
BIN
images/jami-48px.png
Normal file
BIN
images/jami-48px.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.8 KiB |
358
images/jami.svg
Normal file
358
images/jami.svg
Normal file
|
@ -0,0 +1,358 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 21.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Calque_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 116.3 116.3" style="enable-background:new 0 0 116.3 116.3;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{fill:url(#SVGID_1_);}
|
||||
.st1{fill:url(#SVGID_2_);}
|
||||
.st2{fill:url(#SVGID_3_);}
|
||||
.st3{fill:url(#SVGID_4_);}
|
||||
.st4{fill:url(#SVGID_5_);}
|
||||
.st5{fill:url(#SVGID_6_);}
|
||||
.st6{opacity:0.4;fill:url(#SVGID_7_);enable-background:new ;}
|
||||
.st7{fill:url(#SVGID_8_);}
|
||||
.st8{fill:url(#SVGID_9_);}
|
||||
.st9{fill:url(#SVGID_10_);}
|
||||
.st10{fill:url(#SVGID_11_);}
|
||||
.st11{fill:url(#SVGID_12_);}
|
||||
.st12{fill:url(#SVGID_13_);}
|
||||
.st13{fill:url(#SVGID_14_);}
|
||||
.st14{fill:url(#SVGID_15_);}
|
||||
.st15{fill:url(#SVGID_16_);}
|
||||
.st16{opacity:0.2;fill:url(#SVGID_17_);enable-background:new ;}
|
||||
.st17{fill:url(#SVGID_18_);}
|
||||
.st18{fill:url(#SVGID_19_);}
|
||||
.st19{opacity:0.25;fill:url(#SVGID_20_);enable-background:new ;}
|
||||
.st20{fill:url(#SVGID_21_);}
|
||||
.st21{fill:url(#SVGID_22_);}
|
||||
.st22{opacity:0.2;fill:url(#SVGID_23_);enable-background:new ;}
|
||||
.st23{fill:url(#SVGID_24_);}
|
||||
</style>
|
||||
<g>
|
||||
<g>
|
||||
|
||||
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="69.0328" y1="454.9245" x2="64.4435" y2="449.5703" gradientTransform="matrix(1 0 0 1 -8.0854 -395.1333)">
|
||||
<stop offset="0" style="stop-color:#2B3B6A"/>
|
||||
<stop offset="1" style="stop-color:#2B3B6A"/>
|
||||
</linearGradient>
|
||||
<polygon class="st0" points="54.9,55.8 62,55.6 58.4,62.2 "/>
|
||||
|
||||
<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="108.534" y1="457.2333" x2="108.534" y2="494.0327" gradientTransform="matrix(1 0 0 1 -8.0854 -395.1333)">
|
||||
<stop offset="0" style="stop-color:#2B3B6A"/>
|
||||
<stop offset="7.040000e-02" style="stop-color:#2D4576"/>
|
||||
<stop offset="0.2165" style="stop-color:#2E5589"/>
|
||||
<stop offset="0.3608" style="stop-color:#2B5E97"/>
|
||||
<stop offset="0.5" style="stop-color:#29629C"/>
|
||||
<stop offset="0.6392" style="stop-color:#2B5E97"/>
|
||||
<stop offset="0.7835" style="stop-color:#2E5589"/>
|
||||
<stop offset="0.9296" style="stop-color:#2D4576"/>
|
||||
<stop offset="1" style="stop-color:#2B3B6A"/>
|
||||
</linearGradient>
|
||||
<path class="st1" d="M85.5,57.5c26.1,4.2,29.8,10.7,29.8,10.7c0,0.4,0,0.8,0,1.2c0,0.2-0.1,0.4-0.2,0.7c-0.1,0.3-2.7,5.7-19.6,9.3
|
||||
L85.5,57.5z"/>
|
||||
|
||||
<linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="26.7686" y1="496.8278" x2="38.7091" y2="475.5678" gradientTransform="matrix(1 0 0 1 -8.0854 -395.1333)">
|
||||
<stop offset="0" style="stop-color:#252B59"/>
|
||||
<stop offset="8.590000e-02" style="stop-color:#2B3A69"/>
|
||||
<stop offset="0.2267" style="stop-color:#2E4A7C"/>
|
||||
<stop offset="0.3658" style="stop-color:#2E5487"/>
|
||||
<stop offset="0.5" style="stop-color:#2D578C"/>
|
||||
<stop offset="0.6342" style="stop-color:#2E5487"/>
|
||||
<stop offset="0.7733" style="stop-color:#2E4A7C"/>
|
||||
<stop offset="0.9141" style="stop-color:#2B3A69"/>
|
||||
<stop offset="1" style="stop-color:#252B59"/>
|
||||
</linearGradient>
|
||||
<path class="st2" d="M19.8,78.5c-5.9,15.7-2.9,20.6-2.7,21c0.1,0.2,0.2,0.4,0.4,0.5c0.4,0,0.8-0.1,1.2-0.2c0,0,10.7-0.5,23.2-18.3
|
||||
L19.8,78.5z"/>
|
||||
|
||||
<linearGradient id="SVGID_4_" gradientUnits="userSpaceOnUse" x1="60.8512" y1="424.6486" x2="41.0872" y2="401.5905" gradientTransform="matrix(1 0 0 1 -8.0854 -395.1333)">
|
||||
<stop offset="0" style="stop-color:#181844"/>
|
||||
<stop offset="2.840000e-02" style="stop-color:#1E1E4C"/>
|
||||
<stop offset="0.1353" style="stop-color:#283261"/>
|
||||
<stop offset="0.2468" style="stop-color:#2D4172"/>
|
||||
<stop offset="0.3647" style="stop-color:#2E4A7C"/>
|
||||
<stop offset="0.5" style="stop-color:#2E4D7F"/>
|
||||
<stop offset="0.6177" style="stop-color:#2D4576"/>
|
||||
<stop offset="0.8125" style="stop-color:#273160"/>
|
||||
<stop offset="1" style="stop-color:#181844"/>
|
||||
</linearGradient>
|
||||
<path class="st3" d="M58.8,18.6C44.5,2.9,37.5,3.8,37.1,3.9c-0.2,0-0.5,0.1-0.7,0.2c-0.5,0.2-1,1.8-1,1.8s-3,8.7,9.1,31.9
|
||||
L58.8,18.6z"/>
|
||||
|
||||
<linearGradient id="SVGID_5_" gradientUnits="userSpaceOnUse" x1="99.9721" y1="499.3526" x2="84.7036" y2="450.1664" gradientTransform="matrix(1 0 0 1 -8.0854 -395.1333)">
|
||||
<stop offset="0" style="stop-color:#181844"/>
|
||||
<stop offset="2.840000e-02" style="stop-color:#1E1E4C"/>
|
||||
<stop offset="0.1353" style="stop-color:#283261"/>
|
||||
<stop offset="0.2468" style="stop-color:#2D4172"/>
|
||||
<stop offset="0.3647" style="stop-color:#2E4A7C"/>
|
||||
<stop offset="0.5" style="stop-color:#2E4D7F"/>
|
||||
<stop offset="0.6177" style="stop-color:#2D4576"/>
|
||||
<stop offset="0.8125" style="stop-color:#273160"/>
|
||||
<stop offset="1" style="stop-color:#181844"/>
|
||||
</linearGradient>
|
||||
<path class="st4" d="M71.2,78.8C90.6,101,97.4,99.8,97.4,99.8c0.4,0.1,0.9,0.2,1.3,0.2c0.2-0.1,0.3-0.3,0.4-0.5
|
||||
c0.3-0.4,5.8-9.4-12.8-41.8L71.2,78.8z"/>
|
||||
|
||||
<linearGradient id="SVGID_6_" gradientUnits="userSpaceOnUse" x1="31.6447" y1="457.2331" x2="31.6447" y2="494.0317" gradientTransform="matrix(1 0 0 1 -8.0854 -395.1333)">
|
||||
<stop offset="0" style="stop-color:#2B3B6A"/>
|
||||
<stop offset="7.040000e-02" style="stop-color:#2D4576"/>
|
||||
<stop offset="0.2165" style="stop-color:#2E5589"/>
|
||||
<stop offset="0.3608" style="stop-color:#2B5E97"/>
|
||||
<stop offset="0.5" style="stop-color:#29629C"/>
|
||||
<stop offset="0.6392" style="stop-color:#2B5E97"/>
|
||||
<stop offset="0.7835" style="stop-color:#2E5589"/>
|
||||
<stop offset="0.9296" style="stop-color:#2D4576"/>
|
||||
<stop offset="1" style="stop-color:#2B3B6A"/>
|
||||
</linearGradient>
|
||||
<path class="st5" d="M46.1,82.2c-40-1.7-44.8-11.6-45-12.1C1.1,69.9,1,69.7,1,69.5c0.1-0.7,1.5-2,1.5-2s10.6-6.5,28.3-10
|
||||
L46.1,82.2z"/>
|
||||
|
||||
<linearGradient id="SVGID_7_" gradientUnits="userSpaceOnUse" x1="51.8906" y1="421.1236" x2="66.337" y2="421.1236" gradientTransform="matrix(1 0 0 1 -8.0854 -395.1333)">
|
||||
<stop offset="0" style="stop-color:#2B3B6A"/>
|
||||
<stop offset="1" style="stop-color:#2B3B6A"/>
|
||||
</linearGradient>
|
||||
<path class="st6" d="M57.6,17.4c-5,5.4-9.6,11.2-13.8,17.2h1c3.1-3.9,10.8-13.7,13.4-16.5L57.6,17.4z"/>
|
||||
|
||||
<linearGradient id="SVGID_8_" gradientUnits="userSpaceOnUse" x1="70.9709" y1="436.4003" x2="70.9709" y2="401.6908" gradientTransform="matrix(1 0 0 1 -8.0854 -395.1333)">
|
||||
<stop offset="0" style="stop-color:#252B59"/>
|
||||
<stop offset="0.5" style="stop-color:#2D578C"/>
|
||||
<stop offset="0.6934" style="stop-color:#2D5588"/>
|
||||
<stop offset="0.8038" style="stop-color:#2E4F80"/>
|
||||
<stop offset="0.8932" style="stop-color:#2D4474"/>
|
||||
<stop offset="0.971" style="stop-color:#283463"/>
|
||||
<stop offset="1" style="stop-color:#252B59"/>
|
||||
</linearGradient>
|
||||
<path class="st7" d="M73.8,35.4C84.2,10.7,80.2,5,80.2,5c-0.1-0.3-0.2-0.7-0.3-1c-0.2-0.1-0.4-0.1-0.7-0.2
|
||||
c-0.5-0.1-11.4-1.5-34.4,30.7L73.8,35.4z"/>
|
||||
|
||||
<linearGradient id="SVGID_9_" gradientUnits="userSpaceOnUse" x1="39.2669" y1="503.7654" x2="102.6764" y2="407.9172" gradientTransform="matrix(1 0 0 1 -8.0854 -395.1333)">
|
||||
<stop offset="0" style="stop-color:#2867A2"/>
|
||||
<stop offset="8.239999e-02" style="stop-color:#177EBC"/>
|
||||
<stop offset="0.1675" style="stop-color:#0E91D1"/>
|
||||
<stop offset="0.2527" style="stop-color:#10A2E1"/>
|
||||
<stop offset="0.337" style="stop-color:#18ACEA"/>
|
||||
<stop offset="0.42" style="stop-color:#24B1ED"/>
|
||||
<stop offset="0.5" style="stop-color:#28B1ED"/>
|
||||
<stop offset="0.58" style="stop-color:#24B1ED"/>
|
||||
<stop offset="0.663" style="stop-color:#18ACEA"/>
|
||||
<stop offset="0.7473" style="stop-color:#10A2E1"/>
|
||||
<stop offset="0.8325" style="stop-color:#0E91D1"/>
|
||||
<stop offset="0.9176" style="stop-color:#177EBC"/>
|
||||
<stop offset="1" style="stop-color:#2867A2"/>
|
||||
</linearGradient>
|
||||
<path class="st8" d="M58,97.4c-14.2,15.4-21,14.5-21.4,14.5c-0.6-0.2-1.2-0.5-1.7-0.8l-17.3-11c7.3-1.6,16.3-10.2,25.7-21.3
|
||||
L58,97.4z"/>
|
||||
|
||||
<linearGradient id="SVGID_10_" gradientUnits="userSpaceOnUse" x1="33.568" y1="505.6873" x2="58.683" y2="483.2007" gradientTransform="matrix(1 0 0 1 -8.0854 -395.1333)">
|
||||
<stop offset="0" style="stop-color:#2C5D95"/>
|
||||
<stop offset="8.220001e-02" style="stop-color:#246EAB"/>
|
||||
<stop offset="0.1808" style="stop-color:#1B79B9"/>
|
||||
<stop offset="0.3007" style="stop-color:#1080C2"/>
|
||||
<stop offset="0.5" style="stop-color:#0E81C5"/>
|
||||
<stop offset="0.6993" style="stop-color:#1080C2"/>
|
||||
<stop offset="0.8192" style="stop-color:#1B79B9"/>
|
||||
<stop offset="0.9178" style="stop-color:#246EAB"/>
|
||||
<stop offset="1" style="stop-color:#2C5D95"/>
|
||||
</linearGradient>
|
||||
<path class="st9" d="M58.6,98c-14.2,15.4-21,14.5-21.4,14.5c-0.6-0.2-1.2-0.5-1.7-0.8L17.6,100c7.3-1.6,16.9-9.6,26.3-20.7
|
||||
L58.6,98z"/>
|
||||
|
||||
<linearGradient id="SVGID_11_" gradientUnits="userSpaceOnUse" x1="31.3212" y1="407.2591" x2="89.6399" y2="504.4568" gradientTransform="matrix(1 0 0 1 -8.0854 -395.1333)">
|
||||
<stop offset="0" style="stop-color:#2C5D95"/>
|
||||
<stop offset="1.760000e-02" style="stop-color:#2A6199"/>
|
||||
<stop offset="0.1407" style="stop-color:#1C79B7"/>
|
||||
<stop offset="0.2631" style="stop-color:#0A8CCA"/>
|
||||
<stop offset="0.3837" style="stop-color:#0B97D4"/>
|
||||
<stop offset="0.5" style="stop-color:#0E9AD8"/>
|
||||
<stop offset="0.6163" style="stop-color:#0B97D4"/>
|
||||
<stop offset="0.7369" style="stop-color:#0A8CCA"/>
|
||||
<stop offset="0.8593" style="stop-color:#1C79B7"/>
|
||||
<stop offset="0.9824" style="stop-color:#2A6199"/>
|
||||
<stop offset="1" style="stop-color:#2C5D95"/>
|
||||
</linearGradient>
|
||||
<path class="st10" d="M20.7,38c-6.3-16.2-3.2-21.3-3-21.6c0.4-0.5,0.9-0.9,1.4-1.2l17.3-11c-1.5,7.1,2.3,18,8.2,30.7L20.7,38z"/>
|
||||
|
||||
<linearGradient id="SVGID_12_" gradientUnits="userSpaceOnUse" x1="94.4028" y1="503.8655" x2="56.9038" y2="456.6339" gradientTransform="matrix(1 0 0 1 -8.0854 -395.1333)">
|
||||
<stop offset="0" style="stop-color:#2C5D95"/>
|
||||
<stop offset="2.570000e-02" style="stop-color:#2A6199"/>
|
||||
<stop offset="0.2053" style="stop-color:#1C79B7"/>
|
||||
<stop offset="0.384" style="stop-color:#0A8CCA"/>
|
||||
<stop offset="0.5599" style="stop-color:#0B97D4"/>
|
||||
<stop offset="0.7296" style="stop-color:#0E9AD8"/>
|
||||
<stop offset="0.7925" style="stop-color:#0B97D4"/>
|
||||
<stop offset="0.8577" style="stop-color:#0A8CCA"/>
|
||||
<stop offset="0.9239" style="stop-color:#1C79B7"/>
|
||||
<stop offset="0.9905" style="stop-color:#2A6199"/>
|
||||
<stop offset="1" style="stop-color:#2C5D95"/>
|
||||
</linearGradient>
|
||||
<path class="st11" d="M57.2,57.2c-8.7,0-17.4,0.7-26,1.9c0.3,0.5,4.3,7.2,7.2,11.7c27.8,42.8,40.8,41.1,41.4,41
|
||||
c0.6-0.2,1.2-0.5,1.7-0.8l17.3-11C87,97.5,70.6,78.2,57.2,57.2z"/>
|
||||
|
||||
<linearGradient id="SVGID_13_" gradientUnits="userSpaceOnUse" x1="40.2175" y1="431.0724" x2="32.9164" y2="404.7886" gradientTransform="matrix(1 0 0 1 -8.0854 -395.1333)">
|
||||
<stop offset="0" style="stop-color:#2C5D95"/>
|
||||
<stop offset="8.220001e-02" style="stop-color:#246EAB"/>
|
||||
<stop offset="0.1808" style="stop-color:#1B79B9"/>
|
||||
<stop offset="0.3007" style="stop-color:#1080C2"/>
|
||||
<stop offset="0.5" style="stop-color:#0E81C5"/>
|
||||
<stop offset="0.6993" style="stop-color:#1080C2"/>
|
||||
<stop offset="0.8192" style="stop-color:#1B79B9"/>
|
||||
<stop offset="0.9178" style="stop-color:#246EAB"/>
|
||||
<stop offset="1" style="stop-color:#2C5D95"/>
|
||||
</linearGradient>
|
||||
<path class="st12" d="M20.1,38.5c-6.3-16.2-3.2-21.3-3-21.6c0.4-0.5,0.9-0.9,1.4-1.2L36.5,4.1c-1.5,7.1,1.7,18.6,7.6,31.2
|
||||
L20.1,38.5z"/>
|
||||
|
||||
<linearGradient id="SVGID_14_" gradientUnits="userSpaceOnUse" x1="122.9025" y1="448.7971" x2="9.1479" y2="448.7971" gradientTransform="matrix(1 0 0 1 -8.0854 -395.1333)">
|
||||
<stop offset="0" style="stop-color:#2867A2"/>
|
||||
<stop offset="1.280000e-02" style="stop-color:#256BA7"/>
|
||||
<stop offset="0.1121" style="stop-color:#0B83C3"/>
|
||||
<stop offset="0.2115" style="stop-color:#1797D8"/>
|
||||
<stop offset="0.3099" style="stop-color:#25A3E2"/>
|
||||
<stop offset="0.4066" style="stop-color:#27ABE7"/>
|
||||
<stop offset="0.5" style="stop-color:#2AAEEA"/>
|
||||
<stop offset="0.5934" style="stop-color:#27ABE7"/>
|
||||
<stop offset="0.6901" style="stop-color:#25A3E2"/>
|
||||
<stop offset="0.7885" style="stop-color:#1797D8"/>
|
||||
<stop offset="0.8879" style="stop-color:#0B83C3"/>
|
||||
<stop offset="0.9872" style="stop-color:#256BA7"/>
|
||||
<stop offset="1" style="stop-color:#2867A2"/>
|
||||
</linearGradient>
|
||||
<path class="st13" d="M85.5,59.6c13.5,1.9,24.7,4.7,29.8,9.8V48.9c0-0.6-0.1-1.3-0.2-1.9c-0.1-0.3-2.7-5.6-19-9.1L85.5,59.6z"/>
|
||||
|
||||
<linearGradient id="SVGID_15_" gradientUnits="userSpaceOnUse" x1="90.2941" y1="447.1362" x2="122.8074" y2="448.8884" gradientTransform="matrix(1 0 0 1 -8.0854 -395.1333)">
|
||||
<stop offset="0" style="stop-color:#2E5284"/>
|
||||
<stop offset="6.100000e-03" style="stop-color:#2E5486"/>
|
||||
<stop offset="9.120000e-02" style="stop-color:#29649D"/>
|
||||
<stop offset="0.1876" style="stop-color:#236FAD"/>
|
||||
<stop offset="0.3049" style="stop-color:#1D77B6"/>
|
||||
<stop offset="0.5" style="stop-color:#1C78B9"/>
|
||||
<stop offset="0.6951" style="stop-color:#1D77B6"/>
|
||||
<stop offset="0.8124" style="stop-color:#236FAD"/>
|
||||
<stop offset="0.9088" style="stop-color:#29649D"/>
|
||||
<stop offset="0.9939" style="stop-color:#2E5486"/>
|
||||
<stop offset="1" style="stop-color:#2E5284"/>
|
||||
</linearGradient>
|
||||
<path class="st14" d="M85.5,58.8c13.5,1.9,24.7,5.5,29.8,10.6V48.1c0-0.6-0.1-1.3-0.2-1.9c-0.1-0.3-2.7-5.6-19-9.1L85.5,58.8z"/>
|
||||
|
||||
<linearGradient id="SVGID_16_" gradientUnits="userSpaceOnUse" x1="9.0577" y1="447.1912" x2="67.7186" y2="447.1912" gradientTransform="matrix(1 0 0 1 -8.0854 -395.1333)">
|
||||
<stop offset="0" style="stop-color:#2867A2"/>
|
||||
<stop offset="2.250000e-02" style="stop-color:#256BA7"/>
|
||||
<stop offset="0.1971" style="stop-color:#0B83C3"/>
|
||||
<stop offset="0.3718" style="stop-color:#1797D8"/>
|
||||
<stop offset="0.5447" style="stop-color:#25A3E2"/>
|
||||
<stop offset="0.7147" style="stop-color:#27ABE7"/>
|
||||
<stop offset="0.8788" style="stop-color:#2AAEEA"/>
|
||||
<stop offset="0.9015" style="stop-color:#27ABE7"/>
|
||||
<stop offset="0.9249" style="stop-color:#25A3E2"/>
|
||||
<stop offset="0.9487" style="stop-color:#1797D8"/>
|
||||
<stop offset="0.9728" style="stop-color:#0B83C3"/>
|
||||
<stop offset="0.9969" style="stop-color:#256BA7"/>
|
||||
<stop offset="1" style="stop-color:#2867A2"/>
|
||||
</linearGradient>
|
||||
<path class="st15" d="M73.2,35.1c-3-0.1-9.5-0.4-15.1-0.4C7.1,34.7,1.4,46.5,1.2,47C1,47.6,1,48.3,1,48.9v20.6
|
||||
c5-5,15.9-7.7,29.2-9.7c8.6-1.2,17.2-1.9,25.9-2c1.6,0,3.2,0,4.8,0C60.8,57.8,76.3,35.2,73.2,35.1z"/>
|
||||
|
||||
<linearGradient id="SVGID_17_" gradientUnits="userSpaceOnUse" x1="50.3126" y1="432.0108" x2="28.2664" y2="428.9106" gradientTransform="matrix(1 0 0 1 -8.0854 -395.1333)">
|
||||
<stop offset="0" style="stop-color:#2B3B6A"/>
|
||||
<stop offset="1" style="stop-color:#2B3B6A"/>
|
||||
</linearGradient>
|
||||
<path class="st16" d="M44.1,33.5c-10.7,0.5-18.4,1.3-24.8,3.1l0.3,0.8c0.6-0.1,1.3-0.3,1.9-0.4c7.7-1.2,15.4-2,23.1-2.3L44.1,33.5
|
||||
z"/>
|
||||
|
||||
<linearGradient id="SVGID_18_" gradientUnits="userSpaceOnUse" x1="72.7451" y1="450.8669" x2="10.4435" y2="442.1056" gradientTransform="matrix(1 0 0 1 -8.0854 -395.1333)">
|
||||
<stop offset="0" style="stop-color:#2867A2"/>
|
||||
<stop offset="3.820000e-02" style="stop-color:#2174B1"/>
|
||||
<stop offset="0.1177" style="stop-color:#0B86C4"/>
|
||||
<stop offset="0.2081" style="stop-color:#0A94D2"/>
|
||||
<stop offset="0.3177" style="stop-color:#0C9BDB"/>
|
||||
<stop offset="0.5" style="stop-color:#109EDE"/>
|
||||
<stop offset="0.6823" style="stop-color:#0C9BDB"/>
|
||||
<stop offset="0.7919" style="stop-color:#0A94D2"/>
|
||||
<stop offset="0.8823" style="stop-color:#0B86C4"/>
|
||||
<stop offset="0.9618" style="stop-color:#2174B1"/>
|
||||
<stop offset="1" style="stop-color:#2867A2"/>
|
||||
</linearGradient>
|
||||
<path class="st17" d="M73.2,34.3c-3-0.1-9.5-0.4-15.1-0.4c-51.1,0-56.7,11.8-57,12.4C1,46.8,1,47.5,1,48.1v21.4
|
||||
c5-5,15.9-8.5,29.2-10.5c8.6-1.2,17.2-1.9,25.9-2c1.6,0,3.2,0,4.8,0C63.2,57.1,76.3,34.4,73.2,34.3z"/>
|
||||
|
||||
<linearGradient id="SVGID_19_" gradientUnits="userSpaceOnUse" x1="101.6202" y1="407.733" x2="71.9933" y2="458.7571" gradientTransform="matrix(1 0 0 1 -8.0854 -395.1333)">
|
||||
<stop offset="0" style="stop-color:#2867A2"/>
|
||||
<stop offset="0.1238" style="stop-color:#177EBC"/>
|
||||
<stop offset="0.2516" style="stop-color:#0E91D1"/>
|
||||
<stop offset="0.3797" style="stop-color:#10A2E1"/>
|
||||
<stop offset="0.5064" style="stop-color:#18ACEA"/>
|
||||
<stop offset="0.631" style="stop-color:#24B1ED"/>
|
||||
<stop offset="0.7513" style="stop-color:#28B1ED"/>
|
||||
<stop offset="0.7911" style="stop-color:#24B1ED"/>
|
||||
<stop offset="0.8324" style="stop-color:#18ACEA"/>
|
||||
<stop offset="0.8743" style="stop-color:#10A2E1"/>
|
||||
<stop offset="0.9167" style="stop-color:#0E91D1"/>
|
||||
<stop offset="0.959" style="stop-color:#177EBC"/>
|
||||
<stop offset="1" style="stop-color:#2867A2"/>
|
||||
</linearGradient>
|
||||
<path class="st18" d="M58.2,58.8C72.1,37.9,82.4,16,79.8,4.1l17.3,11c0.5,0.3,1,0.7,1.4,1.2c0.3,0.5,7.1,11.7-20.7,54.5
|
||||
c-2,3.2-3.9,6.9-4.6,7.2c-4.1-4-12.6-15.6-14.7-18.5C58.3,59.1,58.2,58.8,58.2,58.8z"/>
|
||||
|
||||
<linearGradient id="SVGID_20_" gradientUnits="userSpaceOnUse" x1="105.3445" y1="433.3988" x2="94.5575" y2="453.6416" gradientTransform="matrix(1 0 0 1 -8.0854 -395.1333)">
|
||||
<stop offset="0" style="stop-color:#2B3B6A"/>
|
||||
<stop offset="1" style="stop-color:#2B3B6A"/>
|
||||
</linearGradient>
|
||||
<path class="st19" d="M96.6,37.2c-3.1,7.8-6.8,15.3-11.1,22.4l1.3,0.2c5.5-9.5,8.7-16.5,10.9-22.4L96.6,37.2z"/>
|
||||
|
||||
<linearGradient id="SVGID_21_" gradientUnits="userSpaceOnUse" x1="100.6479" y1="408.8533" x2="70.927" y2="464.6275" gradientTransform="matrix(1 0 0 1 -8.0854 -395.1333)">
|
||||
<stop offset="0" style="stop-color:#2867A2"/>
|
||||
<stop offset="3.820000e-02" style="stop-color:#2174B1"/>
|
||||
<stop offset="0.1177" style="stop-color:#0B86C4"/>
|
||||
<stop offset="0.2081" style="stop-color:#0A94D2"/>
|
||||
<stop offset="0.3177" style="stop-color:#0C9BDB"/>
|
||||
<stop offset="0.5" style="stop-color:#109EDE"/>
|
||||
<stop offset="0.6823" style="stop-color:#0C9BDB"/>
|
||||
<stop offset="0.7919" style="stop-color:#0A94D2"/>
|
||||
<stop offset="0.8823" style="stop-color:#0B86C4"/>
|
||||
<stop offset="0.9618" style="stop-color:#2174B1"/>
|
||||
<stop offset="1" style="stop-color:#2867A2"/>
|
||||
</linearGradient>
|
||||
<path class="st20" d="M78.5,71.4c27.8-42.8,21-54,20.7-54.5c-0.4-0.5-0.9-0.9-1.4-1.2L79.8,4.1c2.5,11.8-7.4,34.6-21.2,55.5
|
||||
c4.6,7.1,9.4,14,14.5,19.9C74.1,78.3,76.7,74.3,78.5,71.4z"/>
|
||||
|
||||
<linearGradient id="SVGID_22_" gradientUnits="userSpaceOnUse" x1="102.9539" y1="410.1097" x2="72.9714" y2="466.375" gradientTransform="matrix(1 0 0 1 -8.0854 -395.1333)">
|
||||
<stop offset="0" style="stop-color:#2867A2"/>
|
||||
<stop offset="3.820000e-02" style="stop-color:#2174B1"/>
|
||||
<stop offset="0.1177" style="stop-color:#0B86C4"/>
|
||||
<stop offset="0.2081" style="stop-color:#0A94D2"/>
|
||||
<stop offset="0.3177" style="stop-color:#0C9BDB"/>
|
||||
<stop offset="0.5" style="stop-color:#109EDE"/>
|
||||
<stop offset="0.6823" style="stop-color:#0C9BDB"/>
|
||||
<stop offset="0.7919" style="stop-color:#0A94D2"/>
|
||||
<stop offset="0.8823" style="stop-color:#0B86C4"/>
|
||||
<stop offset="0.9618" style="stop-color:#2174B1"/>
|
||||
<stop offset="1" style="stop-color:#2867A2"/>
|
||||
</linearGradient>
|
||||
<path class="st21" d="M72.6,80.2c0.1-0.1,0.2-0.1,0.2-0.2c-5.3-6.2-10.2-12.8-14.7-19.7c-0.1,0.1-0.2,0.2-0.2,0.4
|
||||
C57.9,60.6,67.6,75.9,72.6,80.2z"/>
|
||||
|
||||
<linearGradient id="SVGID_23_" gradientUnits="userSpaceOnUse" x1="54.5637" y1="474.0854" x2="62.254" y2="494.9197" gradientTransform="matrix(1 0 0 1 -8.0854 -395.1333)">
|
||||
<stop offset="0" style="stop-color:#2B3B6A"/>
|
||||
<stop offset="1" style="stop-color:#2B3B6A"/>
|
||||
</linearGradient>
|
||||
<path class="st22" d="M58.2,98.4C57.9,98.1,47.7,86.1,43.1,79l-0.8,0.9C46.9,86.6,52,93,57.6,99L58.2,98.4z"/>
|
||||
|
||||
<linearGradient id="SVGID_24_" gradientUnits="userSpaceOnUse" x1="69.1674" y1="452.6575" x2="78.2209" y2="509.0225" gradientTransform="matrix(1 0 0 1 -8.0854 -395.1333)">
|
||||
<stop offset="0" style="stop-color:#2E5284"/>
|
||||
<stop offset="2.440000e-02" style="stop-color:#2C5C92"/>
|
||||
<stop offset="8.880000e-02" style="stop-color:#2075B1"/>
|
||||
<stop offset="0.1599" style="stop-color:#0B86C4"/>
|
||||
<stop offset="0.2403" style="stop-color:#0A94D2"/>
|
||||
<stop offset="0.3378" style="stop-color:#0E9CDA"/>
|
||||
<stop offset="0.5" style="stop-color:#109EDE"/>
|
||||
<stop offset="0.6718" style="stop-color:#0C9BDB"/>
|
||||
<stop offset="0.7751" style="stop-color:#0A94D2"/>
|
||||
<stop offset="0.8603" style="stop-color:#0B86C4"/>
|
||||
<stop offset="0.9351" style="stop-color:#2174B1"/>
|
||||
<stop offset="1" style="stop-color:#2C5D95"/>
|
||||
</linearGradient>
|
||||
<path class="st23" d="M72.9,79.9c-5.3-6.2-10.2-12.8-14.7-19.7c-0.5-0.8-1.1-1.6-1.6-2.4c-8.7,0-17.4,0.7-26,1.9
|
||||
c0.3,0.5,4.3,7.2,7.2,11.7c27.8,42.8,40.8,41.1,41.4,41c0.6-0.2,1.2-0.5,1.7-0.8L98.8,100C91.4,98.4,82.1,90.6,72.9,79.9z"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 20 KiB |
89
jami-qt.appdata.xml
Normal file
89
jami-qt.appdata.xml
Normal file
|
@ -0,0 +1,89 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Copyright 2015-2020 Savoir-faire Linux -->
|
||||
<component type="desktop-application">
|
||||
<id>net.jami.Jami</id>
|
||||
<metadata_license>CC-BY-SA-3.0</metadata_license>
|
||||
<project_license>GPL-3.0+</project_license>
|
||||
<name>Jami</name>
|
||||
<summary>Privacy-oriented voice, video, chat, and conference platform</summary>
|
||||
<icon type="stock">jami</icon>
|
||||
<description>
|
||||
<p>
|
||||
An end-to-end encrypted secure and distributed voice, video, and
|
||||
chat communication platform that requires no central server and
|
||||
leaves the power of privacy and freedom in the hands of users.
|
||||
</p>
|
||||
<p>
|
||||
Jami supports the following key features:
|
||||
</p>
|
||||
<ul>
|
||||
<li>One-to-one conversations</li>
|
||||
<li>File sharing</li>
|
||||
<li>Audio calls and conferences</li>
|
||||
<li>Video calls and conferences</li>
|
||||
<li>Screen sharing in video calls and conferences</li>
|
||||
<li>Recording and sending audio messages</li>
|
||||
<li>Recording and sending video messages</li>
|
||||
<li>Functioning as a SIP phone software</li>
|
||||
</ul>
|
||||
<p>
|
||||
Client applications for GNU/Linux, Windows, macOS, iOS, Android,
|
||||
and Android TV are available, making Jami an interoperable and
|
||||
cross-platform communication framework.
|
||||
</p>
|
||||
</description>
|
||||
|
||||
<url type="homepage">https://jami.net/</url>
|
||||
<url type="bugtracker">https://git.jami.net/savoirfairelinux/jami-client-qt/issues</url>
|
||||
<url type="translate">https://www.transifex.com/savoirfairelinux/jami</url>
|
||||
|
||||
<!-- Maximum caption length is 60 characters -->
|
||||
<!-- Officially GIF is not an allowed video format, but it appears to work nonetheless -->
|
||||
<screenshots>
|
||||
<screenshot type="default">
|
||||
<caption>Send Audio, Video and Chat messages</caption>
|
||||
<image type="source" width="1310" height="650">https://dl.jami.net/media-resources/screenshots/jami_linux_audiovideo.png</image>
|
||||
</screenshot>
|
||||
<screenshot>
|
||||
<caption>Easily share desktop contents</caption>
|
||||
<image type="source" width="1016" height="659">https://dl.jami.net/media-resources/screenshots/jami_linux_screenshare.png</image>
|
||||
</screenshot>
|
||||
<screenshot>
|
||||
<caption>Crystal clear audio calls between Jami users</caption>
|
||||
<video container="webm" codec="vp9" width="600" height="400">https://dl.jami.net/media-resources/gifs_features/conversiongif_webm/audio-call_web.webm</video>
|
||||
</screenshot>
|
||||
<screenshot>
|
||||
<caption>Conference calls with an unlimited participants</caption>
|
||||
<video container="webm" codec="vp9" width="600" height="400">https://dl.jami.net/media-resources/gifs_features/conversiongif_webm/conference_web.webm</video>
|
||||
</screenshot>
|
||||
<screenshot>
|
||||
<caption>Encrypted and secure text messaging, no servers</caption>
|
||||
<video container="webm" codec="vp9" width="600" height="400">https://dl.jami.net/media-resources/gifs_features/conversiongif_webm/chat_web.webm</video>
|
||||
</screenshot>
|
||||
<screenshot>
|
||||
<caption>Send files of all sizes</caption>
|
||||
<video container="webm" codec="vp9" width="600" height="400">https://dl.jami.net/media-resources/gifs_features/conversiongif_webm/files-share_web.webm</video>
|
||||
</screenshot>
|
||||
</screenshots>
|
||||
|
||||
<launchable type="desktop-id">jami-qt.desktop</launchable>
|
||||
|
||||
<provides><binary>jami-qt</binary><binary>jami</binary></provides>
|
||||
|
||||
<categories>
|
||||
<category>Network</category>
|
||||
<category>P2P</category>
|
||||
<category>InstantMessaging</category>
|
||||
<category>FileTransfer</category>
|
||||
</categories>
|
||||
|
||||
<translation type="gettext">jami-client-qt</translation>
|
||||
|
||||
<content_rating type="oars-1.1">
|
||||
<content_attribute id="social-chat">intense</content_attribute>
|
||||
<content_attribute id="social-audio">intense</content_attribute>
|
||||
</content_rating>
|
||||
|
||||
<requires><id>net.jami.daemon</id></requires>
|
||||
|
||||
</component>
|
11
jami-qt.desktop
Normal file
11
jami-qt.desktop
Normal file
|
@ -0,0 +1,11 @@
|
|||
[Desktop Entry]
|
||||
Name=Jami
|
||||
GenericName=Jami
|
||||
Comment=Jami is a secured and distributed communication software
|
||||
Exec=jami-qt %u
|
||||
Icon=jami
|
||||
StartupNotify=true
|
||||
Terminal=false
|
||||
Type=Application
|
||||
Categories=Network;Telephony;
|
||||
Keywords=Qt;chat;talk;im;message;voip;
|
10
jami-qt.desktop.autostart
Normal file
10
jami-qt.desktop.autostart
Normal file
|
@ -0,0 +1,10 @@
|
|||
[Desktop Entry]
|
||||
Name=Jami
|
||||
GenericName=Jami
|
||||
Comment=Jami is a secured and distributed communication software
|
||||
Exec=jami-qt
|
||||
Icon=jami
|
||||
StartupNotify=true
|
||||
Terminal=false
|
||||
Type=Application
|
||||
Categories=Qt;Network;Telephony;
|
37
jami-qt.pro
37
jami-qt.pro
|
@ -95,29 +95,48 @@ unix {
|
|||
QMAKE_CXXFLAGS += -std=c++17
|
||||
}
|
||||
|
||||
INCLUDEPATH += ../src
|
||||
# Client source path
|
||||
INCLUDEPATH += $$PWD/src
|
||||
|
||||
isEmpty(LRC) {
|
||||
LRC=$$PWD/../install/lrc
|
||||
# Default LRC path
|
||||
isEmpty(LRC) { LRC=$$PWD/../install/lrc }
|
||||
|
||||
# Check if LRC is installed or in project dir
|
||||
exists($${LRC}/include/libringclient) {
|
||||
INCLUDEPATH += $${LRC}/include/libringclient
|
||||
LIBDIR = $${LRC}/lib
|
||||
message(Will expect lrc headers in $${LRC}/include/libringclient)
|
||||
} else {
|
||||
INCLUDEPATH += $${LRC}/src
|
||||
isEmpty(LRCBUILD) {
|
||||
LIBDIR = $${LRC}/build
|
||||
message(Will expect lrc headers in $${LRC}/src)
|
||||
}
|
||||
|
||||
# TODO: subdirs should be added as suffixes to $${LRC}
|
||||
isEmpty(LRCLIB) {
|
||||
exists($${LRC}/lib) {
|
||||
LRCLIB = $${LRC}/lib
|
||||
} else {
|
||||
LIBDIR = $${LRCBUILD}
|
||||
LRCLIB = $${LRC}/build-local
|
||||
}
|
||||
}
|
||||
QMAKE_RPATHDIR += $${LIBDIR}
|
||||
|
||||
LIBS += -L$${LIBDIR} -lringclient
|
||||
# Include LRC lib path if custom installation
|
||||
contains(LRCLIB, .*/usr.*) {
|
||||
LIBS += -lringclient
|
||||
message(Will expect lrc library in /usr)
|
||||
} else {
|
||||
QMAKE_RPATHDIR += $${LRCLIB}
|
||||
LIBS += -L$${LRCLIB} -lringclient
|
||||
message(Will expect lrc library in $${LRCLIB})
|
||||
}
|
||||
|
||||
LIBS += -lqrencode
|
||||
LIBS += -lX11
|
||||
|
||||
CONFIG += link_pkgconfig
|
||||
PKGCONFIG += libnm
|
||||
|
||||
# TODO: set global installation like cmake (correct
|
||||
# installation paths, desktop files, autostart...)
|
||||
isEmpty(PREFIX) { PREFIX = /tmp/$${TARGET}/bin }
|
||||
target.path = $$PREFIX/bin
|
||||
INSTALLS += target
|
||||
|
|
68
src/jami
Normal file
68
src/jami
Normal file
|
@ -0,0 +1,68 @@
|
|||
#!/bin/bash
|
||||
#
|
||||
# Copyright (C) 2015-2021 Savoir-faire Linux Inc.
|
||||
# Author: Emmanuel Lepage Vallee <emmanuel.lepage@savoirfairelinux.com>
|
||||
# Author: Stepan Salenikovich <stepan.salenikovich@savoirfairelinux.com>
|
||||
# Author: Albert Babí <albert.babi@savoirfairelinux.com>
|
||||
#
|
||||
# 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, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
|
||||
HAS_KDE=0
|
||||
HAS_GNOME=0
|
||||
HAS_QT=0
|
||||
|
||||
if type "ring-kde" > /dev/null 2> /dev/null; then
|
||||
HAS_KDE=1
|
||||
fi
|
||||
|
||||
if type "jami-gnome" > /dev/null 2> /dev/null; then
|
||||
HAS_GNOME=1
|
||||
fi
|
||||
|
||||
if type "jami-qt" > /dev/null 2> /dev/null; then
|
||||
HAS_QT=1
|
||||
fi
|
||||
|
||||
# client-qt always top priority
|
||||
if [ $HAS_QT == "1" ]; then
|
||||
jami-qt $*
|
||||
exit $?
|
||||
fi
|
||||
|
||||
# No clients installed
|
||||
if [ $HAS_KDE == "0" ] && [ $HAS_GNOME == "0" ]; then
|
||||
echo "Jami not found" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Only one client is installed
|
||||
if [ $HAS_KDE == "1" ] && [ $HAS_GNOME == "0" ]; then
|
||||
ring-kde $*
|
||||
exit $?
|
||||
elif [ $HAS_KDE == "0" ] && [ $HAS_GNOME == "1" ]; then
|
||||
jami-gnome $*
|
||||
exit $?
|
||||
fi
|
||||
|
||||
# Both clients installed: run KDE client if KDE wm is running
|
||||
# else use the Gnome client.
|
||||
if [ -z "$(ps aux | grep kwin | grep -v grep)" ]; then
|
||||
jami-gnome $*
|
||||
exit $?
|
||||
else
|
||||
ring-kde $*
|
||||
exit $?
|
||||
fi
|
|
@ -293,7 +293,7 @@ Rectangle {
|
|||
messageWebView.runJavaScript(UtilsAdapter.getStyleSheet(
|
||||
"chatwin",
|
||||
UtilsAdapter.qStringFromFile(
|
||||
":/chatview-windows.css")))
|
||||
":/chatview-qt.css")))
|
||||
messageWebView.runJavaScript(UtilsAdapter.qStringFromFile(
|
||||
":/linkify.js"))
|
||||
messageWebView.runJavaScript(UtilsAdapter.qStringFromFile(
|
||||
|
|
Loading…
Add table
Reference in a new issue