单点部署

1 版本说明

请参考下表了解您所获取的版本。以 V5.3.07 为例。

压缩包名称 版本类型 说明
SaCaDataViz V5.3.07 部署版20200710.zip 部署版 部署版只是一个应用,需要自己安装jre、Web容器、数据库,使用场景是生产环境正式部署。
SaCaDataViz V5.3.07 快速体验版20200710.zip 快速体验版 快速体验版可以一键启动,内置了jre、tomcat、db,使用场景是 “体验、试用”
SaCaDataViz V5.3.07 Report集成部署版20200710.zip Report集成部署版 在部署版基础上,集成了Unieap Report服务
SaCaDataViz V5.3.07 Report集成快速体验版20200710.zip Report集成快速体验版 在快速体验版基础上,集成了Unieap Report服务

【注意】您获取的版本中不包含License,请联系我司商务人员申请。

如果您获取的是 “ 快速体验版 ”,按如下步骤启动即可,无需阅读后续内容

  1. 拷贝版本到Windows主机并解压
  2. 双击run.bat启动
  3. 打开浏览器,在网址栏中输入 http://127.0.0.1:8082/dataviz/src/index.html
  4. 输入账号、密码登录(内置管理员账户:admin/aaa123,演示账号:demo/1)

2 部署版环境说明

Saca Dataviz的部署架构如下图所示。其中,如果硬件资源有限,可以将Dataviz服务器和数据库服务器合并在同一台主机上,但建议有条件的用户将二者拆分开。 2.2.png Dataviz服务器硬件环境要求:

硬件名称 硬件配置描述
内存 最小可用内存:4GB 推荐:8GB或更大内存
处理器 最低:2核2.0 GHz 推荐:4核2.5GHz或性能更好的处理器
硬盘 最小可用空间:10GB 推荐:100GB或更大可用空间。
网卡 千兆网卡以上

Dataviz服务器软件环境要求:

软件名称 软件描述 备注
操作系统 Windows / Linux 推荐使用Windows Server版或Linux企业版
JAVA JDK1.8 及以上
WEB容器 Apache Tomcat 8.0及以上 或支持Servlet2.5及以上的web容器
支撑数据库* MySQL5.7/Oracle10g/SQL Server2008 及以上 可扩展适配其他数据库,如DB2、达梦、Gbase

*如果将数据库服务器和Dataviz服务器拆分开,则可以在数据库服务器上安装。

数据库服务器硬件环境要求: 请以数据库官方网站的硬件要求为准。以下列出几种主流的数据库官网。 MySQL:https://www.mysql.com/downloads/
Oracle:https://www.oracle.com/cn/database/technologies/oracle-database-software-downloads.html#19c
SQL Server:https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads

客户端软件环境要求:

软件名称 软件描述 备注
浏览器 Chrome,FireFox,IE11以上 推荐使用Chrome

3 开始部署

整个部署安装包分为五个部分:
  1. dataviz-web:前端前web页面的展现部分.
  2. dataviz-service:后端提供接口服务的部分.
  3. dataviz-file:系统需要使用的资源文件.
  4. 数据库脚本:初始化数据库和升级数据库的脚本文件.
  5. 示例项目.zip : 样例项目,用于演示的DEMO,图册的模板功能也依赖于此.

   以下涉及的全部内容,均不建议在带有中文的路径下安装。

3.1 支撑数据库安装与初始化

本节将介绍支撑数据库的安装、数据库工具的使用,以及使用本产品提供的数据库脚本进行支撑库的初始化。若已经准备好数据库,可以直接跳至2.3.1.3支撑库初始化

本文档将以MySQL数据库为例进行叙述,Oracle等其他数据库的安装、初始化过程与此类似。

3.1.1 数据库安装

请首先前往MySQL官网:https://dev.mysql.com/downloads/mysql/ ,选择适合自己操作系统的版本后下载。

