Fleetrun
Hecterra
NimBus
Other apps
Wialon for Android/iOS
Logistics
Wialon Local
Wialon Hosting
Distance Tag
WiaTag
Configurator
Wialon Hosting
Contents
How to Send Commands from Wialon to flespi Devices
  • commands





This guide describes the sequence of actions required to send commands from the Wialon system to physical devices registered on the flespi platform, including the creation of devices in flespi (hereinafter flespi devices).

  1. Create a device in flespi. To do this, open the Devices tab in the Telematics Hub, click on the button  in the lower right corner of the screen, fill in the required fields, and click Save.
  2. Create a channel to receive data in flespi: open the Channels tab, click on the button  in the lower right corner of the screen, fill in the name and protocol_id fields (the protocol corresponds to the type of the physical device), and click Save.
  3. Point the physical device (tracker) to the channel address (IP and port).
  4. Create a stream to redirect data. To do this, open the Streams tab, and click . Fill in the сonfiguration and uri (address of the flespi gateway device) fields, activate the ident option.

    IP varies depending on the data centre.

  5. Assign the flespi device created in step 1 to the stream. To do this, go to the Devices tab and click on the line with the flespi device to open the settings window. Next, on the Streams tab, click  and select the required stream.
  6. Copy a token on the flespi platform (the Tokens tab).
  7. In Wialon, paste the copied token into the Token field on the Security tab of the top account settings.
  8. Create a unit in Wialon. The device type should be the one indicated in the Device type field in step 1. It should be marked as flespi in brackets.
  9. Create a new command in the unit properties in Wialon.

    When creating the command, you can configure its parameters in the flespi form. In this way, you will not have to do it manually every time before sending the command to the unit.
  10. Send the command to the unit from the Monitoring tab.
  11. If the parameters of the command were not configured in its settings, specify them in this step.

How to Configure a Unit in Wialon for Obtaining Data from CMSV6
  • hardware





This guide describes the way of obtaining data from CMSV6 in Wialon with the example of video transmission. This process includes creating and configuring a unit and a command with a video request. Other types of commands are enumerated at the end of this document.