建议版本与关键安装步骤:

  1. Windows

    建议版本:5.5.27或5.7.22

    关键步骤:

    (1) 运行安装文件,按照提示完成安装,所有的设置均可采用默认设置,一直“下一步”即可;

    (2) 按照提示继续进行数据库配置,按照提示依次完成配置类型选择、服务器类型选择等步骤,均采用默认设置即可,可以一直选择“下一步”,只有2个步骤需要注意:

    ​ a) 下图所示界面为设置端口的界面,建议保留默认的3306端口。如有修改的必要,请务必牢记端口号,并在后续的产品配置中对端口号进行相应的调整:

    deployment/2.3.1-1

    ​ b) 下图所示界面为设置根用户密码的界面,请务必牢记根用户密码,这涉及到后续的配置步骤。

    deployment/2.3.1-2

    ​ 如果root账号需要跨主机访问,请勾选Enable root access from remote machines

    ​ 其余设置内容,如无特别需要,建议保留默认设置。

  2. Linux

    建议版本:5.7.29,建议采用rpm安装。

    关键步骤:

    (1) 准备好安装文件,共包含common、libs、client、server四个文件:

    deployment/2.3.1-3

    (2) 打开终端,依次使用rpm安装这四个文件,命令为:

rpm -hvi mysql-community-common-5.7.29-1.el7.x86_64.rpm  
rpm -hvi mysql-community-libs-5.7.29-1.el7.x86_64.rpm  
rpm -hvi mysql-community-client-5.7.29-1.el7.x86_64.rpm  
rpm -hvi mysql-community-server-5.7.29-1.el7.x86_64.rpm

​ 如果在安装的过程中出现依赖错误提示,请切换至root用户下,运行如下命令清除yum中的mysql依赖包,再重新进行安装。

rpm -qa|grep mysql
yum remove mysql-libs

​ 成功安装后,终端的效果为:

deployment/2.3.1-4

(3) 启动MySQL并查看初始密码,在终端依次运行命令:

start mysqld.service
grep 'temporary password' /var/log/mysqld.log

​ 此时终端将输出一串字符,该字符串便是初始密码。使用该密码登录MySQL,在终端运行如下命令后输入密码:

mysql -uroot -p

​ 若终端输出为:

deployment/2.3.1-5

​ 则说明登录成功。此时不要退出,继续执行下一步骤。

​ (4) 运行如下命令设置初始密码,需要注意的是,MySQL 5.7要求密码不能过于简单,否则无法通过MySQL的要求:

set password for root@localhost=password('Root_1234'); #单引号内为密码内容

​ 若设置后输出:

Query OK, 0 rows affected, 1 warning (0.07 sec)

​ 或类似的语句,则说明密码修改成功。

再次提醒,在安装的过程中,请务必牢记数据库端口号和根用户的密码。本文档假设用户将数据库的根用户(root)的密码设置为“root”。

3.1.2 数据库工具

  若用户具备数据库相关知识的基础,可直接通过命令行工具进行数据库的相关操作。如无相关经验,建议用户安装可视化数据库工具,如Navicat Premium或SQLyog等。以Navicat Premium为例,首先前往官网下载并安装Navicat软件:http://www.navicat.com.cn/download/navicat-premium ,然后按照如下步骤连接数据库:

  1. 运行Navicat Premium,点击“连接”,在列表中选择“MySQL”,如下图所示:

    deployment/2.3.1

  2. 在弹出的“新建连接”界面中,输入数据库的相关配置。

    1) 连接名:该项为自定义项目,用户可自由命名,但不建议包含中文字符;

    2) 主机名或IP地址:输入本机IP或localhost均可;

    3) 端口号:输入在MySQL安装时设置的端口号,默认端口号为3306;

    4) 用户名:输入根用户的用户名“root”;

    5) 密码:输入在MySQL安装时设置的根用户密码。

    配置示例如下图所示。

    deployment/2.3.2

  3. 点击“连接测试”,如提示“连接成功”,则说明配置正确,点击“确定”完成数据库连接,如出现错误提示,请再次核对数据库的配置信息和用户名密码等信息。

    deployment/2.3.3

3.1.3 支撑库初始化

  请按照如下步骤完成支撑库的初始化。

  1. 在Navicat Premium中找到配置完成的数据库,右键后在菜单中选择“新建数据库”,并命名为“dataviz”,如下图所示:

    deployment/2.3.4

    deployment/2.3.5

    “字符集”选择 utf8 -- UTF-8 Unicode,“排序规则”选择 utf8_general_ci

  2. 右键“dataviz”数据库,在菜单中选择“运行SQL文件”,并在弹出窗口中选择本产品提供的数据库脚本,如下图所示:

    deployment/2.3.6

    deployment/2.3.7

  3. 点击“开始”,待运行完成并提示成功后点击“关闭”:

    deployment/2.3.8

  如果是升级版本请使用数据库升级脚本,否则会造成数据丢失,在升级前建议备份数据库数据。