For correct video transmission in Wialon, it is required to set up a proxy server on the side of CMSV6 and configure it so that the data is transferred via HTTPS connection.

  1. Create a unit. In the Device type field on the General tab, select CMSV6 Gateway. Enter the unique identification number of the device indicated in CMSV6.
  2. Go to the device configuration by clicking on the icon .
  3. Fill in the required fields in the open dialog box.

    ▪ CMSV6 Web Host. The IP address or domain name from the URL of the CMSV6 website. In case of using a secure connection, you should specify the protocol (for example, https://12.34.56.78 or https://yourcmsv6site.com).
    ▪ CMSV6 Web Port. The port from the URL of the CMSV6 website, if any. You can also indicate the host and port in the CMSV6 Web Host field. In this case, you should not fill in the CMSV6 Web Port field.

    CMSV6 Account. Name of the CMSV6 account.
    CMSV6 Password. Password of the CMSV6 account (twice).

    Prefer Flash Player for Live Stream. The option is enabled by default. Disable it if you want to use HLS instead of RTMP.
    CMSV6 Timezone in minutes. The difference between the time zone of the device and GMT+0 in minutes, if they differ. For example, if the time zone of the device is GMT +3, you should type 180 (without the plus sign) in the field. The device as well as the CMSV6 and Wialon accounts should have the same time zones.
  4. Click ОК.
  5. On the Commands tab of the unit properties, create a command of the Request Live Stream (request_live_stream) type with the name RequestLiveStream#1. Such name (spelled in one word) is required to send the command automatically by clicking on the icon  on the Monitoring tab. Commands with other names can only be sent manually.
  6. In the Channel field, select Virtual.
  7. Deactivate the Without parameters option and indicate the numbers of the required channels without spaces and separating them by commas. For certain devices, numbering can start from 0.

  8. Save the changes.
  9. To start video transmission, click on the icon  in the unit list on the Monitoring tab. The option is available only after the unit sends at least one message with coordinates.

Other command types

The data sent by the device, such as photo and video files, is stored on the CMSV6 server. Only links to these files are sent to Wialon. To get access to them, you should create a command of the corresponding type in the unit properties.

download_video

When this command is sent, video recordings are uploaded from the device to the CMSV6 server. If there is no connection to the device, the query execution is postponed until the device is connected to the server. To see if the video is uploaded to the CMSV6 server, execute a get_video_records_info command.

get_video_records_info

This command allows you to query information about the video that is stored in the device or on the CMSV6 servers. You can select the location of the data in the properties of the command.

After the command is executed, if there are available files, the icon  becomes active on the Monitoring tab (the Media option). Besides, a numeric indicator shows up over the same icon in the bottom panel.

Besides, you can query messages from units for the required interval (the Data messages type, show parameters as raw data). The icon  will be displayed in the Media column of the resulting table. Click on it to view the found photo and video files.

The messages with media files contain the following parameters:

  • video uri: the link for playing the video;
  • loc: the file location (loc=2 indicates that the file is stored on the CMSV6 storage server);
  • cha_n: the number of the video channel.

get_gps_status

This command allows you to query the last GPS location.

get_photo

Using this command, you can query a photograph from the camera in real time.

get_track

The command allows you to query the telematic data of the unit for the indicated period (similarly to the import of messages in Wialon).

How to Prepare JC100/200 Devices and Configure a Unit in Wialon to Download Images and Videos
  • hardware





This guide describes how to prepare a JC100 or JC200 device and to configure a unit which uses this device in order to receive photos and videos. After configuring the unit, you can also execute other commands described in the Other available commands section of the guide.

The JC100 and JC200 devices can only transfer files in real time, that is, it is impossible to receive files from the memory of these devices.

  1. Download the appropriate firmware for the device in Gurtam forum and install it according to the guide which is also available there.
  2. Create a unit. On the Advanced tab, specify the unit name, device type and unique ID. For JC200 devices, choose the JC100 type.
  3. On the Commands tab of the unit properties, create a command to tell the device the address for downloading photo and video files. Select the Send custom message type for the command. In the Channel field, select TCP.
  4. Uncheck the Without parameters option and type in the Message field the IP address and the port of the server indicated in the General tab of the unit properties.
    Use the following format: HSERVICE,http://:/. For example, HSERVICE://193.193.165.165:21607/.
  5. Click OK.
  6. Make sure that the unit is online (a green icon is displayed opposite the unit name in the work list of the Monitoring tab) and click on the icon  to send the command.
  7. In the list of available commands, select the one created at step 3 (HSERVER). Click OK.
  8. In the Chat with Drivers window, you will see a message about sending the command successfully.
  9. On the Commands tab of the unit properties, create a command to download photo or video file. To do this, select the Send custom message (custom_msg) type. In the Channel field, select TCP.
  10. Uncheck the Without parameters option. In the Message field, select one of the available options.
    • Video,in,Ns: to request a video from the internal camera, where N is the duration of the video (not more than 20 s). For example, Video,in,10s.
    • Video,out,Ns: to request a video from the external camera, where N is the duration of the video (not more than 20 s). For example, Video,out,10s.
    • Picture,in: to request a photo from the internal camera.
    • Picture,out: to request a photo from the external camera.
  11. Click ОК.
  12. Make sure that the unit is online and click on the icon  to send the created command.
  13. In the list, select the command you need (Video_OUT_10S) and click OK.
  14. In the Chat with Drivers window, you will see a message about sending a command to download a file.
  15. After downloading is complete, a red indicator is displayed near the icon  in the bottom panel. Click on it to open the file. You can also cick on the icon  opposite the unit name in the work list (the Media option).

Other available commands

Before creating a command, you should prepare the device and configure a unit in Wialon (steps 1 — 8 of the guide). The text of the command should be typed in the Message field when creating the command (see steps 9—10 of the guide).

Video streaming

To stream video, some additional configuration of the unit is required. To do this, fill in the fields described below in the Device configuration window of the unit properties (icon  in the General tab).

RMTP server. Here you should specify the IP and the RTMP port of the server which is set by the user.
Camera aliases. Indicate the unique ID of the unit as the ID of the camera.

The following commands are used to manage the video streaming:

  • RMTP,ON,IN: enable video streaming from the internal camera;
  • RMTP,ON,OUT: enable video streaming from the external camera;
  • RMTP,OFF: disable video streaming.

To watch the video streaming, click on the icon  in the work list of the Monitoring tab.

It is impossible to stream video from two cameras at the same time.

How to Configure a Unit in Wialon for the Eco Driving Application to Work with Teltonika Devices
  • hardware
  • eco_driving
  • teltonika





This guide describes how to prepare a device manufactured by Teltonika and to configure a unit which uses this device so that the Eco Driving application can work with this unit. The guide is suitable for all devices of the FMB, C, M, U lines, except for the FMC640, FMM640, FMB640 models.

  1. Configure the 258 parameter (Eco Driving Maximum) in the device.
  2. Open the Sensors tab of the unit properties in Wialon.

  3. Create a custom sensor Accel_MAX. In the Parameter field, specify the following formula:
    (((io_258:48*const32768)-

    (io_258:33*const1+io_258:34*const2+io_258:35*const4+io_258:36*const8+io_258:37*const16+i

    o_258:38*const32+io_258:39*const64+io_258:40*const128+io_258:41*const256+io_258:42*cons

    t512+io_258:43*const1024+io_258:44*const2048+io_258:45*const4096+io_258:46*const8192+io

    _258:47*const16384))*io_258:48)/const1000

  4. Create a custom sensor Brk_MAX. In the Parameter field, specify the following formula:
    ((-

    (io_258:33*const1+io_258:34*const2+io_258:35*const4+io_258:36*const8+io_258:37*const16+i

    o_258:38*const32+io_258:39*const64+io_258:40*const128+io_258:41*const256+io_258:42*cons

    t512+io_258:43*const1024+io_258:44*const2048+io_258:45*const4096+io_258:46*const8192+io

    _258:47*const16384))*(io_258:48-const1))/const1000

  5. Create a custom sensor Crn_MAX. In the Parameter field, specify the following formula:
    (-

    (io_258:17*const1+io_258:18*const2+io_258:19*const4+io_258:20*const8+io_258:21*const16+i

    o_258:22*const32+io_258:23*const64+io_258:24*const128+io_258:25*const256+io_258:26*cons

    t512+io_258:27*const1024+io_258:28*const2048+io_258:29*const4096+io_258:30*const8192+io

    _258:31*const16384))*(io_258:32-const1))/const1000+(((io_258:32*const32768)-

    (io_258:17*const1+io_258:18*const2+io_258:19*const4+io_258:20*const8+io_258:21*const16+i

    o_258:22*const32+io_258:23*const64+io_258:24*const128+io_258:25*const256+io_258:26*cons

    t512+io_258:27*const1024+io_258:28*const2048+io_258:29*const4096+io_258:30*const8192+io

    _258:31*const16384))*io_258:32)/const1000

  6. Open the Eco driving tab and add custom criteria for the created sensors.

    • The Acceleration criterion for the Accel_MAX sensor.

    • The Braking criterion for the Brk_MAX sensor.

    • The Cornering criterion for the Crn_MAX sensor.

      To calculate the acceleration when assessing the driving quality using the io_258 parameter, select the Eco Driving parameters method.

Now you can track the driving quality of the unit in the Eco Driving application.

There are no pictures in the gallery


How to Configure Units for Automatic Toll Payment via Toll BG
  • flespi
  • retranslators
  • toll_bg





This guide describes how to configure units for autoatic toll payment via Toll BG in Bulgaria. The configuration process consists of the following stages:

After completing all the stages, unit messages are retransmitted from Wialon to the flespi backend platform which adds the data required for payment to them. After that, the messages are forwarded from flespi to the Toll BG system.

Registering in the Toll BG system

To register in the Toll BG system, follow these steps:

  1. Register on the tollbg.eu website (the Request service button).
  2. Receive authentication credentials and indicate the plate numbers of the vehicles for which you want to configure automatic toll payment.
  3. Specify https://flespi.io/gw/hooks/toll_health as the endpoint to which the system should send a request to perform a health check on the flespi platform.

Creating a channel on flespi

In order for the flespi platform to receive the unit messages retransmitted from Wialon, you should create a channel on it. To do this, follow these steps:

1. Register in the telematics hub

2. Open the Channels tab. 

3. Click on the button  in the lower-right corner of the screen. 

4. In the name field, specify the channel name.  

5. Activate the messages_ttl option and select Without TTL in the drop-down list.

6. In the protocol_id field, indicate wialon_retranslator.

7. Click Save.

8. Copy the host and port of the created channel by clicking on the icon .