【提示】MySql在Linux下默认区分表名大小写,需要取消大小写做如下修改。

1.修改/etc/my.cnf  
2.在[mysqld]下加入一行:lower_case_table_names = 1  
3.重启数据库

3.2 JDK安装

请于Oracle官网:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html 下载并安装JDK,务必安装1.8以上的版本

  1. Windows 以Windows10版本的JDK1.8.0_191为例,安装程序以默认配置一直下一步,得到安装路径见下图。

    deployment/2.3.2-1

    JDK安装完毕,下一步是配置环境变量,打开配置界面:我的电脑->属性->高级系统设置->环境变量。

    1) 配置Java环境变量

    ​ 添加JAVA_HOME,方法见下图:

    deployment/2.3.2-2

    2) 编辑Path,方法见下图:

    deployment/2.3.2-3

    注意,不同Path之间以";"分隔。

  2. Linux

    以CentOS7为例,下载jdk-8u191-linux-x64.tar.gz并解压到/usr/local/java,完整路径为:

/usr/local/java/jdk1.8.0_191

​ 编辑/etc/profile添加环境变量,如下

export JAVA_HOME=/usr/local/java/jdk1.8.0_191   
export PATH=$JAVA_HOME/bin:$PATH

​ 运行如下命令使环境变量生效:

source /etc/profile

3.3 WEB容器部署

本节将以Apache Tomcat 9.0为例进行叙述。请前往Apache Tomcat官网下载安装包:https://tomcat.apache.org/ ,完成后解压并依据自己的操作系统完成配置即可。

  1. Windows

    假设用户下载的版本为apache-tomcat-9.0.31,将安装包解压至路径D:\apache-tomcat-9.0.31下:

    deployment/2.3.9

    进入上图bin路径运行startup.bat,成功启动后打开浏览器,访问http://ip:8080 ,如能成功出现Tomcat的默认主页,则说明Tomcat部署完成。

  2. Linux

    假设用户下载的版本为apache-tomcat-9.0.31,将安装包解压至路径/opt下, 进入bin路径运行./startup.sh,成功启动后打开浏览器,访问http://ip:8080 ,如能成功出现Tomcat的默认主页,则说明Tomcat部署完成。

3.4 前端、后端和文件资源部署

​ dataviz-web和dataviz-service两个文件夹拷贝到apache-tomcat的webapps文件夹下。

​ dataviz-file内存储的是DataViz内置的及运行过程中生成的文件资源。需拷贝到合适的文件系统路径,比如:/opt或D:\。

​ 以下内容中,本文档假设用户的本机IP为:10.4.45.236

3.4.1 dataviz-service/WEB-INF/conf/datasource.properties(必改)

  把以下配置分别修改为第一步中的数据库实际的访问地址及用户名和密码,请根据使用的数据库类型替换datasource.properties文件的内容。假设数据库地址IP为10.4.45.236,数据库名称:dataviz,用户名:root,密码:root

​ 若为MySQL数据库:

datasource.driverClass=org.mariadb.jdbc.Driver
datasource.jdbcUrl=jdbc:mysql://10.4.45.236:3306/dataviz?characterEncoding=utf8
datasource.user=root
datasource.password=root
datasource.initialSize=2
datasource.maxActive=150
datasource.maxIdle=5
datasource.maxWait=5000
datasource.validationQuery=select 1
hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
hibernate.showSql=false
quartz.delegate=org.quartz.impl.jdbcjobstore.StdJDBCDelegate

  若为Oracle数据库:

datasource.driverClass=oracle.jdbc.driver.OracleDriver
datasource.jdbcUrl=jdbc:oracle:thin:@10.4.45.236:1521:orcl
datasource.user=dataviz
datasource.password=root
datasource.initialSize=2
datasource.maxActive=150
datasource.maxIdle=5
datasource.maxWait=5000
datasource.validationQuery=select 1 from dual
hibernate.dialect=org.hibernate.dialect.OracleDialect
hibernate.showSql=false
quartz.delegate=org.quartz.impl.jdbcjobstore.StdJDBCDelegate

  本产品默认提供了MySQL和Oracle数据库的初始化脚本及配置文件,如需使用其他类型数据库作为支撑库,请联系SaCa DataViz团队。