Creating a retranslator in Wialon

In order for unit messages to be retransmitted from Wialon to the flespi platform, you should create a retranslator in Wialon. To do this, follow these steps:

1. In the management system, open the Retranslators tab.

2. Click Create retranslator.

3. Specify the name of the retranstlator.

4. Select Wialon Retranslator as a retranslation protocol.

5. Specify the server address (host) and port of the flespi channel in the Server and Port fields, respectively. 

6. Using the arrow icon, move the units for which you want to configure automatic toll payment from the All units list to the Units for retranslation list.

7. Click OK.

8. Refresh the page and start the retranslator.

9. On the flespi platform, click on the channel card and make sure that at least one connection is established and unit messages are displayed on the Toolbox tab.


You cannot change the unique ID of the units for retranslation.

Creating a device on flespi

For each unit the messages of which should be forwarded to the Toll BG system, you should create a device on the flespi platform. To do this, follow these steps:

1. In the telematics hub, open the Devices tab

2. Click on the button  in the lower-right corner of the screen. 

3. Select a device with a capability to store messages (Device with messages storing) or without it (Device without messages storing).

4. Enable the Device name option and specify the device name.

5. In the Device type field, specify the device type of your unit.

6. In the Device configuration section, specify the unique ID (Device identifier) of the unit. For some device types, you can also specify the password, phone number, etc. 

7. If you have selected a device with the capability to store messages in step 3, specify their storage period (Messages TTL) and size (Messages rotation size).

8. Click Save.

Configuring a plugin on flespi

To add the data required for the Toll BG system to the unit messages, you should create a plugin on the flespi platform and activate if for the devices of the units. To do this, follow these steps:

1. In the telematics hub, open the Plugins tab.

2. Click on the button  in the lower-right corner of the screen. 

3. Click Plugin templates and select the tollbg template.

4. Click Save.

5. Go tho the Devices tab.

6. Click on the card of the device the messages of which should be forwarded to the Toll BG system.

7. Open the Plugins tab.

8. Click on the button  in the lower-right corner of the screen. 

9. In the drop-down list, select the tollbg plugin.

10. Enable the Axles count and specify the number of axle revolutions (optional).

11. In the Plate number field, specify the plate number of the vehicle.

12. Enable the Pan number option and enter the PAN number received when registering in the Toll BG system.

13. Enable the Weight option and specify the vehicle weight (optional).

14. Click Save.

Configuring a stream on flespi

In order for the unit messages with the added data to be forwarded from the flespi platform to the Toll BG system, you should create a stream on flespi and assign the devices to it. To do this, follow these steps:

1. In the telematics hub, open the Streams tab.

2. Click on the button  in the lower-right corner of the screen. 

3. Activate the name option and specify the stream name.

4. Activate the queue_ttl option and specify the period within which unsent messages should be stored when the Toll BG system is unavailable. After the specified period expires, these messages are not forwarded. If messages should be sent only in real time, select Queue with realtime delivery only in the drop-down list. By default, the storage period of unsent messages is one day.

5. In the protocol_id field, indicate tollbg.

6. In the configuration section, enter your Toll BG username and password.

7. Click Save.

8. Click on the stream card.

9. Open the Devices tab.

10. Click on the button  in the lower-right corner of the screen. 

11. Select the devices that should be assigned to the stream. To assign all of them at once, click on the icon .

When the connection is established, the stream card is highlighted in green.

12. Go to the Toolbox tab and monitor the messages sent to the Toll BG system.

How to Use Bitwise Parameter Control
  • hardware





Some devices allow transferring user data. In Wialon, this data is registered as unsigned integers by default, regardless of the form in which it is sent from the device. In order for the reports and messages in Wialon to display  "clear values", that is, the values as they are sent from the device, you can use the bitwise parameter control method. This guide describes three examples of using this method to work with source data.

Example 1

Consider the case when a unit sends data, for example, in the user_d1 parameter as two double-byte unsigned integers. In Wialon, this data is registered as user_d1=2646793773.

  1. Convert the received number in Wialon to the binary system: 2646793773 → 10011101110000101101111000101101.

    In Wialon, bits are calculated from one.

  2. Divide the resulting number by two (according to the double-byte number count): 1101111000101101 and 1001110111000010.
  3. Create a custom sensor numeral_1 in the unit properties in Wialon. In the Parameter field, specify the following formula:
    user_d1:1*const1+ user_d1:2*const2+ user_d1:3*const4+ user_d1:4*const8+ user_d1:5*const16+ user_d1:6*const32+ user_d1:7*const64+ user_d1:8*const128+ user_d1:9*const256+ user_d1:10*const512+ user_d1:11*const1024+ user_d1:12*const2048+ user_d1:13*const4096+ user_d1:14*const8192+ user_d1:15*const16384+ user_d1:16*const32768

  4. Create a custom sensor numeral_2. In the Parameter field, specify the following formula:
    user_d1:17*const1+ user_d1:18*const2+ user_d1:19*const4+ user_d1:20*const8+ user_d1:21*const16+ user_d1:22*const32+ user_d1:23*const64+ user_d1:24*const128+ user_d1:25*const256+ user_d1:26*const512+ user_d1:27*const1024+ user_d1:28*const2048+ user_d1:29*const4096+ user_d1:30*const8192+ user_d1:31*const16384+ user_d1:32*const32768

As a result, the reports and messages in Wialon display the values of two double-byte sensors (numeral_1=56877 and numeral_2=40386) instead of user_d1=2646793773.

Example 2

In this example, consider the case when a unit sends data as a number with floating point (float). In Wialon, the data is registered as user_d3=1017282565.

  1. Convert the received number in Wialon to the binary system: 1017282565 → 111100101000101000000000000101.
  2. Create a custom sensor float in the unit properties in Wialon. In the Parameter field, specify the following formula:
    const-1^user_d3:32*const2^((user_d3:24*const1+user_d3:25*const2+user_d3:26*const4+user_d3:27*const8+user_d3:28*const16+user_d3:29*const32+user_d3:30*const64+user_d3:31*const128)-127)*(const1+(user_d3:1*const1+user_d3:2*const2+user_d3:3*const4+user_d3:4*const8+user_d3:5*const16+user_d3:6*const32+user_d3:7*const64+user_d3:8*const128+user_d3:9*const256+user_d3:10*const512+user_d3:11*const1024+user_d3:12*const2048+user_d3:13*const4096+user_d3:14*const8192+user_d3:15*const16384+user_d3:16*const32768+user_d3:17*const65536+user_d3:18*const131072+user_d3:19*const262144+user_d3:20*const524288+user_d3:21*const1048576+user_d3:22*const2097152+user_d3:23*const4194304)/const8388608)
    The formula for the sensor parameter is created on the basis of the formula for converting to the 32-bit IEEE 754 format: F=(-1)S2(E-127)(1+M/223).

As a result, Wialon displays the values of the float sensor instead of user_d3=1017282565.

Example 3

Consider the case of the Teltonika FMT100 device when the io_258 parameter registers the values of the accelerometer on three axes when exceeding the values specified in the device. The data of this parameter is useful when working with the Eco Driving application. In Wialon, the data is registered as io_258=932034904003. The values should be converted into g.

The image below shows the parameter structure.

The values on the axes are signed. In Eco Driving, only the values on the X and Y axes are used. On the X-axis, depending on the sign, the acceleration and braking are determined. On the Y-axis, the transverse acceleration is determined which will be used as an absolute value (module) because the sign (left/right) is not taken into account in Eco Driving.

  1. Create a custom sensor Accel_MAX in the unit properties in Wialon. In the Parameter field, specify the following formula :
    (((io_258:48*const32768)-(io_258:33*const1+io_258:34*const2+io_258:35*const4+io_258:36*const8+io_258:37*const16+io_258:38*const32+io_258:39*const64+io_258:40*const128+io_258:41*const256+io_258:42*const512+io_258:43*const1024+io_258:44*const2048+io_258:45*const4096+io_258:46*const8192+io_258:47*const16384))*io_258:48)/const1000

  2. Create a custom sensor Brk_MAX. In the Parameter field, specify the following formula :
    ((-
    (io_258:33*const1+io_258:34*const2+io_258:35*const4+io_258:36*const8+io_258:37*const16+i
    o_258:38*const32+io_258:39*const64+io_258:40*const128+io_258:41*const256+io_258:42*cons
    t512+io_258:43*const1024+io_258:44*const2048+io_258:45*const4096+io_258:46*const8192+io
    _258:47*const16384))*(io_258:48-const1))/const1000


  3. Create a custom sensor Crn_MAX. In the Parameter field, specify the following formula:
    (-
    (io_258:17*const1+io_258:18*const2+io_258:19*const4+io_258:20*const8+io_258:21*const16+i
    o_258:22*const32+io_258:23*const64+io_258:24*const128+io_258:25*const256+io_258:26*cons
    t512+io_258:27*const1024+io_258:28*const2048+io_258:29*const4096+io_258:30*const8192+io
    _258:31*const16384))*(io_258:32-const1))/const1000+(((io_258:32*const32768)-
    (io_258:17*const1+io_258:18*const2+io_258:19*const4+io_258:20*const8+io_258:21*const16+i
    o_258:22*const32+io_258:23*const64+io_258:24*const128+io_258:25*const256+io_258:26*cons
    t512+io_258:27*const1024+io_258:28*const2048+io_258:29*const4096+io_258:30*const8192+io
    _258:31*const16384))*io_258:32)/const1000


    Two bytes are provided for the Y-axis. The bit numbers in Wialon are from 17 to 32. Since the module (absolute) values are taken into account, the formula is a little longer than the previous ones.