3.4.2 dataviz-service/WEB-INF/conf/internalConfig.properties(必改)

  1. internal.customLocalFileStoreRoot

    将该配置项设置为:

     internal.customLocalFileStoreRoot=D:/dataviz-file
    

    等号后的内容为实际的资源文件夹dataviz-file的绝对路径。路径中的分隔符要使用正斜杠“/”,或者双反斜杠“\\”,不能使用单个反斜杠“\”</font>

  2. internal.fileServerURL

    将该配置项设置为:

     internal.fileServerURL=http://10.4.45.236:8080/dataviz-service/service
    

    或相对路径

     /dataviz-service/service
    
  3. internal.filePdfExportURL

    将该配置项设置为:

     internal.filePdfExportURL=http://10.4.45.236:8080/dataviz-web/src/export.html
    
  4. internal.pdfCookiesSet

    将该配置项设置为:

     internal.pdfCookiesSet=[{"name":"JSESSIONID","domain":"10.4.45.236","path":"/dataviz-service"}]
    

    3.4.3 dataviz-web/common/config.js(选改)

  5. window.charts_server
    【说明】该配置项当dataviz-web与dataviz-service部署在不同Web容器下时修改,在同一Web容器下时直接跳过本步。

    若需要修改请将配置项“window.charts_server”设置为:

    window.charts_server = “http://IP:端口/dataviz-service”
    

    ​ 本产品默认dataviz-service的端口为8080,视现场情况进行调整。

3.4.4 dataviz-service/WEB-INF/conf/schedule/dataviz-schedular.properties(选改)

 【说明】该配置项控制系统调度管理功能,不启用调度管理功能可直接跳过本步。  

  如启用请修改dataviz-schedular.properties文件下的配置项:

  org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate

  修改为对应支撑库的方言配置,常见的几种方言供参考:

数据库类型 org.quartz.jobStore.driverDelegateClass
mysql org.quartz.impl.jdbcjobstore.StdJDBCDelegate
oracle org.quartz.impl.jdbcjobstore.oracle.OracleDelegate
sqlserver org.quartz.impl.jdbcjobstore.MSSQLDelegate
postgre org.quartz.impl.jdbcjobstore.PostgreSQLDelegate
db2 org.quartz.impl.jdbcjobstore.DB2v8Delegate

3.4.5 dataviz-service/WEB-INF/web.xml(选改)

【说明】该配置项控制跨域及开启防火墙访问,如无特殊要求可跳过该步,系统不做任何拦截。
如有访问拦截等要求请修改web.xml文件。

  1. 将如下内容:

       <init-param>
           <param-name>otherReferrer</param-name>
           <param-value>.*</param-value>
       </init-param>
    

    修改为:

       <init-param>
           <param-name>otherReferrer</param-name>
           <param-value>^http://10\.4\.45\.236:\d+/.*$</param-value>
       </init-param>
    
  2. 将如下内容:

       <init-param>
           <param-name>otherOrigin</param-name>
           <param-value>.*</param-value> 
       </init-param>
    

    修改为:

       <init-param>
           <param-name>otherOrigin</param-name>
           <param-value>^http://10\.4\.45\.236:\d+$</param-value> 
       </init-param>
    

3.5 导入License

3.5.1 License说明

  Saca Dataviz产品的许可证分为试用、开发和部署三个版本:

类型 说明
试用版 使用期限一个月
开发版 使用期限三个月
部署版 没有期限限制,需要绑定服务器设备

  在产品界面的左侧菜单中,点击系统设置中的许可信息页面可以查看license的详细信息。

example

3.5.2 License获取方法

  请联系与您接洽的商务人员,或者登陆http://www.idataviz.com/download/ 申请。