The given examples show that the application area of the bitwise control is not limited to the control of a specific bit. This is a comprehensive tool which allows creating custom sensors in Wialon. You can formulate the logic and calculation of such sensors on your own to fulfil the most challenging tasks.

How to Configure Units in Wialon to Monitor Social Distancing with Teltonika GH5200
  • hardware
  • teltonika





From this guide you will learn:

Configuring units

To configure units, follow the steps below.

  1. In the device settings, enable the Proximity detection function and specify the required parameters.

  2. In Wialon, create a unit. On the General tab, type the name of the person who should maintain the specified distance. In the Unit type field, select Person. In the Device type field, specify Teltonika GH5200.
  3. Go to the Sensors tab and create a sensor of the Passenger sensor type. In the Parameter field, specify io_875.
  4. If necessary, create a custom sensor to determine the battery level. In the Parameter field, specify io_113. In the Metrics field, specify %.
  5. Go to the Custom fields tab and create a custom field named MAC address. In the Value field, specify the MAC address of the device used. 

    To find out the MAC address of the device, contact the hardware supplier. You can also find out the MAC address using messages in Wialon. The units determine the MAC addresses of the nearest devices of the same type and send them to Wialon as the io_875 parameter in messages. For example:
    io_875 = 439931433244443739334561.

  6. Create the required number of units following steps 25.
  7. Create a unit group and add to it the units the distance between which you want to monitor.
  8. On the Passengers tab, create a passenger named as the unit which corresponds to it. In the Code field, specify the same MAC address of the device as in the custom field of the corresponding unit.
  9. Create the required number of passengers.

    You should create a passenger for each unit specifying the same name and MAC address as for the unit to which this passenger corresponds.

  10. Select all the passengers and create the list of automatic assignment to all the units to which they correspond.

The units are ready. Now you can configure notifications and create a report for them.

Creating notifications

To receive notifications and register events about distance violations, follow the steps below.

  1. On the Notifications tab, create a notification for units which should maintain the specified distance.

  2. Select the Passenger activity trigger type.
  3. Enable the Check-in and Check-out options.
  4. Select the Register event for unit action and enable the Register as violation option. To display the notification in Wialon, select the Display online notification in a popup window action as well.
  5. In the notification text, add the %UNIT% and %TAG_NAME% tags. Type the required text between the tags. For example:
  6. Specify the notification name and save it.

Now you can monitor the physical distance between the created units and register events in Wialon. 

Creating a report

To get detailed information on distance violations, create and execute a report on the unit group created in step 7. To do this, follow the steps below.

  1. Create a report template of the Unit group type.

  2. In the report template, create a table of the Violations type and select the following columns:
  3. In the table settings, enable the Detalization and Total options.
  4. Save the report template.
  5. Execute a report on the required unit group using the created template.

Thanks to the executed report, you can not only get detailed information on distance violations but also reduce the risks of spreading the virus. For example, if one of the employees you monitor tests positive, you can determine when and with whom the infected person has been in contact recently. In addition, you can get this information by executing a report on passenger assignments.

5
  • 5
  • 10
  • 25
Thank you for your feedback!