3.5.3 License使用方法

  Saca Dataviz产品的License有两种使用方式:

  1. 在线上传( 推荐

管理员 在许可信息页面支持License文件的上传更新,只需点击下方的“浏览”按钮选择新申请的License文件,再点击更新即可,如下图所示:

example

这种方式的好处是无需重启后台服务,上传成功后页面会显示新的许可信息。

  1. 直接覆盖

    ​ 将申请到的license文件覆盖原dataviz-service/WEB-INF/conf/saca/license/ 目录下的saca.license文件即可。覆盖后需要重启后台服务。

3.6 启动服务并访问

  启动Apache Tomcat,打开浏览器,访问如下地址:

   http://10.4.45.236:8080/dataviz-web/src/index.html

首次启动时,会直接跳转至超级管理员admin密码设置的界面:

deployment/setAdminPwd

设置完成后将跳转至登录界面,输入用户名admin和设置的密码即可登录。

deployment/login

3.7 导入示例项目

V5.3.09之后的版本不需要手动导入示例项目,系统会自动导入
在进入Saca Dataviz后,强烈建议先导入示例项目。首先在左侧选项栏中点击“示例演示”,显示如下的画面,点击页面右上角的“导入示例项目”按钮,在弹出的窗口中选择“示例项目.zip”文件,即可完成示例项目的导入:

deployment/sampleProject-1

deployment/sampleProject-2

3.8 开启登录验证码

在config.js中设置:

//是否启用验证码
window.verifyCodeEnabled = true;

即可开启。

4 其他配置

4.1 配置文件属性值加密

一些环境下部署时,为了部署环境的安全可能需要将配置文件中类似数据库密码一类的字符串信息做加密,DataViz默认提供了基于 AES-256 算法 CBC 模式的加密配置,可以用于加密数据库密码之类写在 properties 文件中的字符串信息。

下文以加密 datasource.properties 中 datasource.password 这一属性为例做说明,如还需加密其他属性也可做类似修改。

4.1.1 密钥配置

DataViz 内置加密的密钥采用伪随机数算法生成,可不做修改直接使用。如果有更多安全考虑,可以通过修改属性值来自定义种子,得到与默认配置不同的加密结果。

配置文件位置:dataviz-service/WEB-INF/conf/spring/applicationContext.xml

查找如下配置片段,修改的 index=0 的值即可。

    <bean id="configStringTransformer" init-method="finishSetup"
        class="com.neusoft.saca.dataviz.base.util.texttransform.KeyFortifiedSymmetricCipherTransformer">
        <constructor-arg index="0" value="myProject" />
    </bean>

4.1.2 密文的生成

获取需要加密的明文的密文有两种方式:

  • 启动服务后访问 URL 获取

    在默认的明文配置下启动 DataViz 后台服务,以任意用户登录后,使用浏览器访问如下地址(假设后端应用名为 dataviz-service,需加密的明文为password):

    http://server-ip:service-port/dataviz-service/propertyEncode?value=password

    随后页面会显示出接收的明文及其对应的密文。

  • 不启动服务,由命令行执行java程序生成

    进入命令行,cd 到后端应用 WEB-INF/lib 目录下,执行命令(假设需加密的明文为 password):

    • Linux系统:
    java -cp ./*: com.neusoft.saca.dataviz.base.properties.PropertyValueEncodeTool password ../conf/spring/applicationContext.xml
    
    • Windows 系统:
    java -cp .\*; com.neusoft.saca.dataviz.base.properties.PropertyValueEncodeTool password ..\conf\spring\applicationContext.xml
    

    获取后,拷贝记录加密后的密文。

4.1.3 配置加密的属性

  1. 于 WEB-INF/conf/applicationContext.xml 中查找名为 propertyValueProcessor的 bean,将其 map 中的值做如下修改(entry 的 key 即为需加密的属性名):

        <bean id="propertyValueProcessor" class="com.neusoft.saca.dataviz.base.properties.PropertiesValueProcessor">
            <property name="propertyTransformation">
                <map key-type="java.lang.String">
                    <entry key="datasource.password" value-ref="configStringTransformer"/>
                </map>
            </property>
        </bean>
    
  2. 将 datasource.properties 文件中的 datasource.password 属性值改为之前拷贝的密文。

4.2 部署到Linux系统时配置图册导出功能

  当部署到Linux操作系统时,为保证图册导出功能正常可用,需要进行以下额外的部署工作。

4.2.1 Linux下配置可执行文件权限

  修改dataviz-service/WEB-INF/conf/export/linux32(linux64)目录下的pictool文件的可执行权限。可通过命令行修改:

chmod 755 pictool

  也可以直接修改文件的属性:

deployment/3

4.2.2 Linux下确认安装freetype和fontconfig这两个包

  先验证系统中是否安装了freetype,命令如下:

rpm –qa|grep freetype

  如果返回结果中有安装freetype,则不需要安装,否则执行命令进行安装, 例如:

rpm –ivh freetype-2.3.11-6.el6_1.7.x86_64.rpm

  然后验证系统中是否安装了fontconfig,命令如下:

rpm –qa|grep fontconfig

  如果返回结果中有安装fontconfig,则不需要安装,否则执行命令安装,例如:

rpm –ivh fontconfig-2.8.0-3.el6.x86_64.rpm

【注意】由于这两个包对其他包有依赖,建议配置好yum源(国内可使用163、阿里云的源,或者使用系统安装盘作为本地源),使用yum install进行安装。

4.2.3 Linux下确认安装了GLIBCXX_3.4.9和GLIBC_2.7

  尽量使用新版本的linux系统(CentOS6以上,低于此版本的操作系统,需要确认GLIBC版本)。

4.2.4 Linux下安装字体(如果Linux中已经安装中文字体,此步骤可省略)

  该步骤分为两部分:

  1. 为解决导出带有汉字的图表中汉字不显示问题

    打开windows 下的C:\WINDOWS\Fonts目录,选择所需要的字体文件,复制到linux下的/usr/share/fonts/目录即可。

  2. 为解决导出pdf时汉字不显示的问题

    在{jre}/lib/fonts目录里新建一个fallback文件夹,在windows下找名为想要的字体文件(在不同的操作系统中名字可能不一样,中文一般为宋体&新宋体等),复制或者链接字体文件到新建的文件夹里面。

    【注意】{jre}是指应用服务器运行环境所使用的jre,如果安装了多个jre,需要找到对应运行环境的那个。

4.3 内网外网同时访问的配置方法

  如果要支持内外网同时访问,服务需要同时支持内网地址和外网地址,前提是把Dataviz的前台后后台部署到同一个Tomcat容器中,这时一部分配置就可以使用相对路径

  1. dataviz-web/common/config.js

     window.charts_server =“/dataviz-service”
    
  2. dataviz-service/WEB-INF/conf/internalConfig.properties

     internal.fileServerURL= /dataviz-service/service
    
  3. dataviz-service/WEB-INF/web.xml
      修改文件中的防火墙和跨域拦截正则表达式。如果不修改,默认对所有请求都不进行拦截。(假设外网地址为:120.36.103.26)

     <init-param>
         <param-name>otherReferrer</param-name>
         <param-value>.*</param-value>
     </init-param>
    

    修改为:

     <init-param>
         <param-name>otherReferrer</param-name>  
         <param-value>  
             ^http://10\.4\.45\.236:\d+/.*$|^http://120\.36\.103\.26:\d+/.*$
         </param-value>
     </init-param>
    

    再把

     <init-param>
         <param-name>otherOrigin</param-name>
         <param-value>.*</param-value> 
     </init-param>
    

    修改为:

     <init-param>
         <param-name>otherOrigin</param-name>
         <param-value>
             ^http://10\.4\.45\.236$|^http://120\.36\.103\.26$
         </param-value> 
     </init-param>
    
  4. 关于PDF导出

    V5.3之前的版本,PDF文件导出功能无法内外网同时生效,需二选一。

     internal.pdfCookiesSet=[{"name":"JSESSIONID","domain":"{内网或外网的地址IP或域名}","path":"/dataviz-service"}]
    

    V5.3以后的版本需做如下配置:

    1) dataviz-web/common/innerConfig.js

    ​ 修改window.export_server为后台可访问的前端地址,例如:

       window.export_server = "http://localhost:8080/dataviz-web";
    

    2) dataviz-service/WEB-INF/conf/internalConfig.properties

       internal.pdfCookiesSet=[{"name":"JSESSIONID","domain":"{后台可访问的前端页面地址的IP,通常是localhost}","path":"/dataviz-service"}]
    

results matching ""

    No results matching ""

    results matching ""

      No results matching ""